--- gc-7.0/configure.ac.BAD 2007-08-30 17:31:16.000000000 -0400
+++ gc-7.0/configure.ac 2007-08-30 17:31:44.000000000 -0400
@@ -395,6 +395,9 @@
sparc-*-netbsd*)
machdep="mach_dep.lo sparc_netbsd_mach_dep.lo"
;;
+ sparc*-*-linux*)
+ machdep="mach_dep.lo sparc_mach_dep.lo"
+ ;;
sparc-sun-solaris2.3)
machdep="mach_dep.lo sparc_mach_dep.lo"
AC_DEFINE(SUNOS53_SHARED_LIB)
--- gc-7.0/configure.BAD 2007-08-30 17:30:32.000000000 -0400
+++ gc-7.0/configure 2007-08-30 17:31:00.000000000 -0400
@@ -6143,6 +6143,9 @@
sparc-*-netbsd*)
machdep="mach_dep.lo sparc_netbsd_mach_dep.lo"
;;
+ sparc*-*-linux*)
+ machdep="mach_dep.lo sparc_mach_dep.lo"
+ ;;
sparc-sun-solaris2.3)
machdep="mach_dep.lo sparc_mach_dep.lo"
cat >>confdefs.h <<\_ACEOF
--- gc-7.0/mach_dep.c.BAD 2007-08-30 19:49:38.000000000 -0400
+++ gc-7.0/mach_dep.c 2007-08-30 19:51:58.000000000 -0400
@@ -174,9 +174,10 @@
# if defined(HAVE_PUSH_REGS)
GC_push_regs();
-# elif defined(UNIX_LIKE) && !defined(DARWIN) && !defined(ARM32)
+# elif defined(UNIX_LIKE) && !defined(DARWIN) && !defined(ARM32) && !defined(SPARC)
/* Older versions of Darwin seem to lack getcontext(). */
/* ARM Linux often doesn't support a real getcontext(). */
+ /* SPARC 32bit Linux doesn't support getcontext(). */
ucontext_t ctxt;
if (getcontext(&ctxt) < 0)
ABORT ("Getcontext failed: Use another register retrieval method?");