aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2002-02-06 21:19:46 +0000
committerUlrich Weigand <uweigand@gcc.gnu.org>2002-02-06 21:19:46 +0000
commite8487c0417fd77c049faa5b7d8ece5e006a5e0ab (patch)
tree78c3fc365fe5604480d9d714ee5afff01b4b9819 /gcc
parent58d10f89c44e8e78ab5e09fa92b35d7ca689c964 (diff)
downloadgcc-e8487c0417fd77c049faa5b7d8ece5e006a5e0ab.zip
gcc-e8487c0417fd77c049faa5b7d8ece5e006a5e0ab.tar.gz
gcc-e8487c0417fd77c049faa5b7d8ece5e006a5e0ab.tar.bz2
config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
* config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment. * config/s390/t-linux64: New file. * config/s390/libgcc-glibc.ver: New file. From-SVN: r49553
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config.gcc2
-rw-r--r--gcc/config/s390/libgcc-glibc.ver21
-rw-r--r--gcc/config/s390/t-linux643
4 files changed, 31 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8ccd657..778b0d7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2002-02-06 Ulrich Weigand <uweigand@de.ibm.com>
+ * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
+ * config/s390/t-linux64: New file.
+ * config/s390/libgcc-glibc.ver: New file.
+
+2002-02-06 Ulrich Weigand <uweigand@de.ibm.com>
+
* config/s390/linux64.h: Delete file.
* config/s390/s390x.h: New file.
* config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 96d1137..0724bc9 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -2874,7 +2874,7 @@ s390x-*-linux*)
tm_p_file=s390/s390-protos.h
md_file=s390/s390.md
out_file=s390/s390.c
- tmake_file="t-slibgcc-elf-ver t-linux s390/t-linux"
+ tmake_file="t-slibgcc-elf-ver t-linux s390/t-linux s390/t-linux64"
extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o"
if test x$enable_threads = xyes; then
thread_file='posix'
diff --git a/gcc/config/s390/libgcc-glibc.ver b/gcc/config/s390/libgcc-glibc.ver
new file mode 100644
index 0000000..9a42151
--- /dev/null
+++ b/gcc/config/s390/libgcc-glibc.ver
@@ -0,0 +1,21 @@
+# In order to work around the very problems that force us to now generally
+# create a libgcc.so, glibc reexported a number of routines from libgcc.a.
+# By now choosing the same version tags for these specific routines, we
+# maintain enough binary compatibility to allow future versions of glibc
+# to defer implementation of these routines to libgcc.so via DT_AUXILIARY.
+
+# Note that we cannot use the default libgcc-glibc.ver file on s390x,
+# because GLIBC_2.0 does not exist on this architecture, as the first
+# ever glibc release on the platform was GLIBC_2.2.
+
+%inherit GCC_3.0 GLIBC_2.2
+GLIBC_2.2 {
+ __register_frame
+ __register_frame_table
+ __deregister_frame
+ __register_frame_info
+ __deregister_frame_info
+ __frame_state_for
+ __register_frame_info_table
+}
+
diff --git a/gcc/config/s390/t-linux64 b/gcc/config/s390/t-linux64
new file mode 100644
index 0000000..d5a9278
--- /dev/null
+++ b/gcc/config/s390/t-linux64
@@ -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