Predefine __ppc and __ppc__ for VxWorks 7
authorOlivier Hainque <hainque@adacore.com>
Wed, 28 Oct 2020 18:04:32 +0000 (18:04 +0000)
committerOlivier Hainque <hainque@adacore.com>
Fri, 30 Oct 2020 08:25:26 +0000 (08:25 +0000)
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.

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.

gcc/config/rs6000/vxworks.h

index 9dabdab323abaab98819f4b2a660f3fb22557804..51a3250f5dcc48eaed35a242d2d249bb951d1b59 100644 (file)
@@ -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.  */    \