re PR libstdc++/47058 ("--enable-maintainer-mode --disable-werror" wrongly upgrades warnings to errors in libstdc++)

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.

From-SVN: r184349
This commit is contained in:
Benjamin Kosnik 2012-02-17 20:26:32 +00:00 committed by Benjamin Kosnik
parent 5a815b930a
commit b124c5c482
15 changed files with 117 additions and 23 deletions

View File

@ -1,3 +1,22 @@
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.
2012-02-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR libstdc++/52189

View File

@ -288,6 +288,8 @@ PWD_COMMAND = $${PWDCMD-pwd}
STAMP = echo timestamp >
toolexecdir = $(glibcxx_toolexecdir)
toolexeclibdir = $(glibcxx_toolexeclibdir)
@ENABLE_WERROR_FALSE@WERROR_FLAG =
@ENABLE_WERROR_TRUE@WERROR_FLAG = $(WERROR)
# These bits are all figured out from configure. Look in acinclude.m4
# or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS.
@ -295,7 +297,7 @@ CONFIG_CXXFLAGS = \
$(SECTION_FLAGS) $(EXTRA_CXX_FLAGS) -frandom-seed=$@
WARN_CXXFLAGS = \
$(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once -Wabi
$(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once
# -I/-D flags to pass when compiling.

View File

@ -729,7 +729,7 @@ AC_DEFUN([GLIBCXX_EXPORT_FLAGS], [
# OPTIMIZE_CXXFLAGS = -O3 -fstrict-aliasing -fvtable-gc
AC_SUBST(OPTIMIZE_CXXFLAGS)
WARN_FLAGS='-Wall -Wextra -Wwrite-strings -Wcast-qual'
WARN_FLAGS='-Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi'
AC_SUBST(WARN_FLAGS)
])
@ -3591,6 +3591,17 @@ AC_SUBST(python_mod_dir)
GLIBCXX_CONDITIONAL(ENABLE_PYTHONDIR, test $python_mod_dir != no)
])
dnl
dnl Check to see if -Werror is disabled.
dnl
dnl --enable-werror/--disable-werror
AC_DEFUN([GLIBCXX_ENABLE_WERROR], [
AC_MSG_CHECKING([for -Werror])
GLIBCXX_ENABLE(werror,$1,,[turns on -Werror])
AC_MSG_RESULT($enable_werror)
GLIBCXX_CONDITIONAL(ENABLE_WERROR, test $enable_werror = yes)
])
# Macros from the top-level gcc directory.
m4_include([../config/gc++filt.m4])

View File

