* config/s390/s390x.mt (GDB_MULTI_ARCH): Change to
GDB_MULTI_ARCH_PARTIAL.
* config/s390/s390.mt (GDB_MULTI_ARCH): Ditto.

* config/s390/tm-linux.h (SKIP_TRAMPOLINE_CODE): Undefine
definition from config/tm-linux.h.  Allow gdbarch to override it.
* config/tm-sysv4.h: Revert.  Handled by tm-linux.h.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 86300ac..e34ba30 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,13 @@
+2001-10-13  Andrew Cagney  <ac131313@redhat.com>
+
+	* config/s390/s390x.mt (GDB_MULTI_ARCH): Change to
+	GDB_MULTI_ARCH_PARTIAL.
+	* config/s390/s390.mt (GDB_MULTI_ARCH): Ditto.
+
+	* config/s390/tm-linux.h (SKIP_TRAMPOLINE_CODE): Undefine
+	definition from config/tm-linux.h.  Allow gdbarch to override it.
+	* config/tm-sysv4.h: Revert.  Handled by tm-linux.h.
+	
 2001-09-26  Andrew Cagney  <ac131313@redhat.com>
 
 	From 2001-07-09 D.J. Barrow <djbarrow@de.ibm.com>:
diff --git a/gdb/config/s390/s390.mt b/gdb/config/s390/s390.mt
index d1dfe9f..87a5ba3 100644
--- a/gdb/config/s390/s390.mt
+++ b/gdb/config/s390/s390.mt
@@ -3,5 +3,5 @@
 TDEPFILES=s390-tdep.o solib.o
 # Post 5.0 tdep-files
 TDEPFILES+=solib-svr4.o solib-legacy.o
-GDB_MULTI_ARCH=2
+GDB_MULTI_ARCH=GDB_MULTI_ARCH_PARTIAL
 GDBSERVER_DEPFILES= low-linux.o s390-tdep.o s390-nat.o
diff --git a/gdb/config/s390/s390x.mt b/gdb/config/s390/s390x.mt
index 632fa52..310021d 100644
--- a/gdb/config/s390/s390x.mt
+++ b/gdb/config/s390/s390x.mt
@@ -3,7 +3,7 @@
 TDEPFILES=s390-tdep.o solib.o
 # Post 5.0 tdep-files
 TDEPFILES+=solib-svr4.o solib-legacy.o
-GDB_MULTI_ARCH=2
+GDB_MULTI_ARCH=GDB_MULTI_ARCH_PARTIAL
 GDBSERVER_DEPFILES= low-linux.o s390-tdep.o s390-nat.o
 # needed for gdbserver.
 MT_CFLAGS= -DCONFIG_ARCH_S390X
diff --git a/gdb/config/s390/tm-linux.h b/gdb/config/s390/tm-linux.h
index bb1e587..e70b117 100644
--- a/gdb/config/s390/tm-linux.h
+++ b/gdb/config/s390/tm-linux.h
@@ -29,6 +29,12 @@
 #define TARGET_ELF64 (gdbarch_tdep (current_gdbarch)->intreg_size==8)
 
 #include "config/tm-linux.h"
+
+/* Zap several macros defined in the above header so that multi-arch
+   can safely re-define them.  The ``correct fix'' involves
+   eliminating either the above include or even this file.  */
+#undef SKIP_TRAMPOLINE_CODE
+
 #include "s390/tm-s390.h"
 
 
diff --git a/gdb/config/tm-sysv4.h b/gdb/config/tm-sysv4.h
index 1ed6bc3..35b95eb 100644
--- a/gdb/config/tm-sysv4.h
+++ b/gdb/config/tm-sysv4.h
@@ -33,9 +33,9 @@
 
 /* If PC is in a shared library trampoline code, return the PC
    where the function itself actually starts.  If not, return 0.  */
-#if (GDB_MULTI_ARCH <= GDB_MULTI_ARCH_PARTIAL)
+
 #define SKIP_TRAMPOLINE_CODE(pc)  find_solib_trampoline_target (pc)
-#endif
+
 /* It is unknown which, if any, SVR4 assemblers do not accept dollar signs
    in identifiers.  The default in G++ is to use dots instead, for all SVR4
    systems, so we make that our default also.  FIXME: There should be some