Dejagnu: use -isystem to include system header files.

Nick Clifton
Thu Nov 18 11:15:00 GMT 2004

Hi Richard,

> Nick Clifton wrote:
>         I am going to check in the attached patch which imports a fix from
>         the mainline dejagnu sources.  This fix is to use the -isystem
>         switch to include system header files rather than -I.  This fixes
>         several unexpected failures in the GCC and G++ testsuites where the
>         newlib system header file <limits.h> is included in strict ANSI
>         mode, and the compiler barfs on the #include_next directive.
> Unfortunately this patch causes regressions on the gcc builtins tests. 
> These tests rely on detecting newlib by looking for the definition of
> _NEWLIB_VERSION being added by including limits.h; but the change in the
> search order means that we now pick up a dummy version of newlib.h from
> the gcc include directory.  
> With your patch the search path has now become
>  /work/rearnsha/gnu/egcs/gcc/include
>  /work/rearnsha/gnu/egcs/arm-elf/./newlib/targ-include
>  /home/rearnsha/gnusrc/egcs-cross/newlib/libc/include
> Whereas previously the gcc/include directory came later in the search.

Hmmm, maybe newlib could provide the "l" variants of the builtin 
functions ?  What are these functions anyway ?  Or maybe 
builtins-config.h could include say <stdio.h> rather than <limits.h> so 
that it would pickup the newlib version and not the gcc version ?

Alternatively - can you think of another way of solving the problem that 
my patch was originally fixing ?  Namely that several GCC and G++ tests 
fail because they include <limits.h> whilst in strict ANSI mode and this 
fails because the newlib limits.h uses the GNU extension #include_next 
directive.  My first patch to solve this -  by undefining __GNUC__ if 
__STRICT_ANSI__ was defined was rejected on the gcc lists.


More information about the Newlib mailing list