flag-o-matic.eclass: document assumptions and limitations of test-flag-PROG()
authorSergei Trofimovich <slyfox@gentoo.org>
Thu, 26 Mar 2020 08:22:50 +0000 (08:22 +0000)
committerSergei Trofimovich <slyfox@gentoo.org>
Thu, 26 Mar 2020 08:23:59 +0000 (08:23 +0000)
Bug: https://bugs.gentoo.org/712488
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
eclass/flag-o-matic.eclass

index 9ef9ac3685e00f48268e71f40812b42c72fd8faf..e76eef293e89618a1a3c1c7305da3288325315e8 100644 (file)
@@ -487,6 +487,17 @@ test-flag-PROG() {
 
        printf "%s\n" "${in_src}" > "${test_in}" || die "Failed to create '${test_in}'"
 
+       # Currently we rely on warning-free output of a compiler
+       # before the flag to see if a flag prduces any warnings.
+       # This has a few drawbacks:
+       # - if compiler already generates warnings we filter out
+       #   every single flag: bug #712488
+       # - if user actually wants to see warnings we just strip
+       #   them regardless of warnings type.
+       #
+       # We can add more selective detection of no-op flags via
+       # '-Werror=ignored-optimization-argument' and similar error options
+       # similar to what we are doing with '-Qunused-arguments'.
        local cmdline=(
                "${comp[@]}"
                # Clang will warn about unknown gcc flags but exit 0.