[cfe-dev] Clang and glibc 2.25 incompatibilities?

Joerg Sonnenberger via cfe-dev cfe-dev at lists.llvm.org
Sat Apr 1 10:16:57 PDT 2017


On Sat, Apr 01, 2017 at 12:58:37PM -0400, Philippe Proulx wrote:
> On Sat, Apr 1, 2017 at 12:42 PM, Joerg Sonnenberger via cfe-dev
> <cfe-dev at lists.llvm.org> wrote:
> > On Sat, Apr 01, 2017 at 10:31:54AM -0400, Philippe Proulx via cfe-dev wrote:
> >> Why does Clang define __GNUC__ by default?
> >
> > Because it creates less problems than the alternatives. There is a lot
> > of code in the wild that essentially assumes a random version of gcc for
> > a lot of code. Given that Clang is implementing almost all the GCC
> > extensions of GCC 4.2.1, it claims to be that version. It means a bit
> > more work for newer code, but avoids breaking a lot of older code.
> >
> >> What's the real solution here?
> >
> > Create a bug report against glibc.
> 
> Is it really a glibc issue? The header uses a GNU statement expression
> when __GNUC__ is defined. Clang defines __GNUC__, but with -pedantic
> it complains that I'm using a GNU extension. In other words Clang pretends
> to be GCC by default, but complains when exposed to GCC extensions.
> 
> I don't think glibc is doing anything wrong here.

The compiler identification macro has nothing to do with the language
mode. __STRICT_ANSI__ is not the right check, that's what applies only
for -std=cXX.

Joerg



More information about the cfe-dev mailing list