--- gcc-3.2/gcc/config/s390/libgcc-glibc.ver	Wed Feb  6 22:19:46 2002
+++ gcc-3.2-biarch/gcc/config/s390/libgcc-glibc.ver	Fri Aug 30 17:59:16 2002
@@ -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 @@
   __frame_state_for
   __register_frame_info_table
 }
+%endif
 
--- gcc-3.2/gcc/config/s390/linux.h
+++ gcc-3.2/gcc/config/s390/linux.h
@@ -94,6 +94,16 @@
 
 /* Target specific linker settings.  */
 
+#ifdef DEFAULT_TARGET_64BIT
+#define STARTFILE_PREFIX_SPEC \
+  "%{!m31:/lib64/ /usr/lib64/} \
+   %{m31:/lib/ /usr/lib/}"
+#endif
+
+#ifdef DEFAULT_TARGET_64BIT
+#define MULTILIB_DEFAULTS { "m64" }
+#endif
+
 #define LINK_ARCH31_SPEC \
   "-m elf_s390 \
    %{shared:-shared} \
--- gcc-3.2/gcc/config/s390/t-linux64	Fri Aug 30 18:05:32 2002
+++ gcc-3.2-biarch/gcc/config/s390/t-linux64	Fri Aug 30 17:59:16 2002
@@ -1,3 +1,13 @@
 # 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
+
+MULTILIB_OPTIONS = m64/m31
+MULTILIB_DIRNAMES = 64 32
+
+LIBGCC = stmp-multilib
+INSTALL_LIBGCC = install-multilib
+
+EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
+
+SHLIB_SLIBDIR_SUFFIXES = 64:64 32:
