From: Felix Zielcke <fzielcke@z-51.de>
To: The development of GNU GRUB <grub-devel@gnu.org>
Subject: Re: [PATCH] Add -nostdinc to TARGET_CFLAGS
Date: Sun, 15 Nov 2009 12:17:50 +0100 [thread overview]
Message-ID: <1258283870.2822.8.camel@fz.local> (raw)
In-Reply-To: <20091115110458.GA25752@thorin>
Am Sonntag, den 15.11.2009, 12:04 +0100 schrieb Robert Millan:
> On Sat, Nov 14, 2009 at 10:16:45PM +0100, Felix Zielcke wrote:
> > Am Mittwoch, den 04.11.2009, 11:48 +0100 schrieb Felix Zielcke:
> > >
> > > Thanks to the hint from rubisher I looked now at Linux Makefiles.
> > > They use this:
> > >
> > > NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
> > >
> > > # ls $(gcc-4.4 -print-file-name=include)/stdarg.h
> > > /usr/lib/gcc/x86_64-linux-gnu/4.4.2/include/stdarg.h
> > >
> >
> > Robert?
> > IMO this makes at least more sense then what we have now
> > and I just tested this now with and without a seperate build directory
> > with experimental branch and it works
> > TARGET_CPPFLAGS = @TARGET_CPPFLAGS@ -nostdinc -isystem $(shell $(CC)
> > -print-file-name=include) -I$(srcdir)/include -I$(builddir)
> > -I$(builddir)/include -Wall -W
>
> What's the advantage?
>
The advantage is that this does exatly what we want for the target.
Remove /usr/include from the include search directories but still keep
the gcc internal one for e.g. stdarg.h
As far as I understand the gcc manual, isystem adds this directory to
the search path and treats all headers there in as system headers.
And with the = between -isystem and $(srcdir) it actually uses
${sysroot}{$srcdir} but we don't use any --sysroot or -isysroot.
The arguments we currently have there just look wrong with my understand
of the gcc manual
$ cat test.c
#include <stdarg.h>
#include <stdint.h>
int main (void)
{
return 0;
}
$ srcdir=$PWD builddir=$PWD gcc -isystem=$srcdir/include -I$srcdir/include -I$builddir -I$builddir/include test.c -o test && ls test
test
$ srcdir=$PWD builddir=$PWD gcc -nostdinc -isystem $(gcc -print-file-name=include) -I$srcdir/include -I$builddir -I$builddir/include test.c
test.c:2:20: error: stdint.h: No such file or directory
--
Felix Zielcke
Proud Debian Maintainer and GNU GRUB developer
next prev parent reply other threads:[~2009-11-15 11:18 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-26 16:16 [PATCH] Add -nostdinc to TARGET_CFLAGS Robert Millan
2009-10-28 23:16 ` Robert Millan
2009-10-29 10:14 ` Robert Millan
2009-10-29 10:36 ` Robert Millan
2009-10-29 10:46 ` Vladimir 'phcoder' Serbinenko
2009-10-30 18:55 ` Robert Millan
2009-11-04 10:48 ` Felix Zielcke
2009-11-14 21:16 ` Felix Zielcke
2009-11-15 11:04 ` Robert Millan
2009-11-15 11:12 ` Robert Millan
2009-11-15 11:19 ` Felix Zielcke
2009-11-15 11:17 ` Felix Zielcke [this message]
2009-11-15 11:35 ` Robert Millan
2009-11-15 11:50 ` Felix Zielcke
2009-11-15 12:32 ` Robert Millan
2009-11-15 12:42 ` Felix Zielcke
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1258283870.2822.8.camel@fz.local \
--to=fzielcke@z-51.de \
--cc=grub-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.