diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2002-11-21 12:03:49 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@gcc.gnu.org> | 2002-11-21 12:03:49 +0000 |
commit | b5798b2a8b6fa2bd687499d420b9f0a1cd7c8b70 (patch) | |
tree | 4a568e37f8b1ce85b951ac42bdef41d935ef7f10 | |
parent | 6315b6cbff7ca22e8d8d6f69b4fa0c87d41c2330 (diff) | |
download | gcc-b5798b2a8b6fa2bd687499d420b9f0a1cd7c8b70.zip gcc-b5798b2a8b6fa2bd687499d420b9f0a1cd7c8b70.tar.gz gcc-b5798b2a8b6fa2bd687499d420b9f0a1cd7c8b70.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/config/s390/libgcc-glibc.ver | 20 | ||||
-rw-r--r-- | gcc/config/s390/linux.h | 6 | ||||
-rw-r--r-- | gcc/config/s390/t-linux64 | 9 |
4 files changed, 43 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index df99433..94e8dde 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2002-11-21 Ulrich Weigand <uweigand@de.ibm.com> + + * 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 <rearnsha@arm.com> * 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 9a42151..1d9e229 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 d3e8807..cbb7710 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 d5a9278..db839c6 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 |