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
This commit is contained in:
Jakub Jelinek 2002-05-09 23:09:27 +02:00 committed by Jakub Jelinek
parent 2937267b6a
commit 5aa26af025
5 changed files with 45 additions and 5 deletions

View 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

View 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

View File

@ -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
}

View 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

View 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"