From a3c5fa34cae7c29d5b902f8d4bdc0969eb70dd8f Mon Sep 17 00:00:00 2001
From: Richard Henderson <rth@redhat.com>
Date: Wed, 27 Mar 2002 11:21:32 -0800
Subject: [PATCH] os_dep.c (GC_init_linux_data_start): Fix references to
 __data_start and _end.

        * os_dep.c (GC_init_linux_data_start): Fix references to
        __data_start and _end.

From-SVN: r51467
---
 boehm-gc/ChangeLog |  5 +++++
 boehm-gc/os_dep.c  | 16 ++++++++--------
 2 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog
index 3b97faed7984..3c22533657fc 100644
--- a/boehm-gc/ChangeLog
+++ b/boehm-gc/ChangeLog
@@ -1,3 +1,8 @@
+2002-03-27  Richard Henderson  <rth@redhat.com>
+
+	* os_dep.c (GC_init_linux_data_start): Fix references to
+	__data_start and _end.
+
 2002-03-25  Loren J. Rittle  <ljrittle@acm.org>
 
 	* include/private/gcconfig.h: Change all likely references
diff --git a/boehm-gc/os_dep.c b/boehm-gc/os_dep.c
index 88194fe82db7..258c9433f309 100644
--- a/boehm-gc/os_dep.c
+++ b/boehm-gc/os_dep.c
@@ -155,11 +155,11 @@
 
 # ifdef LINUX
 #   pragma weak __data_start
-    extern int __data_start;
+    extern int __data_start[];
 #   pragma weak data_start
-    extern int data_start;
+    extern int data_start[];
 # endif /* LINUX */
-  extern int _end;
+  extern int _end[];
 
   ptr_t GC_data_start;
 
@@ -169,16 +169,16 @@
 
 #   ifdef LINUX
       /* Try the easy approaches first:	*/
-      if (&__data_start != 0) {
-	  GC_data_start = (ptr_t)(&__data_start);
+      if (__data_start != 0) {
+	  GC_data_start = (ptr_t)__data_start;
 	  return;
       }
-      if (&data_start != 0) {
-	  GC_data_start = (ptr_t)(&data_start);
+      if (data_start != 0) {
+	  GC_data_start = (ptr_t)data_start;
 	  return;
       }
 #   endif /* LINUX */
-    GC_data_start = GC_find_limit((ptr_t)(&_end), FALSE);
+    GC_data_start = GC_find_limit((ptr_t)_end, FALSE);
   }
 #endif
 
-- 
GitLab