This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: Dejagnu: use -isystem to include system header files.
- From: Hans-Peter Nilsson <hp at bitrange dot com>
- To: Daniel Jacobowitz <drow at false dot org>
- Cc: Nick Clifton <nickc at redhat dot com>, binutils at sources dot redhat dot com, gdb-patches at sources dot redhat dot com, newlib at sources dot redhat dot com, dejagnu at gnu dot org
- Date: Thu, 11 Nov 2004 19:25:19 -0500 (EST)
- Subject: Re: Dejagnu: use -isystem to include system header files.
- References: <m3pt2koaw8.fsf@redhat.com> <20041111142237.GA25841@nevyn.them.org>
Yay cross-posting! I helped by adding a list!
On Thu, 11 Nov 2004, Daniel Jacobowitz wrote:
> On Thu, Nov 11, 2004 at 11:58:15AM +0000, Nick Clifton wrote:
> > Hi Guys,
> >
> > 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.
>
> This patch will break in-tree testing for yet other targets.
But presumably only for old broken systems: no non-obsolete
system should need to fake an extern "C" as is done when *not*
defining NO_IMPLICIT_EXTERN_C; they should all be C++-aware.
> I believe
> arm-elf was affected - anything which does not set
> NO_IMPLICIT_EXTERN_C.
Bug in the arm-elf port: it should define NO_IMPLICIT_EXTERN_C.
Sounds like there's a bug in the -isystem interaction with
NO_IMPLICIT_EXTERN_C too. (Like, always assume
NO_IMPLICIT_EXTERN_C for all passed -isystem options aka.
never fake 'extern "C"' for path-options given on the command
line.)
> I discussed this with H-P on the dejagnu list
> but never figured out a solution, but...
Wot, there was no closure? For the record, the original email:
<URL:http://lists.gnu.org/archive/html/bug-dejagnu/2002-10/msg00009.html>
(the reply was in 2002-11). Our later conversation is at
<URL:http://lists.gnu.org/archive/html/dejagnu/2004-05/msg00003.html>.
I thought we had closure at
<URL:http://lists.gnu.org/archive/html/dejagnu/2004-05/msg00007.html>
or at least at
<URL:http://lists.gnu.org/archive/html/dejagnu/2004-05/msg00011.html>
but now that you bring it up, I just think it's more of a bug in
the arm-elf port and non-NO_IMPLICIT_EXTERN_C targets should be
xfailed for applicable tests. ;-)
> > * lib/libgloss.exp (newlib_include_flags): Use -isystem, not -I.
> > (libio_include_flags, g++_include_flags, libstdc++_include_flags,
> > winsup_include_flags): Ditto.
>
> ... I strongly suspect that g++ and winsup should be left out.
Mh, a bit spurious. Only actual C++ include directories could
be badly affected by non-NO_IMPLICIT_EXTERN_C-ness.
brgds, H-P