This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: C++ and feature guards Warning Question




On 4/6/2017 12:25 AM, Yaakov Selkowitz wrote:
On 2017-04-05 16:18, Joel Sherrill wrote:
Trying to compile an open source package for RTEMS, I
came across something I need help to figure out how
best to address. The package is in C++ and giving a
lot of warnings on methods which I would have thought
are prototyped. But clearly the compiler settings
are tripping the guards different than the package
authors expect.

Native GCC on CentOS 7 with glibc gives no warnings.

G++ defines _GNU_SOURCE on glibc targets, meaning that -std=c++NN is,
contrary to the documentation, *not* strict ISO C++:

https://github.com/gcc-mirror/gcc/blob/master/gcc/config/gnu-user.h#L105

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51749

Per my comments in that BZ, I believe there is a better way of doing
this, but it will require patches to both gcc and glibc.  Once this is
done -- and while it's on my wishlist, I don't know when I'll have time
to work on it -- software will finally stop taking -std=c++NN for
granted.  In the meantime, building for newlib/Cygwin/RTEMS is going to
be different from glibc in some cases.

In any case, the fix is either to use proper feature test macros, or use
-std=gnu++NN instead.  I have had to do this on a number of occasions
while building software for Cygwin.


This was for poppler and this minor change to their configure.ac
improved the build warnings immensely.

These issues are always subtle. Thanks for providing the insight.
I did suspect that newlib might be ahead of the curve on precisely
following the standards.

--joel


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]