@ -664,6 +664,8 @@ LIBICONV
OPT_LDFLAGS
SECTION_LDFLAGS
GLIBCXX_LIBS
ENABLE_WERROR_FALSE
ENABLE_WERROR_TRUE
ENABLE_PYTHONDIR_FALSE
ENABLE_PYTHONDIR_TRUE
python_mod_dir
@ -860,6 +862,7 @@ enable_cxx_flags
enable_fully_dynamic_string
enable_extern_template
with_python_dir
enable_werror
enable_libstdcxx_time
enable_tls
enable_rpath
@ -1549,6 +1552,7 @@ Optional Features:
memory [default=no]
--enable-extern-template
enable extern template [default=yes]
--enable-werror turns on -Werror [default=yes]
--enable-libstdcxx-time[=KIND]
use KIND for check type [default=no]
--enable-tls Use thread-local storage [default=yes]
@ -11495,7 +11499,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 11498 "configure"
#line 11502 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -11601,7 +11605,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 11604 "configure"
#line 11608 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -14959,7 +14963,7 @@ fi
#
# Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style.
cat > conftest.$ac_ext << EOF
#line 14962 "configure"
#line 14966 "configure"
struct S { ~S(); };
void bar();
void foo()
@ -15294,7 +15298,7 @@ $as_echo "$glibcxx_cv_atomic_long_long" >&6; }
# Fake what AC_TRY_COMPILE does.
cat > conftest.$ac_ext << EOF
#line 15297 "configure"
#line 15301 "configure"
int main()
{
typedef bool atomic_type;
@ -15329,7 +15333,7 @@ $as_echo "$glibcxx_cv_atomic_bool" >&6; }
rm -f conftest*
cat > conftest.$ac_ext << EOF
#line 15332 "configure"
#line 15336 "configure"
int main()
{
typedef short atomic_type;
@ -15364,7 +15368,7 @@ $as_echo "$glibcxx_cv_atomic_short" >&6; }
rm -f conftest*
cat > conftest.$ac_ext << EOF
#line 15367 "configure"
#line 15371 "configure"
int main()
{
// NB: _Atomic_word not necessarily int.
@ -15400,7 +15404,7 @@ $as_echo "$glibcxx_cv_atomic_int" >&6; }
rm -f conftest*
cat > conftest.$ac_ext << EOF
#line 15403 "configure"
#line 15407 "configure"
int main()
{
typedef long long atomic_type;
@ -15480,7 +15484,7 @@ $as_echo "$as_me: WARNING: Performance of certain classes will degrade as a resu
# unnecessary for this test.
cat > conftest.$ac_ext << EOF
#line 15483 "configure"
#line 15487 "configure"
int main()
{
_Decimal32 d1;
@ -15522,7 +15526,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
# unnecessary for this test.
cat > conftest.$ac_ext << EOF
#line 15525 "configure"
#line 15529 "configure"
template<typename T1, typename T2>
struct same
{ typedef T2 type; };
@ -15556,7 +15560,7 @@ $as_echo "$enable_int128" >&6; }
rm -f conftest*
cat > conftest.$ac_ext << EOF
#line 15559 "configure"
#line 15563 "configure"
template<typename T1, typename T2>
struct same
{ typedef T2 type; };
@ -17269,6 +17273,26 @@ python_mod_dir="${with_python_dir}"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Werror" >&5
$as_echo_n "checking for -Werror... " >&6; }
# Check whether --enable-werror was given.
if test "${enable_werror+set}" = set; then :
enableval=$enable_werror;
case "$enableval" in
yes|no) ;;
*) as_fn_error "Argument to enable/disable werror must be yes or no" "$LINENO" 5 ;;
esac
else
enable_werror=yes
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_werror" >&5
$as_echo "$enable_werror" >&6; }
# Checks for operating systems support that doesn't require linking.
@ -66123,6 +66147,15 @@ else
fi
if test $enable_werror = yes; then
ENABLE_WERROR_TRUE=
ENABLE_WERROR_FALSE='#'
else
ENABLE_WERROR_TRUE='#'
ENABLE_WERROR_FALSE=
fi
if test $enable_symvers != no; then
ENABLE_SYMVERS_TRUE=
ENABLE_SYMVERS_FALSE='#'
@ -66399,7 +66432,7 @@ $as_echo "$gxx_include_dir" >&6; }
# OPTIMIZE_CXXFLAGS = -O3 -fstrict-aliasing -fvtable-gc
WARN_FLAGS='-Wall -Wextra -Wwrite-strings -Wcast-qual'
WARN_FLAGS='-Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi'
@ -66580,6 +66613,10 @@ if test -z "${ENABLE_PYTHONDIR_TRUE}" && test -z "${ENABLE_PYTHONDIR_FALSE}"; th
as_fn_error "conditional \"ENABLE_PYTHONDIR\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${ENABLE_WERROR_TRUE}" && test -z "${ENABLE_WERROR_FALSE}"; then
as_fn_error "conditional \"ENABLE_WERROR\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${ENABLE_SYMVERS_TRUE}" && test -z "${ENABLE_SYMVERS_FALSE}"; then
as_fn_error "conditional \"ENABLE_SYMVERS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5

View File

@ -131,6 +131,7 @@ GLIBCXX_ENABLE_CXX_FLAGS
GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING([no])
GLIBCXX_ENABLE_EXTERN_TEMPLATE([yes])
GLIBCXX_ENABLE_PYTHON
GLIBCXX_ENABLE_WERROR([yes])
# Checks for operating systems support that doesn't require linking.
GLIBCXX_CHECK_MATH_PROTO

