This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] Fix s390 libgcc_s.so.1
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Andreas Krebbel <krebbel1 at de dot ibm dot com>, Ulrich Weigand <uweigand at de dot ibm dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Sun, 5 Feb 2006 15:21:20 -0500
- Subject: [PATCH] Fix s390 libgcc_s.so.1
- References: <20060130170317.GE32233@devserv.devel.redhat.com> <OF725296E0.A8FF7EB7-ON41257106.00667F9B-41257106.0066A7C7@de.ibm.com> <20060130210726.GI32233@devserv.devel.redhat.com> <20060131123913.GA3272@de.ibm.com> <20060131211147.GS32233@devserv.devel.redhat.com> <20060201162702.GA4253@de.ibm.com> <20060202140922.GJ32233@devserv.devel.redhat.com> <20060202163351.GA18568@de.ibm.com>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
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