configure: Use per-language unknown-warnings-flags

E.g. when CC is clang, the unknown warnings flags
are -Werror=unused-command-line-argument and
-Werror=unknown-warning-option. These flags are currently
also used for testing the C++ and ObjC compilers, yet
g++ does not recognize these flags and errors out because
of them, so that the tests fail and the parentheses,
switch etc. warnings are not disabled for C++.

Fix this by using per-language flags.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Andreas Rheinhardt
2026-01-05 21:31:28 +01:00
parent 51349e31fc
commit 05098eef42

18
configure vendored
View File

@@ -7822,6 +7822,13 @@ fi
enabled debug && add_allcflags -g"$debuglevel" && add_asflags -g"$debuglevel"
for lang in c cxx objc; do
test_${lang}flags -Werror=unused-command-line-argument &&
append unknown_warning_${lang}flags "-Werror=unused-command-line-argument"
test_${lang}flags -Werror=unknown-warning-option &&
append unknown_warning_${lang}flags "-Werror=unknown-warning-option"
done
# add some useful compiler flags if supported
check_allcflags -Wall
check_allcflags -Wdisabled-optimization
@@ -7842,16 +7849,11 @@ fi
check_disable_warning(){
warning_flag=-W${1#-Wno-}
test_cflags $unknown_warning_flags $warning_flag && add_cflags $1
test_cxxflags -Werror $unknown_warning_flags $warning_flag && add_cxxflags $1
test_objcflags $unknown_warning_flags $warning_flag && add_objcflags $1
test_cflags $unknown_warning_cflags $warning_flag && add_cflags $1
test_cxxflags -Werror $unknown_warning_cxxflags $warning_flag && add_cxxflags $1
test_objcflags $unknown_warning_objcflags $warning_flag && add_objcflags $1
}
test_cflags -Werror=unused-command-line-argument &&
append unknown_warning_flags "-Werror=unused-command-line-argument"
test_cflags -Werror=unknown-warning-option &&
append unknown_warning_flags "-Werror=unknown-warning-option"
check_disable_warning -Wno-parentheses
check_disable_warning -Wno-switch
check_disable_warning -Wno-format-zero-length