diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index a9d47ed0735263c9396694b19f9a7335bd0baa05..617cce6966cb368fafa219e37565072c4e67e24f 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -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 diff --git a/libstdc++-v3/Makefile.in b/libstdc++-v3/Makefile.in index 74fade4ca477c84ab614b741a278e8de6a96ff94..6a66c60a6519717b659edfda01bfad5149fe9cfc 100644 --- a/libstdc++-v3/Makefile.in +++ b/libstdc++-v3/Makefile.in @@ -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. diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index e7ffacc19e37fe2433534e9267166d813f9d2dd6..46a5532e2d4d971fb16574cf3a4b794f34970e13 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -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]) diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index 07b2a84e8d9dedd5bee026786a5318ac772d298b..c053be390267d2eeaadd189f5927e51c419dc518 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -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 diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac index 81b523f0342665127706eb01b3ae34e821711e09..49de141be7b753dec091c9dc35ca698b146b58bd 100644 --- a/libstdc++-v3/configure.ac +++ b/libstdc++-v3/configure.ac @@ -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 diff --git a/libstdc++-v3/doc/Makefile.in b/libstdc++-v3/doc/Makefile.in index 933893448d6542c73f4c16e3daed6001dd0be0d2..39c7e1f5b2781e3bfaad37e4d18bfb2bd2b566d3 100644 --- a/libstdc++-v3/doc/Makefile.in +++ b/libstdc++-v3/doc/Makefile.in @@ -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. diff --git a/libstdc++-v3/fragment.am b/libstdc++-v3/fragment.am index 2bcbc1ab3d3c3ec3cbf72c94c47a8c23264473ce..304d39637d94f61d2f50aa41b6418f1bb41cddab 100644 --- a/libstdc++-v3/fragment.am +++ b/libstdc++-v3/fragment.am @@ -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) diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in index b872ef5070380666e0af7b81b7ee58032e6b6ef3..19a7c0edd38a7b5120fe475614c2ce0ff567b45a 100644 --- a/libstdc++-v3/include/Makefile.in +++ b/libstdc++-v3/include/Makefile.in @@ -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. diff --git a/libstdc++-v3/libsupc++/Makefile.in b/libstdc++-v3/libsupc++/Makefile.in index 4d4aeb71d0f5daee5c9ce8d6b50dfed0e224bdd2..ee65762bdcb8aee605c5cd8c36885d6a05ed6da6 100644 --- a/libstdc++-v3/libsupc++/Makefile.in +++ b/libstdc++-v3/libsupc++/Makefile.in @@ -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. diff --git a/libstdc++-v3/po/Makefile.in b/libstdc++-v3/po/Makefile.in index 2fc769fdcf526238d0a832e1acf5d4bd8b909ab6..4392d89d11804fe1cd391d7d579fc7689caf883f 100644 --- a/libstdc++-v3/po/Makefile.in +++ b/libstdc++-v3/po/Makefile.in @@ -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. diff --git a/libstdc++-v3/python/Makefile.in b/libstdc++-v3/python/Makefile.in index 7dde04f7766f84693236e3c5996f227246e96b50..f83fac87a09c0f9a1377c782d23300824403fc99 100644 --- a/libstdc++-v3/python/Makefile.in +++ b/libstdc++-v3/python/Makefile.in @@ -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. diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in index 9f5a18f260eddb91ccfe26c1ee9e7d377205502f..93ed4402784153810ef6137eeda2177caba69195 100644 --- a/libstdc++-v3/src/Makefile.in +++ b/libstdc++-v3/src/Makefile.in @@ -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. diff --git a/libstdc++-v3/src/c++11/Makefile.in b/libstdc++-v3/src/c++11/Makefile.in index 7cc1c8c1a8471214a39f583fc8ddce1a982c31d3..b7f362af6897bf8ea15fce110069b29eb66d7752 100644 --- a/libstdc++-v3/src/c++11/Makefile.in +++ b/libstdc++-v3/src/c++11/Makefile.in @@ -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. diff --git a/libstdc++-v3/src/c++98/Makefile.in b/libstdc++-v3/src/c++98/Makefile.in index 33afea4d5d035338bae9d6551f5530fb2c4e5bb2..b0e6c14d04861a7b23d25dab1e670c43124d7fde 100644 --- a/libstdc++-v3/src/c++98/Makefile.in +++ b/libstdc++-v3/src/c++98/Makefile.in @@ -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. diff --git a/libstdc++-v3/testsuite/Makefile.in b/libstdc++-v3/testsuite/Makefile.in index fc9b31a42599dc4e388c0579faeb13bc491a2f64..0826f05e72a1852a3ca178347077fdace2a601f9 100644 --- a/libstdc++-v3/testsuite/Makefile.in +++ b/libstdc++-v3/testsuite/Makefile.in @@ -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.