From 5aa26af0257ffd084b7a459093389360711ec9d2 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 9 May 2002 23:09:27 +0200 Subject: [PATCH] t-linux64 (SHLIB_MAPFILES): Set. * 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 | 7 +++++++ gcc/config/cris/t-linux | 4 ---- gcc/config/sparc/libgcc-sparc-glibc.ver | 28 +++++++++++++++++++++++++ gcc/config/sparc/t-linux64 | 6 ++++++ gcc/mklibgcc.in | 5 ++++- 5 files changed, 45 insertions(+), 5 deletions(-) create mode 100644 gcc/config/sparc/libgcc-sparc-glibc.ver diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 128d1a87f38..2a70177693e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2002-05-09 Jakub Jelinek + + * 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 PR target/6429 diff --git a/gcc/config/cris/t-linux b/gcc/config/cris/t-linux index 43c3acd2ebb..65c3000ef00 100644 --- a/gcc/config/cris/t-linux +++ b/gcc/config/cris/t-linux @@ -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 index 00000000000..e3ba0bbdb65 --- /dev/null +++ b/gcc/config/sparc/libgcc-sparc-glibc.ver @@ -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 +} diff --git a/gcc/config/sparc/t-linux64 b/gcc/config/sparc/t-linux64 index d8dedc542bd..c93ff25a3ff 100644 --- a/gcc/config/sparc/t-linux64 +++ b/gcc/config/sparc/t-linux64 @@ -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 diff --git a/gcc/mklibgcc.in b/gcc/mklibgcc.in index 06c2ec0134e..c5db6f0a039 100644 --- a/gcc/mklibgcc.in +++ b/gcc/mklibgcc.in @@ -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" -- 2.30.2