This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: -isystem and C++ headers
On Tue, May 11, 2004 at 10:28:44PM -0700, Zack Weinberg wrote:
> Matt Austern <austern@apple.com> writes:
>
> > On May 11, 2004, at 4:46 PM, Zack Weinberg wrote:
> >
> >> Daniel Jacobowitz <drow@false.org> writes:
> >>
> >>> c-opts.c says this:
> >>>
> >>> case OPT_isystem:
> >>> add_path (xstrdup (arg), SYSTEM, 0);
> >>> break;
> >>>
> >>> Is there a particular reason the third argument, cxx_aware, is not
> >>> set?
> >>> This means that anything included via -isystem will be marked with
> >>> extern
> >>> "C" by g++.
> >>
> >> Show of hands please: Who needs this implicit-extern-C crap anymore?
> >
> > Darwin still does. I hope it won't for much longer.
> >
> > The biggest issue for this getting fixed in Darwin, actually, is
> > convincing ourselves that it has been fixed. There are *many*
> > headers, and it's impractical to hand-inspect every one to prove that
> > it's C++-safe. So far we haven't come up with an automated way of
> > checking headers. Suggestions would be welcome.
>
> I am not familiar enough with C++ to make a coherent suggestion.
>
> On the original topic, I'd be open to changing -isystem (but,
> contrariwise, I could be convinced that it isn't safe), and I am
> definitely in favor of expanding the number of systems that define
> NO_IMPLICIT_EXTERN_C. I'm not going to abolish a feature that Darwin
> needs, but I do want to get rid of it eventually.
Perhaps we should flip the default? I don't think newlib requires it,
presumably neither does rtems; I don't know about other embedded
targets like vxworks. But some hosted systems (at least some Solaris
versions, yes?) do. I'd like to see the *-elf targets dump it.
In any case it sounds like I need to fix upstream DejaGNU!
--
Daniel Jacobowitz