[llvm-bugs] [Bug 32479] Libcxx requires GNU extension when compiling with newlib

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Apr 18 21:38:20 PDT 2017


Eric Fiselier <eric at efcs.ca> changed:

           What    |Removed                     |Added
             Status|NEW                         |RESOLVED
                 CC|                            |eric at efcs.ca
         Resolution|---                         |WONTFIX

--- Comment #5 from Eric Fiselier <eric at efcs.ca> ---
> I guess that's up to you guys if you want Libc++ to be POSIX compliant or 
> not with newlib. Adding that macro is easy enough for our use case, but I'm 
> not sure that everyone can turn GNU extensions on (especially since they are 
> likely using Clang to avoid GCC). 

On all supported platforms Clang pre-defines `_GNU_SOURCE=1` to enable GNU
extensions by default when compiling C++. The extensions are needed to provide
a correct implementation of `locale` and input/output among other things.

Both libc++ and libstdc++ are dependent on this behavior and have been for
years. Using libc extensions allows libc++ to offer a better QoI than it could
otherwise. I don't have any motivation to try and change this. As long as libc
extensions are available libc++ should expect the compiler to enable them by

> It would also suggest that gnu++XXX should be used instead of std++XXX which 
> seems odd for a C++ library as a requirement.

I think you're confusing GLIBC extensions with GCC extensions. `-std=gnu++XX`
changes the language dialect. It should have no effect on what GLIBC offers.

You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20170419/a27600e8/attachment.html>

More information about the llvm-bugs mailing list