diff mbox series

vxworks: Predefine __ppc and __ppc__ for VxWorks 7

Message ID F6A5EAB2-0873-4F4F-8F2C-497339BCF58B@adacore.com
State New
Headers show
Series vxworks: Predefine __ppc and __ppc__ for VxWorks 7 | expand

Commit Message

Olivier Hainque Oct. 29, 2020, 2:12 p.m. UTC
Unfortunately, some VxWorks 7r2 system headers rely on a
couple more variations of the predefined macros expected
to characterize a “powerpc” target that we discussed recently.

setjmp.h, for example, relies on __ppc and the absence of
a definition results in “gcc” dejagnu test failures from all
the tests #including that header, which stumble on:

#error "_JBLEN not set!”

The other case is __ppc__ expected by yvals.h, key to libstdc++.

This change adjusts the VxWorks 7 section of our configuration
to honor those expectations.

Olivier

2020-10-29. Olivier Hainque  <hainque@adacore.com>

gcc/
	* config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Also
	builtin_define __ppc and __ppc__ for VxWorks 7.
diff mbox series

Patch

diff --git a/gcc/config/rs6000/vxworks.h b/gcc/config/rs6000/vxworks.h
index 9dabdab323ab..51a3250f5dcc 100644
--- a/gcc/config/rs6000/vxworks.h
+++ b/gcc/config/rs6000/vxworks.h
@@ -70,6 +70,12 @@  along with GCC; see the file COPYING3.  If not see
 	      builtin_define ("__PPC");		\
 	      builtin_define ("__powerpc");	\
 	    }					\
+						\
+	  /* __ppc isn't emitted by the system compiler \
+	     any more but a few system headers still depend \
+	     on it, as well as on __ppc__.  */	\
+	  builtin_define ("__ppc");		\
+	  builtin_define ("__ppc__");		\
 	}					\
 						\
       /* Asserts for #cpu and #machine.  */	\