From: Andy Polyakov Date: Tue, 28 Sep 2004 20:45:10 +0000 (+0000) Subject: Fix Solaris 10_x86 shared build. -Bsymbolic is required to avoid X-Git-Tag: BEN_FIPS_TEST_6~14^2~65 X-Git-Url: https://git.openssl.org/?p=openssl.git;a=commitdiff_plain;h=07d488daf66ed88a7b2758325eed7e45fac0aafb 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 --- 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)