diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b922125fc721bfb61b90ef77da5d8532beffe165..5eef6e60d83373db68811312687935daccd138b7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
+
+	* config/ns32k/netbsd.h: Update copyright years.
+	(TARGET_OS_CPP_BUILTINS): Define.
+	(CPP_PREDEFINES): Remove.
+	* config/ns32k/ns32k.h (CPP_PREDEFINES): Remove.
+	(TARGET_CPU_CPP_BUILTINS): Define.
+
 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
 
 	* emit-rtl.c: Likewise.
diff --git a/gcc/config/ns32k/netbsd.h b/gcc/config/ns32k/netbsd.h
index b57bad63a7ac7514bd9397e6a2c80f8371dadfbd..499b615eff6b1726406dc0817b708fdb962f8528 100644
--- a/gcc/config/ns32k/netbsd.h
+++ b/gcc/config/ns32k/netbsd.h
@@ -1,5 +1,6 @@
 /* Configuration for a ns32532 running NetBSD as the target machine.
-   Copyright (C) 1988, 1994, 1995, 1996, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1988, 1994, 1995, 1996, 1998, 2002
+   Free Software Foundation, Inc.
 
 This file is part of GNU CC.
 
@@ -18,6 +19,15 @@ along with GNU CC; see the file COPYING.  If not, write to
 the Free Software Foundation, 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.  */
 
+
+#define TARGET_OS_CPP_BUILTINS()			\
+  do							\
+    {							\
+      NETBSD_OS_CPP_BUILTINS_AOUT();			\
+      builtin_define ("__ns32k__");			\
+    }							\
+  while (0)
+
 /* Compile for the floating point unit & 32532 by default;
    Don't assume SB is zero;
    Don't use bitfield instructions;
@@ -62,13 +72,10 @@ Boston, MA 02111-1307, USA.  */
 
 #define MOVD_FLOAT_OK
 
-/* Names to predefine in the preprocessor for this target machine.  */
-
-#undef CPP_PREDEFINES
-#define CPP_PREDEFINES "-Dns32k -Dns32000 -Dns32532 -D__NetBSD__ -Dpc532 -D__ns32k__ -D__KPRINTF_ATTRIBUTE__ -Asystem=unix -Asystem=NetBSD -Acpu=ns32k -Amachine=ns32k"
+/* Define a CPP_SPEC appropriate for NetBSD.  */
 
 #undef CPP_SPEC
-#define CPP_SPEC "%{posix:-D_POSIX_SOURCE}"
+#define CPP_SPEC NETBSD_CPP_SPEC
 
 /* Make gcc agree with <machine/ansi.h> */
 
diff --git a/gcc/config/ns32k/ns32k.h b/gcc/config/ns32k/ns32k.h
index d1cb4b7f3d9322ff36f3fd796d3e6921a9a75edf..f75f60d9cd0a38251fa91898f736ac012151fbb7 100644
--- a/gcc/config/ns32k/ns32k.h
+++ b/gcc/config/ns32k/ns32k.h
@@ -21,12 +21,33 @@ the Free Software Foundation, 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.  */
 
 
-/* Note that some other tm.h files include this one and then override
-   many of the definitions that relate to assembler syntax.  */
-
-/* Names to predefine in the preprocessor for this target machine.  */
-
-#define CPP_PREDEFINES "-Dns32000 -Dunix -Asystem=unix -Acpu=ns32k -Amachine=ns32k"
+#define TARGET_CPU_CPP_BUILTINS()			\
+  do							\
+    {							\
+      builtin_define ("__ns32000__");			\
+							\
+      /* CPU type */					\
+      if (TARGET_32532)					\
+	builtin_define ("__ns32532__");			\
+      else if (TARGET_32332)				\
+	builtin_define ("__ns32332__");			\
+      else						\
+	builtin_define ("__ns32032__");			\
+							\
+      /* FPU type */					\
+      if (TARGET_32381)					\
+	builtin_define ("__ns32381__");			\
+      else if (TARGET_32081)				\
+	builtin_define ("__ns32081__");			\
+							\
+      /* Misc. */					\
+      if (TARGET_RTD)					\
+	builtin_define ("__RTD__");			\
+							\
+      builtin_assert ("cpu=ns32k");			\
+      builtin_assert ("machine=ns32k");			\
+    }							\
+  while (0)
 
 /* Print subsidiary information on the compiler version in use.  */
 #define TARGET_VERSION fprintf (stderr, " (32000, GAS syntax)");