View File

@ -272,6 +272,8 @@ PWD_COMMAND = $${PWDCMD-pwd}
STAMP = echo timestamp >
toolexecdir = $(glibcxx_toolexecdir)
toolexeclibdir = $(glibcxx_toolexeclibdir)
@ENABLE_WERROR_FALSE@WERROR_FLAG =
@ENABLE_WERROR_TRUE@WERROR_FLAG = $(WERROR)
# These bits are all figured out from configure. Look in acinclude.m4
# or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS.
@ -279,7 +281,7 @@ CONFIG_CXXFLAGS = \
$(SECTION_FLAGS) $(EXTRA_CXX_FLAGS) -frandom-seed=$@
WARN_CXXFLAGS = \
$(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once -Wabi
$(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once
# -I/-D flags to pass when compiling.

View File

@ -13,12 +13,18 @@ STAMP = echo timestamp >
toolexecdir = $(glibcxx_toolexecdir)
toolexeclibdir = $(glibcxx_toolexeclibdir)
if ENABLE_WERROR
WERROR_FLAG=$(WERROR)
else
WERROR_FLAG=
endif
# These bits are all figured out from configure. Look in acinclude.m4
# or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS.
CONFIG_CXXFLAGS = \
$(SECTION_FLAGS) $(EXTRA_CXX_FLAGS) -frandom-seed=$@
WARN_CXXFLAGS = \
$(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once -Wabi
$(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once
# -I/-D flags to pass when compiling.
AM_CPPFLAGS = $(GLIBCXX_INCLUDES)

View File

@ -262,6 +262,8 @@ PWD_COMMAND = $${PWDCMD-pwd}
STAMP = echo timestamp >
toolexecdir = $(glibcxx_toolexecdir)
toolexeclibdir = $(glibcxx_toolexeclibdir)
@ENABLE_WERROR_FALSE@WERROR_FLAG =
@ENABLE_WERROR_TRUE@WERROR_FLAG = $(WERROR)
# These bits are all figured out from configure. Look in acinclude.m4
# or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS.
@ -269,7 +271,7 @@ CONFIG_CXXFLAGS = \
$(SECTION_FLAGS) $(EXTRA_CXX_FLAGS) -frandom-seed=$@
WARN_CXXFLAGS = \
$(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once -Wabi
$(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once
# -I/-D flags to pass when compiling.

View File

@ -322,6 +322,8 @@ PWD_COMMAND = $${PWDCMD-pwd}
STAMP = echo timestamp >
toolexecdir = $(glibcxx_toolexecdir)
toolexeclibdir = $(glibcxx_toolexeclibdir)
@ENABLE_WERROR_FALSE@WERROR_FLAG =
@ENABLE_WERROR_TRUE@WERROR_FLAG = $(WERROR)
# These bits are all figured out from configure. Look in acinclude.m4
# or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS.
@ -329,7 +331,7 @@ CONFIG_CXXFLAGS = \
$(SECTION_FLAGS) $(EXTRA_CXX_FLAGS) -frandom-seed=$@
WARN_CXXFLAGS = \
$(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once -Wabi
$(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once
# -I/-D flags to pass when compiling.

View File

@ -262,6 +262,8 @@ PWD_COMMAND = $${PWDCMD-pwd}
STAMP = echo timestamp >
toolexecdir = $(glibcxx_toolexecdir)
toolexeclibdir = $(glibcxx_toolexeclibdir)
@ENABLE_WERROR_FALSE@WERROR_FLAG =
@ENABLE_WERROR_TRUE@WERROR_FLAG = $(WERROR)
# These bits are all figured out from configure. Look in acinclude.m4
# or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS.
@ -269,7 +271,7 @@ CONFIG_CXXFLAGS = \
$(SECTION_FLAGS) $(EXTRA_CXX_FLAGS) -frandom-seed=$@
WARN_CXXFLAGS = \
$(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once -Wabi
$(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once
# -I/-D flags to pass when compiling.

View File

@ -286,6 +286,8 @@ PWD_COMMAND = $${PWDCMD-pwd}
STAMP = echo timestamp >
toolexecdir = $(glibcxx_toolexecdir)
toolexeclibdir = $(glibcxx_toolexeclibdir)
@ENABLE_WERROR_FALSE@WERROR_FLAG =
@ENABLE_WERROR_TRUE@WERROR_FLAG = $(WERROR)
# These bits are all figured out from configure. Look in acinclude.m4
# or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS.
@ -293,7 +295,7 @@ CONFIG_CXXFLAGS = \
$(SECTION_FLAGS) $(EXTRA_CXX_FLAGS) -frandom-seed=$@
WARN_CXXFLAGS = \
$(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once -Wabi
$(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once
# -I/-D flags to pass when compiling.

View File

@ -313,6 +313,8 @@ PWD_COMMAND = $${PWDCMD-pwd}
STAMP = echo timestamp >
toolexecdir = $(glibcxx_toolexecdir)
toolexeclibdir = $(glibcxx_toolexeclibdir)
@ENABLE_WERROR_FALSE@WERROR_FLAG =
@ENABLE_WERROR_TRUE@WERROR_FLAG = $(WERROR)
# These bits are all figured out from configure. Look in acinclude.m4
# or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS.
@ -320,7 +322,7 @@ CONFIG_CXXFLAGS = \
$(SECTION_FLAGS) $(EXTRA_CXX_FLAGS) -frandom-seed=$@
WARN_CXXFLAGS = \
$(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once -Wabi
$(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once
# -I/-D flags to pass when compiling.

View File

@ -280,6 +280,8 @@ PWD_COMMAND = $${PWDCMD-pwd}
STAMP = echo timestamp >
toolexecdir = $(glibcxx_toolexecdir)
toolexeclibdir = $(glibcxx_toolexeclibdir)
@ENABLE_WERROR_FALSE@WERROR_FLAG =
@ENABLE_WERROR_TRUE@WERROR_FLAG = $(WERROR)
# These bits are all figured out from configure. Look in acinclude.m4
# or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS.
@ -287,7 +289,7 @@ CONFIG_CXXFLAGS = \
$(SECTION_FLAGS) $(EXTRA_CXX_FLAGS) -frandom-seed=$@
WARN_CXXFLAGS = \
$(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once -Wabi
$(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once
# -I/-D flags to pass when compiling.

View File

@ -299,6 +299,8 @@ PWD_COMMAND = $${PWDCMD-pwd}
STAMP = echo timestamp >
toolexecdir = $(glibcxx_toolexecdir)
toolexeclibdir = $(glibcxx_toolexeclibdir)
@ENABLE_WERROR_FALSE@WERROR_FLAG =
@ENABLE_WERROR_TRUE@WERROR_FLAG = $(WERROR)
# These bits are all figured out from configure. Look in acinclude.m4
# or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS.
@ -306,7 +308,7 @@ CONFIG_CXXFLAGS = \
$(SECTION_FLAGS) $(EXTRA_CXX_FLAGS) -frandom-seed=$@
WARN_CXXFLAGS = \
$(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once -Wabi
$(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once
# -I/-D flags to pass when compiling.

View File

@ -265,6 +265,8 @@ PWD_COMMAND = $${PWDCMD-pwd}
STAMP = echo timestamp >
toolexecdir = $(glibcxx_toolexecdir)
toolexeclibdir = $(glibcxx_toolexeclibdir)
@ENABLE_WERROR_FALSE@WERROR_FLAG =
@ENABLE_WERROR_TRUE@WERROR_FLAG = $(WERROR)
# These bits are all figured out from configure. Look in acinclude.m4
# or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS.
@ -272,7 +274,7 @@ CONFIG_CXXFLAGS = \
$(SECTION_FLAGS) $(EXTRA_CXX_FLAGS) -frandom-seed=$@
WARN_CXXFLAGS = \
$(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once -Wabi
$(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once
# -I/-D flags to pass when compiling.