diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog
index 6b55358fed2d9456066ebcf09f763dddd2fddeae..f367b2c0865bd416b7a58c937f4ee5738fe0ed1f 100644
--- a/boehm-gc/ChangeLog
+++ b/boehm-gc/ChangeLog
@@ -1,3 +1,7 @@
+1999-12-19  Jeff Sturm  <jsturm@sigma6.com>
+
+        * gcconfig.h: Define DATASTART for Alpha Linux.
+
 1999-12-19  Anthony Green  <green@cygnus.com>
 
 	* gcconfig.h: Use libgcj hack for Alpha Linux.  
diff --git a/boehm-gc/gcconfig.h b/boehm-gc/gcconfig.h
index c5c2b88ac7365d1550229d67d200fa0780a56e05..9451aab377034e3d1f2db99b78424f7d827c330f 100644
--- a/boehm-gc/gcconfig.h
+++ b/boehm-gc/gcconfig.h
@@ -992,6 +992,7 @@
                the start of the data segment.  So libgcj defines
                data_start on its own (in libgcjdata.a).  */
             extern int data_start;
+#           define DATASTART &data_start
 #           define DYNAMIC_LOADING
 #       else
 #           define DATASTART ((ptr_t) 0x140000000)
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 8e68f286531810e86a4bf54e6cd21fce5324d69d..07efe35e01cfd5f2095e2a6f5d99552c2d2835f1 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,9 @@
+1999-12-23  Anthony Green  <green@cygnus.com>
+
+	* configure: Rebuilt.
+	* configure.in (LIBDATASTARTSPEC): Force data_start in with
+	linker trick.
+
 1999-12-19  Anthony Green  <green@cygnus.com>
 
 	* libgcjdata.c: New file.
diff --git a/libjava/configure b/libjava/configure
index 14a581cc06336ade7cc04cd0f5a77bf35ed1814a..297b7b868136cdd9c9a7be062db865a09750a1fc 100755
--- a/libjava/configure
+++ b/libjava/configure
@@ -2473,7 +2473,7 @@ else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  LIBDATASTARTSPEC="-lgcjdata"
+  LIBDATASTARTSPEC="-u data_start -lgcjdata"
    NEEDS_DATA_START=yes	
    echo "$ac_t""missing" 1>&6
 fi
diff --git a/libjava/configure.in b/libjava/configure.in
index 5f0ee893751bb66b4db51989b0265a4150367476..519ffb585a96cc08f2f8b1857c29508c898bdb0b 100644
--- a/libjava/configure.in
+++ b/libjava/configure.in
@@ -89,7 +89,7 @@ LIBDATASTARTSPEC=
 NEEDS_DATA_START=
 AC_TRY_LINK([extern int data_start;], [return ((int) &data_start);],
   [AC_MSG_RESULT(found it)],
-  [LIBDATASTARTSPEC="-lgcjdata"
+  [LIBDATASTARTSPEC="-u data_start -lgcjdata"
    NEEDS_DATA_START=yes	
    AC_MSG_RESULT(missing)])
 AC_SUBST(LIBDATASTARTSPEC)