From: Ulrich Weigand Date: Thu, 21 Nov 2002 12:03:49 +0000 (+0000) Subject: libgcc-libc.ver: Add multilib support. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b5798b2a8b6fa2bd687499d420b9f0a1cd7c8b70;p=gcc.git libgcc-libc.ver: Add multilib support. * config/s390/libgcc-libc.ver: Add multilib support. * config/s390/linux.h (MULTILIB_DEFAULT): Define. * config/s390/t-linux64 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES, LIBGCC, INSTALL_LIBGCC, EXTRA_MULTILIB_PARTS): Define. From-SVN: r59342 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index df994334a80..94e8ddeb167 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2002-11-21 Ulrich Weigand + + * config/s390/libgcc-libc.ver: Add multilib support. + * config/s390/linux.h (MULTILIB_DEFAULT): Define. + * config/s390/t-linux64 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, + MULTILIB_OSDIRNAMES, LIBGCC, INSTALL_LIBGCC, + EXTRA_MULTILIB_PARTS): Define. + 2002-11-21 Richard Earnshaw * arm.c (arm_get_frame_size): A leaf function does not need its diff --git a/gcc/config/s390/libgcc-glibc.ver b/gcc/config/s390/libgcc-glibc.ver index 9a421519d80..1d9e2290413 100644 --- a/gcc/config/s390/libgcc-glibc.ver +++ b/gcc/config/s390/libgcc-glibc.ver @@ -8,6 +8,25 @@ # because GLIBC_2.0 does not exist on this architecture, as the first # ever glibc release on the platform was GLIBC_2.2. +%ifndef __s390x__ +%inherit GCC_3.0 GLIBC_2.0 +GLIBC_2.0 { + __divdi3 + __moddi3 + __udivdi3 + __umoddi3 + + __register_frame + __register_frame_table + __deregister_frame + __register_frame_info + __deregister_frame_info + __frame_state_for + __register_frame_info_table +} +%endif + +%ifdef __s390x__ %inherit GCC_3.0 GLIBC_2.2 GLIBC_2.2 { __register_frame @@ -18,4 +37,5 @@ GLIBC_2.2 { __frame_state_for __register_frame_info_table } +%endif diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h index d3e88072254..cbb771099dc 100644 --- a/gcc/config/s390/linux.h +++ b/gcc/config/s390/linux.h @@ -81,6 +81,12 @@ Boston, MA 02111-1307, USA. */ /* Target specific linker settings. */ +#ifdef DEFAULT_TARGET_64BIT +#define MULTILIB_DEFAULTS { "m64" } +#else +#define MULTILIB_DEFAULTS { "m31" } +#endif + #define LINK_ARCH31_SPEC \ "-m elf_s390 \ %{shared:-shared} \ diff --git a/gcc/config/s390/t-linux64 b/gcc/config/s390/t-linux64 index d5a92781450..db839c65ef1 100644 --- a/gcc/config/s390/t-linux64 +++ b/gcc/config/s390/t-linux64 @@ -1,3 +1,12 @@ +MULTILIB_OPTIONS = m64/m31 +MULTILIB_DIRNAMES = 64 32 +MULTILIB_OSDIRNAMES = ../lib64 ../lib + +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