Duplicated const specifiers are allowed by C99 and can easily
happen in macros. Also, systemd's interal code will use them.
Disable this warning, it doesn't seem useful.
Otherwise the check is effectively a no-op and unknown options still get
turned on. This results in unknown warnings when build without
--with-extra-warnings=error:
warning: unknown warning option '-Wno-unused-but-set-variable'; did you mean '-Wno-unused-const-variable'? [-Wunknown-warning-option]
It seems like a poor default for various downstream toolchains. We can't
anticipate the compiler warnings for future compiler versions and older
ones are prone to false positives. Also, older gdbus-codegen is known
to generate code that triggers compiler warnings.
Let's keep it enabled for maintainer builds and distcheck so that we're
sure a tool chain that builds releases without warnings exists.
Since GCC 4.4, gcc does not warn about unknown -Wno-* flags. At
least, it does not warning unless another warning is raised as well
(https://gcc.gnu.org/wiki/FAQ#wnowarning).
We didn't notice up to now, because we only tested flags that GCC
actually supports.
Hack around this, by checking for the -W* counterpart instead.
We must also remove -Waggregate-return from m4/compiler-warnings.m4 because systemd
uses aggregate return (correctly) in a couple cases, and we cannot keep single-level
makefiles and override aggregate-return only for the systemd sub-library.
This client currently only supports DHCPv4 because the base systemd code
does not yet fully support DHCPv6.
The warning -Wstrict-prototypes was disabled by commit
db9b1df0e4 .
Enable it again, but avoid warnings for WiMax SDK by explicitly disabling the
compiler warning where needed.
Apparently clang does not produce a warning for -Wstrict-prototypes,
hence we don't need a clang specific #pragma.
Signed-off-by: Thomas Haller <thaller@redhat.com>
NM_COMPILER_WARNINGS still works the same, but
rename variables to have a CFLAGS_* prefix.
Also cleanup the construction of CFLAGS by appending
to CFLAGS_MORE_WARNINGS variable instead of appending
to CFLAGS, and resetting to SAVE_CFLAGS.
Signed-off-by: Thomas Haller <thaller@redhat.com>
clang does not exit with error when it is called with an
unrecognized (warning) option. Instead it just prints
a warning that makes the configure script believe the
warning is supported. Later, during build we might pass
-Werror, which causes clang to fail due to unrecognized
arguments.
Fix the script to detect compiler warnings by passing
'-Werror=unknown-warning-option', which lets clang fail too.
Signed-off-by: Thomas Haller <thaller@redhat.com>
First, -Wstrict-prototypes wasn't actually getting used because
-Werror was already in CFLAGS and AC_TRY_COMPILE doesn't produce
main() functions with valid strict prototypes. Suck. But even
fixing that, the WiMAX SDK won't build with the flag, so just rip
it out.