diff options
author | Andy Polyakov <appro@openssl.org> | 2004-09-28 20:45:10 +0000 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2004-09-28 20:45:10 +0000 |
commit | 07d488daf66ed88a7b2758325eed7e45fac0aafb (patch) | |
tree | 1159d0c7695d2014f862de737a4619e1c59f1c13 | |
parent | d1360f6ecc777bbec4e8b344b573a7cbd72f6331 (diff) |
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
-rw-r--r-- | Makefile.shared | 4 | ||||
-rw-r--r-- | crypto/perlasm/x86unix.pl | 11 |
2 files changed, 8 insertions, 7 deletions
diff --git a/Makefile.shared b/Makefile.shared index 2f7d7ead5a..1528931d56 100644 --- a/Makefile.shared +++ b/Makefile.shared @@ -457,7 +457,7 @@ link_o.solaris: LIBDEPS="$(LIBDEPS) -lc"; \ ALLSYMSFLAGS="$${MINUSZ}allextract"; \ NOALLSYMSFLAGS="$${MINUSZ}defaultextract"; \ - SHAREDFLAGS="-G -dy -z text -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX -R $(LIBRPATH)"; \ + SHAREDFLAGS="-G -dy -z text -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX -R $(LIBRPATH) -Wl,-Bsymbolic"; \ SHAREDCMD='$(CC)'; \ fi; \ $(LINK_SO_O) @@ -473,7 +473,7 @@ link_a.solaris: LIBDEPS="$(LIBDEPS) -lc"; \ ALLSYMSFLAGS="$${MINUSZ}allextract"; \ NOALLSYMSFLAGS="$${MINUSZ}defaultextract"; \ - SHAREDFLAGS="-G -dy -z text -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX -R $(LIBRPATH)"; \ + SHAREDFLAGS="-G -dy -z text -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX -R $(LIBRPATH) -Wl,-Bsymbolic"; \ SHAREDCMD='$(CC)'; \ fi; \ $(LINK_SO_A) 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) |