]> gcc.gnu.org Git - gcc.git/commitdiff
t-linux64 (SHLIB_MAPFILES): Set.
authorJakub Jelinek <jakub@redhat.com>
Thu, 9 May 2002 21:09:27 +0000 (23:09 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Thu, 9 May 2002 21:09:27 +0000 (23:09 +0200)
* config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
* config/sparc/libgcc-sparc-glibc.ver: New file.
* config/cris/t-linux (SHLIB_MAPFILES): Remove.
* mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.

From-SVN: r53346

gcc/ChangeLog
gcc/config/cris/t-linux
gcc/config/sparc/libgcc-sparc-glibc.ver [new file with mode: 0644]
gcc/config/sparc/t-linux64
gcc/mklibgcc.in

index 128d1a87f380ee326c22d69719888e50abb85260..2a70177693e762a5021c6b720d67d62efa8616c2 100644 (file)
@@ -1,3 +1,10 @@
+2002-05-09  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
+       * config/sparc/libgcc-sparc-glibc.ver: New file.
+       * config/cris/t-linux (SHLIB_MAPFILES): Remove.
+       * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
+
 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
 
        PR target/6429
index 43c3acd2ebbddc73dc5094c34a8e1a34870bc966..65c3000ef00ffe144a268274b659fa668b6d8964 100644 (file)
@@ -1,6 +1,2 @@
 TARGET_LIBGCC2_CFLAGS += -fPIC
 CRTSTUFF_T_CFLAGS_S = $(TARGET_LIBGCC2_CFLAGS)
-
-# Override t-slibgcc-elf-ver to export some libgcc symbols with
-# the symbol versions that glibc used.
-SHLIB_MAPFILES += $(srcdir)/config/libgcc-glibc.ver
diff --git a/gcc/config/sparc/libgcc-sparc-glibc.ver b/gcc/config/sparc/libgcc-sparc-glibc.ver
new file mode 100644 (file)
index 0000000..e3ba0bb
--- /dev/null
@@ -0,0 +1,28 @@
+# 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.
+
+%ifdef __arch64__
+%define GLIBC_VER GLIBC_2.2
+%else
+%define GLIBC_VER GLIBC_2.0
+%endif
+%inherit GCC_3.0 GLIBC_VER
+GLIBC_VER {
+  # Sampling of DImode arithmetic used by (at least) i386 and m68k.
+  __divdi3
+  __moddi3
+  __udivdi3
+  __umoddi3
+
+  # Exception handling support functions used by most everyone.
+  __register_frame
+  __register_frame_table
+  __deregister_frame
+  __register_frame_info
+  __deregister_frame_info
+  __frame_state_for
+  __register_frame_info_table
+}
index d8dedc542bd76b27d26246010db1f40de97a4f80..c93ff25a3ff1d5fdc07eefd40b5ec3b9dc79385d 100644 (file)
@@ -10,3 +10,9 @@ INSTALL_LIBGCC = install-multilib
 EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
 
 SHLIB_SLIBDIR_SUFFIXES = 64:64 32:
+
+# Override t-slibgcc-elf-ver to export some libgcc symbols with
+# the symbol versions that glibc used.
+# Avoid the t-linux version file.
+SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver \
+                $(srcdir)/config/sparc/libgcc-sparc-glibc.ver
index 06c2ec0134ebf34d89e76b07ece9db0ee7ea2c8f..c5db6f0a03939eb512fb1563715992c8bb78861d 100644 (file)
@@ -263,7 +263,10 @@ for ml in $MULTILIBS; do
     tmpmapfile="libgcc/${dir}/tmp-libgcc.map"
     echo ""
     echo "${mapfile}: $SHLIB_MKMAP $SHLIB_MAPFILES $libgcc_sh_objs"
-    echo '     { $(NM_FOR_TARGET)'" $SHLIB_NM_FLAGS $libgcc_sh_objs; echo %%; cat $SHLIB_MAPFILES; } | "'$(AWK)'" -f $SHLIB_MKMAP $SHLIB_MKMAP_OPTS > ${tmpmapfile}"
+    echo '     { $(NM_FOR_TARGET)'" $SHLIB_NM_FLAGS $libgcc_sh_objs; echo %%; \\"
+    echo "       cat $SHLIB_MAPFILES | sed -e "'"/^[   ]*#/d" -e '\''s/^%\(if\|else\|elif\|endif\|define\)/#\1/'\'" \\"
+    echo "       | $gcc_compile $flags -E -xassembler-with-cpp -; \\"
+    echo '     } | $(AWK)'" -f $SHLIB_MKMAP $SHLIB_MKMAP_OPTS > ${tmpmapfile}"
     echo '     mv '"$tmpmapfile"' $@'
   fi
   shlib_deps="$shlib_deps $mapfile"
This page took 0.079579 seconds and 5 git commands to generate.