Commit 07d488da authored by Andy Polyakov's avatar Andy Polyakov
Browse files

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
parent d1360f6e
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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)
+6 −5
Original line number Diff line number Diff line
@@ -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)