diff options
author | Michał Górny <mgorny@gentoo.org> | 2017-07-01 18:14:44 +0200 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2017-08-08 21:42:17 +0200 |
commit | 0e6d20439e89c82fa99bbaefbe2a728efc77631c (patch) | |
tree | 3d1d475d8d0400c7f80186eb81deb7dd86b53c47 /eclass | |
parent | eclass/tests: Fix inheriting multiple eclasses (diff) | |
download | gentoo-0e6d20439e89c82fa99bbaefbe2a728efc77631c.tar.gz gentoo-0e6d20439e89c82fa99bbaefbe2a728efc77631c.tar.bz2 gentoo-0e6d20439e89c82fa99bbaefbe2a728efc77631c.zip |
flag-o-matic.eclass: Strip LDFLAGS unsupported by the C compiler, #621274
Include LDFLAGS in the variables stripped by strip-unsupported-flags.
The code reuses the current functions for testing CC, and so only remove
LDFLAGS that are rejected by the C compiler and not the linker. This
solves the case of bug #621274 where LDFLAGS contained GCC-specific
-flto flag.
Diffstat (limited to 'eclass')
-rw-r--r-- | eclass/flag-o-matic.eclass | 3 | ||||
-rwxr-xr-x | eclass/tests/flag-o-matic.sh | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/eclass/flag-o-matic.eclass b/eclass/flag-o-matic.eclass index b2f3742b3ecf..4ef32c519f22 100644 --- a/eclass/flag-o-matic.eclass +++ b/eclass/flag-o-matic.eclass @@ -535,6 +535,9 @@ strip-unsupported-flags() { export CXXFLAGS=$(test-flags-CXX ${CXXFLAGS}) export FFLAGS=$(test-flags-F77 ${FFLAGS}) export FCFLAGS=$(test-flags-FC ${FCFLAGS}) + # note: this does not verify the linker flags but it is enough + # to strip invalid C flags which are much more likely, #621274 + export LDFLAGS=$(test-flags-CC ${LDFLAGS}) } # @FUNCTION: get-flag diff --git a/eclass/tests/flag-o-matic.sh b/eclass/tests/flag-o-matic.sh index 92c68b82c3c9..24f2a4c4af4e 100755 --- a/eclass/tests/flag-o-matic.sh +++ b/eclass/tests/flag-o-matic.sh @@ -55,7 +55,7 @@ done <<<" tbegin "strip-unsupported-flags" strip-unsupported-flags -[[ ${CFLAGS} == "" ]] && [[ ${CXXFLAGS} == "-z=2" ]] +[[ ${CFLAGS} == "" ]] && [[ ${CXXFLAGS} == "-z=2" ]] && [[ ${LDFLAGS} == "" ]] ftend for var in $(all-flag-vars) ; do |