Fallback to default CPP spec for C++ on VxWorks
authorOlivier Hainque <hainque@adacore.com>
Tue, 18 Feb 2020 09:59:56 +0000 (09:59 +0000)
committerOlivier Hainque <hainque@adacore.com>
Wed, 14 Oct 2020 17:38:38 +0000 (17:38 +0000)
Arrange to inhibit the effects of CPLUSPLUS_CPP_SPEC in gnu-user.h,
which #defines _GNU_SOURCE, which is invalid for VxWorks (possibly
not providing ::mkstemp, for example).

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

gcc/
* config/vxworks.h: #undef CPLUSPLUS_CPP_SPEC.

gcc/config/vxworks.h

index e50260b08e454e3b29c398df2d5b9c4df7392295..d3c417e7f5ae931b89d29c3bca77301f64234bae 100644 (file)
@@ -70,6 +70,12 @@ along with GCC; see the file COPYING3.  If not see
 
 #endif
 
+/* Our ports rely on gnu-user.h, which #defines _POSIX_SOURCE for
+   C++ by default.  VxWorks doesn't provide 100% of what this implies
+   (e.g. ::mkstemp), so, arrange to prevent that by falling back to
+   the default CPP spec for C++ as well.  */
+#undef CPLUSPLUS_CPP_SPEC
+
 /* For VxWorks static rtps, the system provides libc_internal.a, a superset of
    libgcc.a that we need to use e.g. to satisfy references to __init and
    __fini.  We still want our libgcc to prevail for symbols it would provide