--- guile-1.6.4/libguile/gc_os_dep.c.orig	2002-12-07 17:41:31.000000000 -0500
+++ guile-1.6.4/libguile/gc_os_dep.c	2003-05-29 16:36:37.000000000 -0400
@@ -225,6 +225,10 @@
 #    define ARM32
 #    define mach_type_known
 # endif
+# if defined(LINUX) && (defined(s390) || defined(__s390__))
+#    define S390
+#    define mach_type_known
+# endif
 # if defined(__alpha) || defined(__alpha__)
 #   define ALPHA
 #   if !defined(LINUX)
@@ -1197,6 +1201,22 @@
 #	define HEURISTIC2
 # endif
 
+# ifdef S390
+#   define MACH_TYPE "S390"
+#   define ALIGNMENT 4
+#   ifdef LINUX
+#     define OS_TYPE "LINUX"
+#     define HEURISTIC1
+#     define DYNAMIC_LOADING
+#     undef STACK_GRAN
+#     define STACK_GRAN 0x10000000
+        /* Stack usually starts at 0x80000000 */
+#     define LINUX_DATA_START
+      extern int _end;
+#     define DATAEND (&_end)
+#   endif
+# endif
+
 # if defined(PJ)
 #   define ALIGNMENT 4
     extern int _etext;
