Bug 47058 - "--enable-maintainer-mode --disable-werror" wrongly upgrades warnings to errors in libstdc++
Summary: "--enable-maintainer-mode --disable-werror" wrongly upgrades warnings to erro...
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: libstdc++ (show other bugs)
Version: 4.6.0
: P3 normal
Target Milestone: 4.7.0
Assignee: Benjamin Kosnik
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-12-24 00:24 UTC by John Tytgat
Modified: 2012-02-17 20:28 UTC (History)
2 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2012-02-17 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description John Tytgat 2010-12-24 00:24:28 UTC
Using gcc 4.6trunk r168215, target arm-unknown-eabi, newlib 1.19.0, binutils 2.21.

Configured with: --target=arm-unknown-eabi --prefix=/home/joty/projects/gccsdk/riscos7/cross --with-gmp=/home/joty/projects/gccsdk/gccsdk_svn7/gcc4/builddir/installed-libs-for-cross-gcc --with-mpfr=/home/joty/projects/gccsdk/gccsdk_svn7/gcc4/builddir/installed-libs-for-cross-gcc --with-mpc=/home/joty/projects/gccsdk/gccsdk_svn7/gcc4/builddir/installed-libs-for-cross-gcc --with-ppl=/home/joty/projects/gccsdk/gccsdk_svn7/gcc4/builddir/installed-libs-for-cross-gcc  --with-cloog=/home/joty/projects/gccsdk/gccsdk_svn7/gcc4/builddir/installed-libs-for-cross-gcc --disable-threads --disable-multilib --disable-shared --with-newlib --enable-maintainer-mode --disable-werror --enable-interwork --disable-nls --disable-libquadmath --enable-checking=release --enable-languages=c,c++

Mind "--enable-maintainer-mode --disable-werror" being used.

And this still results in a -Werror during libstdc++ building, which results into:

--8<--
ln -s /home/joty/projects/gccsdk/gccsdk_svn7/gcc4/srcdir/gcc/libstdc++-v3/config/locale/generic/ctype_members.cc . || true
/bin/bash ../libtool --tag CXX   --mode=compile /home/joty/projects/gccsdk/gccsdk_svn7/gcc4/builddir/cross-gcc/./gcc/xgcc -shared-libgcc -B/home/joty/projects/gccsdk/gccsdk_svn7/gcc4/builddir/cross-gcc/./gcc -nostdinc++ -L/home/joty/projects/gccsdk/gccsdk_svn7/gcc4/builddir/cross-gcc/arm-unknown-eabi/libstdc++-v3/src -L/home/joty/projects/gccsdk/gccsdk_svn7/gcc4/builddir/cross-gcc/arm-unknown-eabi/libstdc++-v3/src/.libs -nostdinc -B/home/joty/projects/gccsdk/gccsdk_svn7/gcc4/builddir/cross-gcc/arm-unknown-eabi/newlib/ -isystem /home/joty/projects/gccsdk/gccsdk_svn7/gcc4/builddir/cross-gcc/arm-unknown-eabi/newlib/targ-include -isystem /home/joty/projects/gccsdk/gccsdk_svn7/gcc4/srcdir/gcc/newlib/libc/include -B/home/joty/projects/gccsdk/gccsdk_svn7/gcc4/builddir/cross-gcc/arm-unknown-eabi/libgloss/arm -L/home/joty/projects/gccsdk/gccsdk_svn7/gcc4/builddir/cross-gcc/arm-unknown-eabi/libgloss/libnosys -L/home/joty/projects/gccsdk/gccsdk_svn7/gcc4/srcdir/gcc/libgloss/arm -B/home/joty/projects/gccsdk/riscos7/cross/arm-unknown-eabi/bin/ -B/home/joty/projects/gccsdk/riscos7/cross/arm-unknown-eabi/lib/ -isystem /home/joty/projects/gccsdk/riscos7/cross/arm-unknown-eabi/include -isystem /home/joty/projects/gccsdk/riscos7/cross/arm-unknown-eabi/sys-include     -I/home/joty/projects/gccsdk/gccsdk_svn7/gcc4/builddir/cross-gcc/arm-unknown-eabi/libstdc++-v3/include/arm-unknown-eabi -I/home/joty/projects/gccsdk/gccsdk_svn7/gcc4/builddir/cross-gcc/arm-unknown-eabi/libstdc++-v3/include -I/home/joty/projects/gccsdk/gccsdk_svn7/gcc4/srcdir/gcc/libstdc++-v3/libsupc++  -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Werror -fdiagnostics-show-location=once  -ffunction-sections -fdata-sections  -g -O2 -c -o ctype_members.lo ctype_members.cc
libtool: compile:  /home/joty/projects/gccsdk/gccsdk_svn7/gcc4/builddir/cross-gcc/./gcc/xgcc -shared-libgcc -B/home/joty/projects/gccsdk/gccsdk_svn7/gcc4/builddir/cross-gcc/./gcc -nostdinc++ -L/home/joty/projects/gccsdk/gccsdk_svn7/gcc4/builddir/cross-gcc/arm-unknown-eabi/libstdc++-v3/src -L/home/joty/projects/gccsdk/gccsdk_svn7/gcc4/builddir/cross-gcc/arm-unknown-eabi/libstdc++-v3/src/.libs -nostdinc -B/home/joty/projects/gccsdk/gccsdk_svn7/gcc4/builddir/cross-gcc/arm-unknown-eabi/newlib/ -isystem /home/joty/projects/gccsdk/gccsdk_svn7/gcc4/builddir/cross-gcc/arm-unknown-eabi/newlib/targ-include -isystem /home/joty/projects/gccsdk/gccsdk_svn7/gcc4/srcdir/gcc/newlib/libc/include -B/home/joty/projects/gccsdk/gccsdk_svn7/gcc4/builddir/cross-gcc/arm-unknown-eabi/libgloss/arm -L/home/joty/projects/gccsdk/gccsdk_svn7/gcc4/builddir/cross-gcc/arm-unknown-eabi/libgloss/libnosys -L/home/joty/projects/gccsdk/gccsdk_svn7/gcc4/srcdir/gcc/libgloss/arm -B/home/joty/projects/gccsdk/riscos7/cross/arm-unknown-eabi/bin/ -B/home/joty/projects/gccsdk/riscos7/cross/arm-unknown-eabi/lib/ -isystem /home/joty/projects/gccsdk/riscos7/cross/arm-unknown-eabi/include -isystem /home/joty/projects/gccsdk/riscos7/cross/arm-unknown-eabi/sys-include -I/home/joty/projects/gccsdk/gccsdk_svn7/gcc4/builddir/cross-gcc/arm-unknown-eabi/libstdc++-v3/include/arm-unknown-eabi -I/home/joty/projects/gccsdk/gccsdk_svn7/gcc4/builddir/cross-gcc/arm-unknown-eabi/libstdc++-v3/include -I/home/joty/projects/gccsdk/gccsdk_svn7/gcc4/srcdir/gcc/libstdc++-v3/libsupc++ -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Werror -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -O2 -c ctype_members.cc -o ctype_members.o
ctype_members.cc: In member function 'virtual char std::ctype<wchar_t>::do_narrow(wchar_t, char) const':
ctype_members.cc:206:17: error: comparison of unsigned expression >= 0 is always true [-Werror=type-limits]
ctype_members.cc: In member function 'virtual const wchar_t* std::ctype<wchar_t>::do_narrow(const wchar_t*, const wchar_t*, char, char*) const':
ctype_members.cc:220:17: error: comparison of unsigned expression >= 0 is always true [-Werror=type-limits]
cc1plus: all warnings being treated as errors
--8<--

