Fix Solaris 10_x86 shared build. -Bsymbolic is required to avoid
authorAndy Polyakov <appro@openssl.org>
Tue, 28 Sep 2004 20:45:10 +0000 (20:45 +0000)
committerAndy Polyakov <appro@openssl.org>
Tue, 28 Sep 2004 20:45:10 +0000 (20:45 +0000)
"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

Makefile.shared
crypto/perlasm/x86unix.pl

index 2f7d7ea..1528931 100644 (file)
@@ -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)
index 79c1abb..7d87eb1 100644 (file)
@@ -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)