Include yvals.h for VxWorks < 7 RTPs as well
authorOlivier Hainque <hainque@adacore.com>
Mon, 13 Dec 2021 08:06:46 +0000 (08:06 +0000)
committerOlivier Hainque <hainque@adacore.com>
Mon, 13 Dec 2021 13:54:11 +0000 (13:54 +0000)
For -mrtp on VxWorks 6.9, at least inttypes.h ends up #including
system headers checking that _BITS_BYTES is 8, which the system yvals.h
defines. We do pre-include _yvals.h ahead of inttypes.h for this kind of
purpose, but it currently assumes that only VxWorks >= 7 provides yvals.h.

This results in unexpected configure checks failures, complaining about
_BITS_BYTES not being 8, spotted while inspecting libstdc++ config.log for
unrelated reasons.

This change relaxes the guard in _yvals.h to include yvals.h for
__RTP__ in addition to version >= 7.

2021-12-13  Olivier Hainque  <hainque@adacore.com>

* config/vxworks/_yvals.h: #include yvals.h also if
defined(__RTP__).

gcc/config/vxworks/_yvals.h

index f8b0818..0f277e4 100644 (file)
@@ -24,7 +24,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 
 #include <_vxworks-versions.h>
 
-#if _VXWORKS_MAJOR_GE(7)
+/* #include the VxWorks yvals.h in setups we expect it to be available.
+   It is around for both kernel mode and rtps on VxWorks >= 7, only for
+   rtps prior to that.  */
+
+#if _VXWORKS_MAJOR_GE(7) || defined(__RTP__)
 
 /* We need to deactivate the definitions tailored for the Dinkumware
    intrinsics, incompatible with a compilation by G++.  */