From abd995697d910d299166b42dec921e4eef94be6f Mon Sep 17 00:00:00 2001
From: Anthony Green <green@cygnus.com>
Date: Mon, 20 Dec 1999 02:34:52 +0000
Subject: [PATCH] gcconfig.h: Use libgcj hack for Alpha Linux.

       * gcconfig.h: Use libgcj hack for Alpha Linux.
       Undefine MPROTEXT_VDB (from Jeff Sturm).
       * os_dep.c: Remove Alpha Linux hacks.
       * misc.c: Ditto.

From-SVN: r31028
---
 boehm-gc/ChangeLog  |  7 +++++++
 boehm-gc/gcconfig.h | 14 ++++++--------
 boehm-gc/misc.c     |  3 +--
 boehm-gc/os_dep.c   |  4 ++--
 4 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog
index 2fd93bb39dca..6b55358fed2d 100644
--- a/boehm-gc/ChangeLog
+++ b/boehm-gc/ChangeLog
@@ -1,3 +1,10 @@
+1999-12-19  Anthony Green  <green@cygnus.com>
+
+	* gcconfig.h: Use libgcj hack for Alpha Linux.  
+	Undefine MPROTEXT_VDB (from Jeff Sturm).
+	* os_dep.c: Remove Alpha Linux hacks.
+	* misc.c: Ditto.
+
 1999-12-13  Tom Tromey  <tromey@cygnus.com>
 
 	* aclocal.m4, configure: Rebuilt.
diff --git a/boehm-gc/gcconfig.h b/boehm-gc/gcconfig.h
index 22156918c360..c5c2b88ac736 100644
--- a/boehm-gc/gcconfig.h
+++ b/boehm-gc/gcconfig.h
@@ -988,19 +988,17 @@
 #       define CPP_WORDSZ 64
 #       define STACKBOTTOM ((ptr_t) 0x120000000)
 #       ifdef __ELF__
-#   	  if 0
-	    /* __data_start apparently disappeared in some recent releases. */
-            extern int __data_start;
-#           define DATASTART &__data_start
-#	  endif
-#         define DATASTART GC_data_start
-#         define DYNAMIC_LOADING
+            /* glibc for Linux/Alpha no longer provides a symbol marking
+               the start of the data segment.  So libgcj defines
+               data_start on its own (in libgcjdata.a).  */
+            extern int data_start;
+#           define DYNAMIC_LOADING
 #       else
 #           define DATASTART ((ptr_t) 0x140000000)
 #       endif
 	extern int _end;
 #	define DATAEND (&_end)
-#	define MPROTECT_VDB
+#	undef MPROTECT_VDB
 		/* Has only been superficially tested.  May not	*/
 		/* work on all versions.			*/
 #   endif
diff --git a/boehm-gc/misc.c b/boehm-gc/misc.c
index 9f209100a591..8c0d0147bf6f 100644
--- a/boehm-gc/misc.c
+++ b/boehm-gc/misc.c
@@ -443,8 +443,7 @@ void GC_init_inner()
 #   ifdef MSWIN32
  	GC_init_win32();
 #   endif
-#   if defined(LINUX) && \
-	(defined(ALPHA) || defined(SPARC) || defined(IA64))
+#   if defined(LINUX) && (defined(SPARC) || defined(IA64))
 	GC_init_linux_data_start();
 #   endif
 #   ifdef SOLARIS_THREADS
diff --git a/boehm-gc/os_dep.c b/boehm-gc/os_dep.c
index 362bd933822a..5bc41f1ddf65 100644
--- a/boehm-gc/os_dep.c
+++ b/boehm-gc/os_dep.c
@@ -75,7 +75,7 @@
 # endif
 
 # if defined(LINUX) && \
-     (defined(SPARC) || defined(ALPHA) || defined(IA64))
+     (defined(SPARC) || defined(IA64))
 #   define NEED_FIND_LIMIT
 # endif
 
@@ -142,7 +142,7 @@
 # define OPT_PROT_EXEC 0
 #endif
 
-#if defined(LINUX) && (defined(SPARC) || defined(ALPHA) || defined(IA64))
+#if defined(LINUX) && (defined(SPARC) || defined(IA64))
   /* The I386 case can be handled without a search.  The Alpha case	*/
   /* used to be handled differently as well, but the rules changed	*/
   /* for recent Linux versions.  This seems to be the easiest way to	*/
-- 
GitLab