[PATCH] Fix s390 libgcc_s.so.1

Jakub Jelinek jakub@redhat.com
Sun Feb 5 20:21:00 GMT 2006


On Thu, Feb 02, 2006 at 05:33:51PM +0100, Andreas Krebbel wrote:
> > For me this bootstrapped/regtested fine and also builds glibc correctly and
> > make check is fine as well, on both s390 and s390x.  So, IMHO this is ready
> > for committing.
> 
> Thanks for testing the patch.

Unfortunately, further testing revealed a problem.
While s390x compiler used correctly @@GCC_4.1.0 versions on all newly added
*tf* and *tc* symbols, for both 64-bit and 32-bit libgcc_s.so.1, s390
compiler didn't include s390/libgcc-glibc.ver and so the symbols ended up
being there:
__divtc3@@GCC_4.0.0 FUNC GLOBAL DEFAULT
__fixtfdi@@GCC_3.0 FUNC GLOBAL DEFAULT
__fixunstfdi@@GCC_3.0 FUNC GLOBAL DEFAULT
__floatditf@@GCC_3.0 FUNC GLOBAL DEFAULT
__multc3@@GCC_4.0.0 FUNC GLOBAL DEFAULT
__powitf2@@GCC_4.0.0 FUNC GLOBAL DEFAULT
That's especially bad when 32-bit libgcc_s.so.1 differed depending on
if the compiler also supports -m64 or not.

Ok for trunk/4.1?

2006-02-05  Jakub Jelinek  <jakub@redhat.com>

	* config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file.
	(s390x-*-linux*): Likewise.
	* config/s390/t-linux64 (SHLIB_MAPFILES): Removed.
	* config/s390/t-linux: New file.

--- gcc/config.gcc.jj	2006-02-04 09:38:33.000000000 +0100
+++ gcc/config.gcc	2006-02-05 20:52:29.000000000 +0100
@@ -1864,7 +1864,7 @@ rs6000-ibm-aix[56789].* | powerpc-ibm-ai
 	;;
 s390-*-linux*)
 	tm_file="s390/s390.h dbxelf.h elfos.h svr4.h linux.h s390/linux.h"
-	tmake_file="${tmake_file} s390/t-crtstuff"
+	tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux"
 	;;
 s390x-*-linux*)
 	tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h svr4.h linux.h s390/linux.h"
@@ -1872,7 +1872,7 @@ s390x-*-linux*)
 	md_file=s390/s390.md
 	extra_modes=s390/s390-modes.def
 	out_file=s390/s390.c
-	tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux64"
+	tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux s390/t-linux64"
 	;;
 s390x-ibm-tpf*)
         tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h svr4.h s390/tpf.h"
--- gcc/config/s390/t-linux64.jj	2006-01-28 00:42:59.000000000 +0100
+++ gcc/config/s390/t-linux64	2006-02-05 20:51:34.000000000 +0100
@@ -6,7 +6,3 @@ LIBGCC = stmp-multilib
 INSTALL_LIBGCC = install-multilib
 
 EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
-
-# Override t-slibgcc-elf-ver to export some libgcc symbols with
-# the symbol versions that glibc used.
-SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/s390/libgcc-glibc.ver
--- gcc/config/s390/t-linux.jj	2006-02-05 20:51:18.000000000 +0100
+++ gcc/config/s390/t-linux	2006-02-05 20:51:25.000000000 +0100
@@ -0,0 +1,3 @@
+# Override t-slibgcc-elf-ver to export some libgcc symbols with
+# the symbol versions that glibc used.
+SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/s390/libgcc-glibc.ver


	Jakub



More information about the Gcc-patches mailing list