123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669 |
- From 28ba44ad9ca14153e96c94a9100423ea224c1af3 Mon Sep 17 00:00:00 2001
- From: Simon Marchi <simon.marchi@efficios.com>
- Date: Tue, 18 Feb 2020 13:14:22 -0500
- Subject: [PATCH] configure: simplify warning flags detection
- We currently use the AX_COMPILER_FLAGS macro to detect the warning flags
- that the current compiler supports. It works, but is quite invasive.
- It unconditionally enables a bunch of warnings we don't want, which
- forces us to disable them with many -Wno-foo switches.
- Instead of using AX_COMPILER_FLAGS, we can use the slightly lower lever
- macro AX_APPEND_COMPILE_FLAGS to achieve our goal of detecting which
- warning flags are supported. This is what we ended up using in
- lttng-tools (a completely unrelated project, but that has a suspiciously
- high ratio of contributors in common with Babeltrace).
- I looked in our git history to see which warning flags were mentioned in
- commit messages. I have added the flags that did find actual problems
- and are not enabled by default to the AX_APPEND_COMPILE_FLAGS invocation.
- I have also added the flags that AX_COMPILER_FLAGS did provide, which we
- didn't need to disable.
- The --{enable,disable}-Werror flag is added using an explicit
- AC_ARG_ENABLE. In lttng-tools, it was decided to _not_ have -Werror by
- default, so I suggest we do the same in Babeltrace, for consistency
- (although it saddens me very much). Developers who want to build with
- -Werror will need to pass --enable-Werror.
- Note that with this patch, we lose the following configure switch, that
- is provided by AX_COMPILER_FLAGS:
- --enable-compile-warnings=[no/yes/error]
- Change-Id: If968f7385a7f5c48d27f402c76bc26241a8f505a
- Signed-off-by: Simon Marchi <simon.marchi@efficios.com>
- Reviewed-on: https://review.lttng.org/c/babeltrace/+/3209
- Tested-by: jenkins <jenkins@lttng.org>
- Reviewed-by: Michael Jeanson <mjeanson@efficios.com>
- [Retrieved from:
- https://github.com/efficios/babeltrace/commit/28ba44ad9ca14153e96c94a9100423ea224c1af3]
- Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
- ---
- configure.ac | 74 +++++++++------
- m4/ax_compiler_flags.m4 | 158 -------------------------------
- m4/ax_compiler_flags_cflags.m4 | 161 --------------------------------
- m4/ax_compiler_flags_gir.m4 | 60 ------------
- m4/ax_compiler_flags_ldflags.m4 | 111 ----------------------
- 5 files changed, 46 insertions(+), 518 deletions(-)
- delete mode 100644 m4/ax_compiler_flags.m4
- delete mode 100644 m4/ax_compiler_flags_cflags.m4
- delete mode 100644 m4/ax_compiler_flags_gir.m4
- delete mode 100644 m4/ax_compiler_flags_ldflags.m4
- diff --git a/configure.ac b/configure.ac
- index 055fba101..7ebcf2ad4 100644
- --- a/configure.ac
- +++ b/configure.ac
- @@ -660,25 +660,35 @@ target.
- CFLAGS=${save_CFLAGS}
-
- # Detect C and LD warning flags supported by the compiler.
- -AX_COMPILER_FLAGS(
- - [WARN_CFLAGS], dnl CFLAGS variable name
- - [WARN_LDFLAGS], dnl LDFLAGS variable name (unused for now)
- - [], dnl is-release
- - [], dnl Extra base CFLAGS
- - [ dnl Extra "yes" CFLAGS
- - dnl Disable these flags, either because we don't want them
- - dnl or because we want them but are not ready to enable them
- - dnl yet.
- - -Wno-sign-compare dnl
- - -Wno-inline dnl
- - -Wno-declaration-after-statement dnl
- - -Wno-switch-enum dnl
- - -Wno-switch-default dnl
- - -Wno-packed dnl
- - -Wno-pointer-arith dnl
- +
- +# Detect warning flags supported by the compiler, append them to WARN_CFLAGS.
- +#
- +# Pass -Werror as an extra flag during the test: this is needed to make the
- +# -Wunknown-warning-option diagnostic fatal with clang.
- +AX_APPEND_COMPILE_FLAGS([ dnl
- + -Wall dnl
- + -Wextra dnl
- + -Wstrict-prototypes dnl
- + -Wmissing-prototypes dnl
- + -Wmissing-declarations dnl
- + -Wnull-dereference dnl
- + -Wundef dnl
- + -Wredundant-decls dnl
- + -Wshadow dnl
- + -Wjump-misses-init dnl
- + -Wtautological-constant-out-of-range-compare dnl
- + -Wnested-externs dnl
- + -Wwrite-strings dnl
- + -Wformat=2 dnl
- -Wno-format-nonliteral dnl
- - -Wno-double-promotion dnl
- - -Wno-cast-align dnl
- + -Wstrict-aliasing dnl
- + -Wmissing-noreturn dnl
- + -Winit-self dnl
- + -Wduplicated-cond dnl
- + -Wduplicated-branches dnl
- + -Wlogical-op dnl
- + -Wno-unused-parameter dnl
- + -Wno-sign-compare dnl
- dnl
- dnl Some versions of SWIG (like 3.0.12) generate code that produces
- dnl -Wcast-function-type warnings. This warning is present in gcc >= 8. This
- @@ -692,24 +702,32 @@ AX_COMPILER_FLAGS(
- dnl
- dnl Ref: https://github.com/swig/swig/issues/1259
- -Wno-cast-function-type dnl
- - ])
- -
- -# CFLAGS from AX_COMPILER_FLAGS.
- -AM_CFLAGS="${AM_CFLAGS} ${WARN_CFLAGS}"
- + -Wno-missing-field-initializers dnl
- + ],
- + [WARN_CFLAGS],
- + [-Werror])
- +
- +# When given, add -Werror to WARN_CFLAGS.
- +AC_ARG_ENABLE([Werror],
- + [AS_HELP_STRING([--enable-Werror], [Treat compiler warnings as errors.])]
- +)
- +AS_IF([test "x$enable_Werror" = "xyes"],
- + [WARN_CFLAGS="${WARN_CFLAGS} -Werror"]
- +)
-
- -# The test used in AX_COMPILER_FLAGS, generated using AC_LANG_PROGRAM, is
- +# The test used in AX_APPEND_COMPILE_FLAGS, generated using AC_LANG_PROGRAM, is
- # written in such a way that it triggers a -Wold-style-definition warning. So
- -# if the user has -Werror in their CFLAGS, that warning flag will end up
- -# disabled, because the test program will not build.
- +# this warning always ends up disabled if we put it there, because the test
- +# program does not build.
- #
- # Enable it here unconditionally. It is supported by GCC >= 4.8 and by Clang
- # (it is accepted for compatibility although it has no effect), and there is
- # not reason to not want it.
-
- -AM_CFLAGS="${AM_CFLAGS} -Wold-style-definition"
- +WARN_CFLAGS="${WARN_CFLAGS} -Wold-style-definition"
-
- -# We want this one to always be an error.
- -AM_CFLAGS="${AM_CFLAGS} -Werror=implicit-function-declaration"
- +# CFLAGS from AX_APPEND_COMPILE_FLAGS.
- +AM_CFLAGS="${AM_CFLAGS} ${WARN_CFLAGS}"
-
- # Done for AM_CFLAGS.
- AC_SUBST(AM_CFLAGS)
- diff --git a/m4/ax_compiler_flags.m4 b/m4/ax_compiler_flags.m4
- deleted file mode 100644
- index ddb0456c4..000000000
- --- a/m4/ax_compiler_flags.m4
- +++ /dev/null
- @@ -1,158 +0,0 @@
- -# ===========================================================================
- -# https://www.gnu.org/software/autoconf-archive/ax_compiler_flags.html
- -# ===========================================================================
- -#
- -# SYNOPSIS
- -#
- -# AX_COMPILER_FLAGS([CFLAGS-VARIABLE], [LDFLAGS-VARIABLE], [IS-RELEASE], [EXTRA-BASE-CFLAGS], [EXTRA-YES-CFLAGS], [UNUSED], [UNUSED], [UNUSED], [EXTRA-BASE-LDFLAGS], [EXTRA-YES-LDFLAGS], [UNUSED], [UNUSED], [UNUSED])
- -#
- -# DESCRIPTION
- -#
- -# Check for the presence of an --enable-compile-warnings option to
- -# configure, defaulting to "error" in normal operation, or "yes" if
- -# IS-RELEASE is equal to "yes". Return the value in the variable
- -# $ax_enable_compile_warnings.
- -#
- -# Depending on the value of --enable-compile-warnings, different compiler
- -# warnings are checked to see if they work with the current compiler and,
- -# if so, are appended to CFLAGS-VARIABLE and LDFLAGS-VARIABLE. This
- -# allows a consistent set of baseline compiler warnings to be used across
- -# a code base, irrespective of any warnings enabled locally by individual
- -# developers. By standardising the warnings used by all developers of a
- -# project, the project can commit to a zero-warnings policy, using -Werror
- -# to prevent compilation if new warnings are introduced. This makes
- -# catching bugs which are flagged by warnings a lot easier.
- -#
- -# By providing a consistent --enable-compile-warnings argument across all
- -# projects using this macro, continuous integration systems can easily be
- -# configured the same for all projects. Automated systems or build
- -# systems aimed at beginners may want to pass the --disable-Werror
- -# argument to unconditionally prevent warnings being fatal.
- -#
- -# --enable-compile-warnings can take the values:
- -#
- -# * no: Base compiler warnings only; not even -Wall.
- -# * yes: The above, plus a broad range of useful warnings.
- -# * error: The above, plus -Werror so that all warnings are fatal.
- -# Use --disable-Werror to override this and disable fatal
- -# warnings.
- -#
- -# The set of base and enabled flags can be augmented using the
- -# EXTRA-*-CFLAGS and EXTRA-*-LDFLAGS variables, which are tested and
- -# appended to the output variable if --enable-compile-warnings is not
- -# "no". Flags should not be disabled using these arguments, as the entire
- -# point of AX_COMPILER_FLAGS is to enforce a consistent set of useful
- -# compiler warnings on code, using warnings which have been chosen for low
- -# false positive rates. If a compiler emits false positives for a
- -# warning, a #pragma should be used in the code to disable the warning
- -# locally. See:
- -#
- -# https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas
- -#
- -# The EXTRA-* variables should only be used to supply extra warning flags,
- -# and not general purpose compiler flags, as they are controlled by
- -# configure options such as --disable-Werror.
- -#
- -# IS-RELEASE can be used to disable -Werror when making a release, which
- -# is useful for those hairy moments when you just want to get the release
- -# done as quickly as possible. Set it to "yes" to disable -Werror. By
- -# default, it uses the value of $ax_is_release, so if you are using the
- -# AX_IS_RELEASE macro, there is no need to pass this parameter. For
- -# example:
- -#
- -# AX_IS_RELEASE([git-directory])
- -# AX_COMPILER_FLAGS()
- -#
- -# CFLAGS-VARIABLE defaults to WARN_CFLAGS, and LDFLAGS-VARIABLE defaults
- -# to WARN_LDFLAGS. Both variables are AC_SUBST-ed by this macro, but must
- -# be manually added to the CFLAGS and LDFLAGS variables for each target in
- -# the code base.
- -#
- -# If C++ language support is enabled with AC_PROG_CXX, which must occur
- -# before this macro in configure.ac, warning flags for the C++ compiler
- -# are AC_SUBST-ed as WARN_CXXFLAGS, and must be manually added to the
- -# CXXFLAGS variables for each target in the code base. EXTRA-*-CFLAGS can
- -# be used to augment the base and enabled flags.
- -#
- -# Warning flags for g-ir-scanner (from GObject Introspection) are
- -# AC_SUBST-ed as WARN_SCANNERFLAGS. This variable must be manually added
- -# to the SCANNERFLAGS variable for each GIR target in the code base. If
- -# extra g-ir-scanner flags need to be enabled, the AX_COMPILER_FLAGS_GIR
- -# macro must be invoked manually.
- -#
- -# AX_COMPILER_FLAGS may add support for other tools in future, in addition
- -# to the compiler and linker. No extra EXTRA-* variables will be added
- -# for those tools, and all extra support will still use the single
- -# --enable-compile-warnings configure option. For finer grained control
- -# over the flags for individual tools, use AX_COMPILER_FLAGS_CFLAGS,
- -# AX_COMPILER_FLAGS_LDFLAGS and AX_COMPILER_FLAGS_* for new tools.
- -#
- -# The UNUSED variables date from a previous version of this macro, and are
- -# automatically appended to the preceding non-UNUSED variable. They should
- -# be left empty in new uses of the macro.
- -#
- -# LICENSE
- -#
- -# Copyright (c) 2014, 2015 Philip Withnall <philip@tecnocode.co.uk>
- -# Copyright (c) 2015 David King <amigadave@amigadave.com>
- -#
- -# Copying and distribution of this file, with or without modification, are
- -# permitted in any medium without royalty provided the copyright notice
- -# and this notice are preserved. This file is offered as-is, without any
- -# warranty.
- -
- -#serial 14
- -
- -# _AX_COMPILER_FLAGS_LANG([LANGNAME])
- -m4_defun([_AX_COMPILER_FLAGS_LANG],
- -[m4_ifdef([_AX_COMPILER_FLAGS_LANG_]$1[_enabled], [],
- - [m4_define([_AX_COMPILER_FLAGS_LANG_]$1[_enabled], [])dnl
- - AX_REQUIRE_DEFINED([AX_COMPILER_FLAGS_]$1[FLAGS])])dnl
- -])
- -
- -AC_DEFUN([AX_COMPILER_FLAGS],[
- - # C support is enabled by default.
- - _AX_COMPILER_FLAGS_LANG([C])
- - # Only enable C++ support if AC_PROG_CXX is called. The redefinition of
- - # AC_PROG_CXX is so that a fatal error is emitted if this macro is called
- - # before AC_PROG_CXX, which would otherwise cause no C++ warnings to be
- - # checked.
- - AC_PROVIDE_IFELSE([AC_PROG_CXX],
- - [_AX_COMPILER_FLAGS_LANG([CXX])],
- - [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AX_COMPILER_FLAGS_LANG([CXX])])])
- - AX_REQUIRE_DEFINED([AX_COMPILER_FLAGS_LDFLAGS])
- -
- - # Default value for IS-RELEASE is $ax_is_release
- - ax_compiler_flags_is_release=m4_tolower(m4_normalize(ifelse([$3],,
- - [$ax_is_release],
- - [$3])))
- -
- - AC_ARG_ENABLE([compile-warnings],
- - AS_HELP_STRING([--enable-compile-warnings=@<:@no/yes/error@:>@],
- - [Enable compiler warnings and errors]),,
- - [AS_IF([test "$ax_compiler_flags_is_release" = "yes"],
- - [enable_compile_warnings="yes"],
- - [enable_compile_warnings="error"])])
- - AC_ARG_ENABLE([Werror],
- - AS_HELP_STRING([--disable-Werror],
- - [Unconditionally make all compiler warnings non-fatal]),,
- - [enable_Werror=maybe])
- -
- - # Return the user's chosen warning level
- - AS_IF([test "$enable_Werror" = "no" -a \
- - "$enable_compile_warnings" = "error"],[
- - enable_compile_warnings="yes"
- - ])
- -
- - ax_enable_compile_warnings=$enable_compile_warnings
- -
- - AX_COMPILER_FLAGS_CFLAGS([$1],[$ax_compiler_flags_is_release],
- - [$4],[$5 $6 $7 $8])
- - m4_ifdef([_AX_COMPILER_FLAGS_LANG_CXX_enabled],
- - [AX_COMPILER_FLAGS_CXXFLAGS([WARN_CXXFLAGS],
- - [$ax_compiler_flags_is_release],
- - [$4],[$5 $6 $7 $8])])
- - AX_COMPILER_FLAGS_LDFLAGS([$2],[$ax_compiler_flags_is_release],
- - [$9],[$10 $11 $12 $13])
- - AX_COMPILER_FLAGS_GIR([WARN_SCANNERFLAGS],[$ax_compiler_flags_is_release])
- -])dnl AX_COMPILER_FLAGS
- diff --git a/m4/ax_compiler_flags_cflags.m4 b/m4/ax_compiler_flags_cflags.m4
- deleted file mode 100644
- index 916f91837..000000000
- --- a/m4/ax_compiler_flags_cflags.m4
- +++ /dev/null
- @@ -1,161 +0,0 @@
- -# =============================================================================
- -# https://www.gnu.org/software/autoconf-archive/ax_compiler_flags_cflags.html
- -# =============================================================================
- -#
- -# SYNOPSIS
- -#
- -# AX_COMPILER_FLAGS_CFLAGS([VARIABLE], [IS-RELEASE], [EXTRA-BASE-FLAGS], [EXTRA-YES-FLAGS])
- -#
- -# DESCRIPTION
- -#
- -# Add warning flags for the C compiler to VARIABLE, which defaults to
- -# WARN_CFLAGS. VARIABLE is AC_SUBST-ed by this macro, but must be
- -# manually added to the CFLAGS variable for each target in the code base.
- -#
- -# This macro depends on the environment set up by AX_COMPILER_FLAGS.
- -# Specifically, it uses the value of $ax_enable_compile_warnings to decide
- -# which flags to enable.
- -#
- -# LICENSE
- -#
- -# Copyright (c) 2014, 2015 Philip Withnall <philip@tecnocode.co.uk>
- -# Copyright (c) 2017, 2018 Reini Urban <rurban@cpan.org>
- -#
- -# Copying and distribution of this file, with or without modification, are
- -# permitted in any medium without royalty provided the copyright notice
- -# and this notice are preserved. This file is offered as-is, without any
- -# warranty.
- -
- -#serial 17
- -
- -AC_DEFUN([AX_COMPILER_FLAGS_CFLAGS],[
- - AC_REQUIRE([AC_PROG_SED])
- - AX_REQUIRE_DEFINED([AX_APPEND_COMPILE_FLAGS])
- - AX_REQUIRE_DEFINED([AX_APPEND_FLAG])
- - AX_REQUIRE_DEFINED([AX_CHECK_COMPILE_FLAG])
- -
- - # Variable names
- - m4_define([ax_warn_cflags_variable],
- - [m4_normalize(ifelse([$1],,[WARN_CFLAGS],[$1]))])
- -
- - AC_LANG_PUSH([C])
- -
- - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
- - [#ifndef __cplusplus
- - #error "no C++"
- - #endif]])],
- - [ax_compiler_cxx=yes;],
- - [ax_compiler_cxx=no;])
- -
- - # Always pass -Werror=unknown-warning-option to get Clang to fail on bad
- - # flags, otherwise they are always appended to the warn_cflags variable, and
- - # Clang warns on them for every compilation unit.
- - # If this is passed to GCC, it will explode, so the flag must be enabled
- - # conditionally.
- - AX_CHECK_COMPILE_FLAG([-Werror=unknown-warning-option],[
- - ax_compiler_flags_test="-Werror=unknown-warning-option"
- - ],[
- - ax_compiler_flags_test=""
- - ])
- -
- - # Check that -Wno-suggest-attribute=format is supported
- - AX_CHECK_COMPILE_FLAG([-Wno-suggest-attribute=format],[
- - ax_compiler_no_suggest_attribute_flags="-Wno-suggest-attribute=format"
- - ],[
- - ax_compiler_no_suggest_attribute_flags=""
- - ])
- -
- - # Base flags
- - AX_APPEND_COMPILE_FLAGS([ dnl
- - -fno-strict-aliasing dnl
- - $3 dnl
- - ],ax_warn_cflags_variable,[$ax_compiler_flags_test])
- -
- - AS_IF([test "$ax_enable_compile_warnings" != "no"],[
- - if test "$ax_compiler_cxx" = "no" ; then
- - # C-only flags. Warn in C++
- - AX_APPEND_COMPILE_FLAGS([ dnl
- - -Wnested-externs dnl
- - -Wmissing-prototypes dnl
- - -Wstrict-prototypes dnl
- - -Wdeclaration-after-statement dnl
- - -Wimplicit-function-declaration dnl
- - -Wold-style-definition dnl
- - -Wjump-misses-init dnl
- - ],ax_warn_cflags_variable,[$ax_compiler_flags_test])
- - fi
- -
- - # "yes" flags
- - AX_APPEND_COMPILE_FLAGS([ dnl
- - -Wall dnl
- - -Wextra dnl
- - -Wundef dnl
- - -Wwrite-strings dnl
- - -Wpointer-arith dnl
- - -Wmissing-declarations dnl
- - -Wredundant-decls dnl
- - -Wno-unused-parameter dnl
- - -Wno-missing-field-initializers dnl
- - -Wformat=2 dnl
- - -Wcast-align dnl
- - -Wformat-nonliteral dnl
- - -Wformat-security dnl
- - -Wsign-compare dnl
- - -Wstrict-aliasing dnl
- - -Wshadow dnl
- - -Winline dnl
- - -Wpacked dnl
- - -Wmissing-format-attribute dnl
- - -Wmissing-noreturn dnl
- - -Winit-self dnl
- - -Wredundant-decls dnl
- - -Wmissing-include-dirs dnl
- - -Wunused-but-set-variable dnl
- - -Warray-bounds dnl
- - -Wreturn-type dnl
- - -Wswitch-enum dnl
- - -Wswitch-default dnl
- - -Wduplicated-cond dnl
- - -Wduplicated-branches dnl
- - -Wlogical-op dnl
- - -Wrestrict dnl
- - -Wnull-dereference dnl
- - -Wdouble-promotion dnl
- - $4 dnl
- - $5 dnl
- - $6 dnl
- - $7 dnl
- - ],ax_warn_cflags_variable,[$ax_compiler_flags_test])
- - ])
- - AS_IF([test "$ax_enable_compile_warnings" = "error"],[
- - # "error" flags; -Werror has to be appended unconditionally because
- - # it's not possible to test for
- - #
- - # suggest-attribute=format is disabled because it gives too many false
- - # positives
- - AX_APPEND_FLAG([-Werror],ax_warn_cflags_variable)
- -
- - AX_APPEND_COMPILE_FLAGS([ dnl
- - [$ax_compiler_no_suggest_attribute_flags] dnl
- - ],ax_warn_cflags_variable,[$ax_compiler_flags_test])
- - ])
- -
- - # In the flags below, when disabling specific flags, always add *both*
- - # -Wno-foo and -Wno-error=foo. This fixes the situation where (for example)
- - # we enable -Werror, disable a flag, and a build bot passes CFLAGS=-Wall,
- - # which effectively turns that flag back on again as an error.
- - for flag in $ax_warn_cflags_variable; do
- - AS_CASE([$flag],
- - [-Wno-*=*],[],
- - [-Wno-*],[
- - AX_APPEND_COMPILE_FLAGS([-Wno-error=$(AS_ECHO([$flag]) | $SED 's/^-Wno-//')],
- - ax_warn_cflags_variable,
- - [$ax_compiler_flags_test])
- - ])
- - done
- -
- - AC_LANG_POP([C])
- -
- - # Substitute the variables
- - AC_SUBST(ax_warn_cflags_variable)
- -])dnl AX_COMPILER_FLAGS
- diff --git a/m4/ax_compiler_flags_gir.m4 b/m4/ax_compiler_flags_gir.m4
- deleted file mode 100644
- index 5b4924a20..000000000
- --- a/m4/ax_compiler_flags_gir.m4
- +++ /dev/null
- @@ -1,60 +0,0 @@
- -# ===========================================================================
- -# https://www.gnu.org/software/autoconf-archive/ax_compiler_flags_gir.html
- -# ===========================================================================
- -#
- -# SYNOPSIS
- -#
- -# AX_COMPILER_FLAGS_GIR([VARIABLE], [IS-RELEASE], [EXTRA-BASE-FLAGS], [EXTRA-YES-FLAGS])
- -#
- -# DESCRIPTION
- -#
- -# Add warning flags for the g-ir-scanner (from GObject Introspection) to
- -# VARIABLE, which defaults to WARN_SCANNERFLAGS. VARIABLE is AC_SUBST-ed
- -# by this macro, but must be manually added to the SCANNERFLAGS variable
- -# for each GIR target in the code base.
- -#
- -# This macro depends on the environment set up by AX_COMPILER_FLAGS.
- -# Specifically, it uses the value of $ax_enable_compile_warnings to decide
- -# which flags to enable.
- -#
- -# LICENSE
- -#
- -# Copyright (c) 2015 Philip Withnall <philip@tecnocode.co.uk>
- -#
- -# Copying and distribution of this file, with or without modification, are
- -# permitted in any medium without royalty provided the copyright notice
- -# and this notice are preserved. This file is offered as-is, without any
- -# warranty.
- -
- -#serial 6
- -
- -AC_DEFUN([AX_COMPILER_FLAGS_GIR],[
- - AX_REQUIRE_DEFINED([AX_APPEND_FLAG])
- -
- - # Variable names
- - m4_define([ax_warn_scannerflags_variable],
- - [m4_normalize(ifelse([$1],,[WARN_SCANNERFLAGS],[$1]))])
- -
- - # Base flags
- - AX_APPEND_FLAG([$3],ax_warn_scannerflags_variable)
- -
- - AS_IF([test "$ax_enable_compile_warnings" != "no"],[
- - # "yes" flags
- - AX_APPEND_FLAG([ dnl
- - --warn-all dnl
- - $4 dnl
- - $5 dnl
- - $6 dnl
- - $7 dnl
- - ],ax_warn_scannerflags_variable)
- - ])
- - AS_IF([test "$ax_enable_compile_warnings" = "error"],[
- - # "error" flags
- - AX_APPEND_FLAG([ dnl
- - --warn-error dnl
- - ],ax_warn_scannerflags_variable)
- - ])
- -
- - # Substitute the variables
- - AC_SUBST(ax_warn_scannerflags_variable)
- -])dnl AX_COMPILER_FLAGS
- diff --git a/m4/ax_compiler_flags_ldflags.m4 b/m4/ax_compiler_flags_ldflags.m4
- deleted file mode 100644
- index 976d1198d..000000000
- --- a/m4/ax_compiler_flags_ldflags.m4
- +++ /dev/null
- @@ -1,111 +0,0 @@
- -# ==============================================================================
- -# https://www.gnu.org/software/autoconf-archive/ax_compiler_flags_ldflags.html
- -# ==============================================================================
- -#
- -# SYNOPSIS
- -#
- -# AX_COMPILER_FLAGS_LDFLAGS([VARIABLE], [IS-RELEASE], [EXTRA-BASE-FLAGS], [EXTRA-YES-FLAGS])
- -#
- -# DESCRIPTION
- -#
- -# Add warning flags for the linker to VARIABLE, which defaults to
- -# WARN_LDFLAGS. VARIABLE is AC_SUBST-ed by this macro, but must be
- -# manually added to the LDFLAGS variable for each target in the code base.
- -#
- -# This macro depends on the environment set up by AX_COMPILER_FLAGS.
- -# Specifically, it uses the value of $ax_enable_compile_warnings to decide
- -# which flags to enable.
- -#
- -# LICENSE
- -#
- -# Copyright (c) 2014, 2015 Philip Withnall <philip@tecnocode.co.uk>
- -# Copyright (c) 2017, 2018 Reini Urban <rurban@cpan.org>
- -#
- -# Copying and distribution of this file, with or without modification, are
- -# permitted in any medium without royalty provided the copyright notice
- -# and this notice are preserved. This file is offered as-is, without any
- -# warranty.
- -
- -#serial 9
- -
- -AC_DEFUN([AX_COMPILER_FLAGS_LDFLAGS],[
- - AX_REQUIRE_DEFINED([AX_APPEND_LINK_FLAGS])
- - AX_REQUIRE_DEFINED([AX_APPEND_FLAG])
- - AX_REQUIRE_DEFINED([AX_CHECK_COMPILE_FLAG])
- - AX_REQUIRE_DEFINED([AX_CHECK_LINK_FLAG])
- -
- - # Variable names
- - m4_define([ax_warn_ldflags_variable],
- - [m4_normalize(ifelse([$1],,[WARN_LDFLAGS],[$1]))])
- -
- - # Always pass -Werror=unknown-warning-option to get Clang to fail on bad
- - # flags, otherwise they are always appended to the warn_ldflags variable,
- - # and Clang warns on them for every compilation unit.
- - # If this is passed to GCC, it will explode, so the flag must be enabled
- - # conditionally.
- - AX_CHECK_COMPILE_FLAG([-Werror=unknown-warning-option],[
- - ax_compiler_flags_test="-Werror=unknown-warning-option"
- - ],[
- - ax_compiler_flags_test=""
- - ])
- -
- - AX_CHECK_LINK_FLAG([-Wl,--as-needed], [
- - AX_APPEND_LINK_FLAGS([-Wl,--as-needed],
- - [AM_LDFLAGS],[$ax_compiler_flags_test])
- - ])
- - AX_CHECK_LINK_FLAG([-Wl,-z,relro], [
- - AX_APPEND_LINK_FLAGS([-Wl,-z,relro],
- - [AM_LDFLAGS],[$ax_compiler_flags_test])
- - ])
- - AX_CHECK_LINK_FLAG([-Wl,-z,now], [
- - AX_APPEND_LINK_FLAGS([-Wl,-z,now],
- - [AM_LDFLAGS],[$ax_compiler_flags_test])
- - ])
- - AX_CHECK_LINK_FLAG([-Wl,-z,noexecstack], [
- - AX_APPEND_LINK_FLAGS([-Wl,-z,noexecstack],
- - [AM_LDFLAGS],[$ax_compiler_flags_test])
- - ])
- - # textonly, retpolineplt not yet
- -
- - # macOS and cygwin linker do not have --as-needed
- - AX_CHECK_LINK_FLAG([-Wl,--no-as-needed], [
- - ax_compiler_flags_as_needed_option="-Wl,--no-as-needed"
- - ], [
- - ax_compiler_flags_as_needed_option=""
- - ])
- -
- - # macOS linker speaks with a different accent
- - ax_compiler_flags_fatal_warnings_option=""
- - AX_CHECK_LINK_FLAG([-Wl,--fatal-warnings], [
- - ax_compiler_flags_fatal_warnings_option="-Wl,--fatal-warnings"
- - ])
- - AX_CHECK_LINK_FLAG([-Wl,-fatal_warnings], [
- - ax_compiler_flags_fatal_warnings_option="-Wl,-fatal_warnings"
- - ])
- -
- - # Base flags
- - AX_APPEND_LINK_FLAGS([ dnl
- - $ax_compiler_flags_as_needed_option dnl
- - $3 dnl
- - ],ax_warn_ldflags_variable,[$ax_compiler_flags_test])
- -
- - AS_IF([test "$ax_enable_compile_warnings" != "no"],[
- - # "yes" flags
- - AX_APPEND_LINK_FLAGS([$4 $5 $6 $7],
- - ax_warn_ldflags_variable,
- - [$ax_compiler_flags_test])
- - ])
- - AS_IF([test "$ax_enable_compile_warnings" = "error"],[
- - # "error" flags; -Werror has to be appended unconditionally because
- - # it's not possible to test for
- - #
- - # suggest-attribute=format is disabled because it gives too many false
- - # positives
- - AX_APPEND_LINK_FLAGS([ dnl
- - $ax_compiler_flags_fatal_warnings_option dnl
- - ],ax_warn_ldflags_variable,[$ax_compiler_flags_test])
- - ])
- -
- - # Substitute the variables
- - AC_SUBST(ax_warn_ldflags_variable)
- -])dnl AX_COMPILER_FLAGS
|