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.