summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2017-07-01 18:14:44 +0200
committerMichał Górny <mgorny@gentoo.org>2017-08-08 21:42:17 +0200
commit0e6d20439e89c82fa99bbaefbe2a728efc77631c (patch)
tree3d1d475d8d0400c7f80186eb81deb7dd86b53c47 /eclass
parenteclass/tests: Fix inheriting multiple eclasses (diff)
downloadgentoo-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.eclass3
-rwxr-xr-xeclass/tests/flag-o-matic.sh2
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