From a7f051fe0bc3638c7f289b8d34e022cbb7f8228d Mon Sep 17 00:00:00 2001
From: Richard Sandiford <richard@codesourcery.com>
Date: Sat, 11 Aug 2007 16:52:47 +0000
Subject: [PATCH] vxworks-dummy.h (TARGET_VXWORKS): Define.

gcc/
	* config/vxworks-dummy.h (TARGET_VXWORKS): Define.
	* config/vxworks.h (TARGET_VXWORKS): Override.
	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define
	"mips" if TARGET_VXWORKS.

From-SVN: r127361
---
 gcc/ChangeLog              |  7 +++++++
 gcc/config/mips/mips.h     | 11 ++++++++---
 gcc/config/vxworks-dummy.h |  5 +++++
 gcc/config/vxworks.h       |  4 ++++
 4 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 906930e58672..8afb826970c3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2007-08-11  Richard Sandiford  <richard@codesourcery.com>
+
+	* config/vxworks-dummy.h (TARGET_VXWORKS): Define.
+	* config/vxworks.h (TARGET_VXWORKS): Override.
+	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define
+	"mips" if TARGET_VXWORKS.
+
 2007-08-11  Richard Sandiford  <richard@codesourcery.com>
 
 	* calls.c (avoid_likely_spilled_reg): New function.
diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h
index 7c2f548c3ad4..564f8bc0a2d9 100644
--- a/gcc/config/mips/mips.h
+++ b/gcc/config/mips/mips.h
@@ -357,9 +357,14 @@ extern enum mips_code_readable_setting mips_code_readable;
       builtin_define ("__mips__");     					\
       builtin_define ("_mips");						\
 									\
-      /* We do this here because __mips is defined below		\
-	 and so we can't use builtin_define_std.  */			\
-      if (!flag_iso)							\
+      /* We do this here because __mips is defined below and so we	\
+	 can't use builtin_define_std.  We don't ever want to define	\
+	 "mips" for VxWorks because some of the VxWorks headers		\
+	 construct include filenames from a root directory macro,	\
+	 an architecture macro and a filename, where the architecture	\
+	 macro expands to 'mips'.  If we define 'mips' to 1, the	\
+	 architecture macro expands to 1 as well.  */			\
+      if (!flag_iso && !TARGET_VXWORKS)					\
 	builtin_define ("mips");					\
 									\
       if (TARGET_64BIT)							\
diff --git a/gcc/config/vxworks-dummy.h b/gcc/config/vxworks-dummy.h
index 8c3d7d1287d4..f310d0808d33 100644
--- a/gcc/config/vxworks-dummy.h
+++ b/gcc/config/vxworks-dummy.h
@@ -17,6 +17,11 @@ You should have received a copy of the GNU General Public License
 along with GCC; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
 
+/* True if we're targetting VxWorks.  */
+#ifndef TARGET_VXWORKS
+#define TARGET_VXWORKS 0
+#endif
+
 /* True if generating code for a VxWorks RTP.  */
 #ifndef TARGET_VXWORKS_RTP
 #define TARGET_VXWORKS_RTP false
diff --git a/gcc/config/vxworks.h b/gcc/config/vxworks.h
index 64ff2200ccf0..322260d863a6 100644
--- a/gcc/config/vxworks.h
+++ b/gcc/config/vxworks.h
@@ -20,6 +20,10 @@ You should have received a copy of the GNU General Public License
 along with GCC; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
 
+/* Assert that we are targetting VxWorks.  */
+#undef TARGET_VXWORKS
+#define TARGET_VXWORKS 1
+
 /* In kernel mode, VxWorks provides all the libraries itself, as well as
    the functionality of startup files, etc.  In RTP mode, it behaves more
    like a traditional Unix, with more external files.  Most of our specs
-- 
GitLab