Removing --enable-maintainer-mode is of course a workaround but I expect that with a --disable-werror this should not result in -Werror being used at all.
Comment 1 Benjamin Kosnik 2012-02-17 20:26:37 UTC
Author: bkoz
Date: Fri Feb 17 20:26:32 2012
New Revision: 184349

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184349
Log:
2012-02-17  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/47058
	* acinclude.m4 (GLIBCXX_ENABLE_WERROR): New.
	(GLIBCXX_EXPORT_FLAGS): Add -Wabi to WARN_FLAGS
	* configure.ac: Use it.
	* fragment.am: Set WERROR_FLAG conditionally on --disable-werror.
	* configure: Regenerate.
	* python/Makefile.in: Same.
	* Makefile.in: Same.
	* doc/Makefile.in: Same.
	* include/Makefile.in: Same.
	* po/Makefile.in: Same.
	* python/Makefile.in: Same.
	* src/Makefile.in: Same.
	* src/c++11/Makefile.in: Same.
	* src/c++98/Makefile.in: Same.
	* testsuite/Makefile.in: Same.

Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/Makefile.in
    trunk/libstdc++-v3/acinclude.m4
    trunk/libstdc++-v3/configure
    trunk/libstdc++-v3/configure.ac
    trunk/libstdc++-v3/doc/Makefile.in
    trunk/libstdc++-v3/fragment.am
    trunk/libstdc++-v3/include/Makefile.in
    trunk/libstdc++-v3/libsupc++/Makefile.in
    trunk/libstdc++-v3/po/Makefile.in
    trunk/libstdc++-v3/python/Makefile.in
    trunk/libstdc++-v3/src/Makefile.in
    trunk/libstdc++-v3/src/c++11/Makefile.in
    trunk/libstdc++-v3/src/c++98/Makefile.in
    trunk/libstdc++-v3/testsuite/Makefile.in
Comment 2 Benjamin Kosnik 2012-02-17 20:27:52 UTC
Mine
Comment 3 Benjamin Kosnik 2012-02-17 20:28:50 UTC
Fixed in trunk. Now --disable-werror removes -Werror from the build warning flags, even in maintainer mode.