diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index a7e327d2a9349f0b68bd38a068785c2e6a5e1b7a..ef14272f47935cb3d0d15c3d2254cb5cdcad9e92 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,13 @@
+2002-02-05  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
+
+	* configure.in: Set up PLATFORMOBJS not PLATFORM_SPECIFIC_SOURCES.
+	Symlink PLATFORMH to platform.h.
+	* Makefile.am (libgcj_la_DEPENDENCIES, libgcj_la_LIBADD): Add
+	PLATFORMOBJS.
+	* java/lang/natSystem.cc: #include platform.h not posix.h.
+	* Makefile.in: Rebuilt with libgcj automake.
+	* configure: Rebuilt.
+
 2002-02-05  Richard Henderson  <rth@redhat.com>
 
 	* Makefile.in: Undo munging last change.
diff --git a/libjava/Makefile.am b/libjava/Makefile.am
index e71a84f2cbc19af903ab3302a7a402b5fe855207..16482bfe99416fef035b9d23e9e8c870983e0db2 100644
--- a/libjava/Makefile.am
+++ b/libjava/Makefile.am
@@ -123,16 +123,17 @@ javao_files = $(java_source_files:.java=.lo) \
 	$(built_java_source_files:.java=.lo)
 x_javao_files = $(x_java_source_files:.java=.lo)
 
-libgcj_la_SOURCES = prims.cc $(PLATFORM_SPECIFIC_SOURCES) jni.cc exception.cc \
+libgcj_la_SOURCES = prims.cc jni.cc exception.cc \
 	resolve.cc defineclass.cc interpret.cc name-finder.cc verify.cc \
 	$(nat_source_files)
 EXTRA_libgcj_la_SOURCES = boehm.cc nogc.cc posix-threads.cc no-threads.cc \
+	win32-threads.cc posix.cc win32.cc \
 	$(c_source_files) $(java_source_files) $(built_java_source_files)
 libgcj_la_DEPENDENCIES = libgcj.jar $(javao_files) \
-	$(c_files) $(GCOBJS) $(THREADOBJS) $(LIBLTDL)
+	$(c_files) $(GCOBJS) $(THREADOBJS) $(PLATFORMOBJS) $(LIBLTDL)
 
 libgcj_la_LIBADD = $(javao_files) $(c_files) $(GCOBJS) \
-	$(THREADOBJS)
+	$(THREADOBJS) $(PLATFORMOBJS)
 # Include THREADLIBS here to ensure that the correct version of
 # certain linuxthread functions get linked:
 libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLIBS) $(LIBLTDL) \
diff --git a/libjava/configure.in b/libjava/configure.in
index 074a700e367d4804541f5eab819264a7399831ce..921c66876c39a6f9d46de204c5a98cbd9856551e 100644
--- a/libjava/configure.in
+++ b/libjava/configure.in
@@ -193,27 +193,30 @@ AC_ARG_WITH(ecos,
 TARGET_ECOS="$with_ecos"
 )
 
-PLATFORM_SPECIFIC_SOURCES=
+PLATFORMOBJS=
 case "$TARGET_ECOS" in
    no) case "$host" in
       mingw)
             PLATFORM=Win32
-            PLATFORM_SPECIFIC_SOURCES=win32.cc
+            PLATFORMOBJS=win32.lo
+	    PLATFORMH=win32.h
       ;;
       *)
             PLATFORM=Posix
-            PLATFORM_SPECIFIC_SOURCES=posix.cc
+            PLATFORMOBJS=posix.lo
+	    PLATFORMH=posix.h
       ;;
       esac
       ;;
    *)
       PLATFORM=Ecos
       AC_DEFINE(ECOS)
-      PLATFORM_SPECIFIC_SOURCES=posix.cc
+      PLATFORMOBJS=posix.lo
+      PLATFORMH=posix.h
       ;;
 esac
-AC_SUBST(PLATFORM_SPECIFIC_SOURCES)
-
+AC_SUBST(PLATFORMOBJS)
+AC_LINK_FILES(include/$PLATFORMH, include/platform.h)
 
 AC_EGREP_HEADER(uint32_t, stdint.h, AC_DEFINE(HAVE_INT32_DEFINED))
 AC_EGREP_HEADER(uint32_t, inttypes.h, AC_DEFINE(HAVE_INT32_DEFINED))
diff --git a/libjava/java/lang/natSystem.cc b/libjava/java/lang/natSystem.cc
index e4c328c443c5757a8abc4a475e578be8f4cce1bb..faeff5107a14304639e0a16d25ac3fa6545a15ea 100644
--- a/libjava/java/lang/natSystem.cc
+++ b/libjava/java/lang/natSystem.cc
@@ -14,7 +14,7 @@ details.  */
 #include <string.h>
 #include <stdlib.h>
 
-#include "posix.h"
+#include "platform.h"
 
 #ifdef HAVE_PWD_H
 #include <pwd.h>