aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/perlasm
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2004-09-28 20:45:10 +0000
committerAndy Polyakov <appro@openssl.org>2004-09-28 20:45:10 +0000
commit07d488daf66ed88a7b2758325eed7e45fac0aafb (patch)
tree1159d0c7695d2014f862de737a4619e1c59f1c13 /crypto/perlasm
parentd1360f6ecc777bbec4e8b344b573a7cbd72f6331 (diff)
downloadopenssl-07d488daf66ed88a7b2758325eed7e45fac0aafb.tar.gz
Fix Solaris 10_x86 shared build. -Bsymbolic is required to avoid
"remaining relocations" in assembler modules. The latter seems to be new behaviour, elder as/ld managed to resolve this relocations as internal. It's possible to address this problem differently, but I settle for -Bsymbolic... PR: 546
Diffstat (limited to 'crypto/perlasm')
-rw-r--r--crypto/perlasm/x86unix.pl11
1 files changed, 6 insertions, 5 deletions
diff --git a/crypto/perlasm/x86unix.pl b/crypto/perlasm/x86unix.pl
index 79c1abb99d..7d87eb1701 100644
--- a/crypto/perlasm/x86unix.pl
+++ b/crypto/perlasm/x86unix.pl
@@ -205,8 +205,8 @@ sub main'nop { &out0("nop"); }
sub main'test { &out2("testl",@_); }
sub main'bt { &out2("btl",@_); }
sub main'leave { &out0("leave"); }
-sub main'cpuid { &out0(".word\t0xa20f"); }
-sub main'rdtsc { &out0(".word\t0x310f"); }
+sub main'cpuid { &out0(".byte 0x0f; .byte 0xa2"); }
+sub main'rdtsc { &out0(".byte 0x0f; .byte 0x31"); }
sub main'halt { &out0("hlt"); }
# SSE2
@@ -552,18 +552,18 @@ sub main'file_end
pushf
popl %eax
xorl %ecx,%eax
- bt \$21,%eax
+ btl \$21,%eax
jnc 1f
pushl %edi
pushl %ebx
movl %edx,%edi
movl \$1,%eax
- .word 0xa20f
+ .byte 0x0f; .byte 0xa2
orl \$1<<10,%edx
movl %edx,0(%edi)
popl %ebx
popl %edi
- .align 4
+ .align $align
1:
___
push (@out,$tmp);
@@ -708,6 +708,7 @@ sub main'initseg
$tmp=<<___;
.section .init
call $under$f
+ .align $align
___
}
elsif ($main'coff)