[v2,1/4] vxworks: add target/h/wrn/coreip to the set of system include paths

Message ID 20180628084329.22754-2-rv@rasmusvillemoes.dk
State New
Headers show
Series
  • some vxworks/powerpc patches
Related show

Commit Message

Rasmus Villemoes June 28, 2018, 8:43 a.m.
In order to build crtstuff.c, I need to ensure the headers in
target/h/wrn/coreip are also searched. Of course, that can be done
similar to how wrn/coreip gets manually added for libgcc, e.g. by adding

  CRTSTUFF_T_CFLAGS += -I$(WIND_BASE)/target/h -I$(WIND_BASE)/target/h/wrn/coreip

But without target/h/wrn/coreip in the default search path, all
user-code that include <unistd.h> (crtstuff.c just being one such
example) will have to manually add an -isystem
flag adding the wrn/coreip directory: unistd.h include ioLib.h, which
has

#include "net/uio.h"

and that header is found in target/h/wrn/coreip. In other words, the
VxWorks system headers (at least for VxWorks 5.5) are written in a way
that assumes wrn/coreip is in the search path, so I think it makes sense
to have that by default.

It will change the search order for existing setups that pass
-I.../target/h/wrn/coreip (without -nostdinc), since that flag will now
be ignored. I can't know whether that will break anything, but I do
believe it makes sense to have the defaults actually usable without
expecting all invocations to add -I/-isystem flags.

2018-06-04  Rasmus Villemoes  <rv@rasmusvillemoes.dk>

gcc/

        * config/vxworks.h: Add $(WIND_BASE)/target/h/wrn/coreip to
          default search path.
---
 gcc/config/vxworks.h | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

-- 
2.16.4

Comments

Olivier Hainque Aug. 6, 2018, 12:12 p.m. | #1
Hi Rasmus,

> On 28 Jun 2018, at 10:43, Rasmus Villemoes <rv@rasmusvillemoes.dk> wrote:

> 

> 2018-06-04  Rasmus Villemoes  <rv@rasmusvillemoes.dk>

> 

>        * config/vxworks.h: Add $(WIND_BASE)/target/h/wrn/coreip to

>          default search path.


Ok, thanks.

Olivier
Olivier Hainque Aug. 6, 2018, 12:19 p.m. | #2
> On 6 Aug 2018, at 14:12, Olivier Hainque <hainque@adacore.com> wrote:

>>       * config/vxworks.h: Add $(WIND_BASE)/target/h/wrn/coreip to

>>         default search path.

> 

> Ok, thanks.


With a nit on the ChangeLog formatting:

	* config/vxworks.h: Add $(WIND_BASE)/target/h/wrn/coreip to
	default search path.

	^
	no extra space here

and an indication that this is for VxWorks pre vx7.

Thanks.

Olivier

Patch

diff --git a/gcc/config/vxworks.h b/gcc/config/vxworks.h
index e37af775157..08d2c9d76d6 100644
--- a/gcc/config/vxworks.h
+++ b/gcc/config/vxworks.h
@@ -61,9 +61,12 @@  along with GCC; see the file COPYING3.  If not see
 #undef VXWORKS_ADDITIONAL_CPP_SPEC
 #define VXWORKS_ADDITIONAL_CPP_SPEC		\
  "%{!nostdinc:					\
-    %{isystem*} -idirafter			\
-    %{mrtp: %:getenv(WIND_USR /h)		\
-      ;:    %:getenv(WIND_BASE /target/h)}}"
+    %{isystem*}					\
+    %{mrtp: -idirafter %:getenv(WIND_USR /h)	\
+	    -idirafter %:getenv(WIND_USR /h/wrn/coreip) \
+      ;:    -idirafter %:getenv(WIND_BASE /target/h) \
+	    -idirafter %:getenv(WIND_BASE /target/h/wrn/coreip) \
+}}"
 
 #endif