From: Sergei Trofimovich Date: Sun, 23 Jun 2019 08:45:11 +0000 (+0100) Subject: flag-o-matic.eclass: filter out '-B/foo' and '-B /foo' equally X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=82b182fb344a841fccb2b599fc4ea0d5c4ab254f;p=gentoo.git flag-o-matic.eclass: filter out '-B/foo' and '-B /foo' equally In bug #687198 Julian noticed that strip-unsupported-flags() filters out '-B' but not '/foo' in CFLAGS='-B /foo' and causes breakage. This change still does not allow -B flag but at least filters out both '-B' and it's parameter. Reported-by: Julian Cléaud Bug: https://bugs.gentoo.org/687198 Signed-off-by: Sergei Trofimovich --- diff --git a/eclass/flag-o-matic.eclass b/eclass/flag-o-matic.eclass index 933104190ae3..3b32bd9d6319 100644 --- a/eclass/flag-o-matic.eclass +++ b/eclass/flag-o-matic.eclass @@ -496,7 +496,8 @@ test-flags-PROG() { while (( $# )); do case "$1" in - --param) + # '-B /foo': bug # 687198 + --param|-B) if test-flag-${comp} "$1" "$2"; then flags+=( "$1" "$2" ) fi diff --git a/eclass/tests/flag-o-matic.sh b/eclass/tests/flag-o-matic.sh index 97cd71d710a2..691b052c3d43 100755 --- a/eclass/tests/flag-o-matic.sh +++ b/eclass/tests/flag-o-matic.sh @@ -58,6 +58,22 @@ strip-unsupported-flags [[ ${CFLAGS} == "--param l1-cache-size=32" ]] && [[ ${CXXFLAGS} == "-z=2" ]] && [[ ${LDFLAGS} == "" ]] ftend +CFLAGS="-O2 -B/foo -O1" +CXXFLAGS="-O2 -B/foo -O1" +LDFLAGS="-O2 -B/foo -O1" +tbegin "strip-unsupported-flags for '-B/foo'" +strip-unsupported-flags +[[ ${CFLAGS} == "-O2 -O1" ]] && [[ ${CXXFLAGS} == "-O2 -O1" ]] && [[ ${LDFLAGS} == "" ]] +ftend + +CFLAGS="-O2 -B /foo -O1" +CXXFLAGS="-O2 -B /foo -O1" +LDFLAGS="-O2 -B /foo -O1" +tbegin "strip-unsupported-flags for '-B /foo'" +strip-unsupported-flags +[[ ${CFLAGS} == "-O2 -O1" ]] && [[ ${CXXFLAGS} == "-O2 -O1" ]] && [[ ${LDFLAGS} == "" ]] +ftend + for var in $(all-flag-vars) ; do eval ${var}=\"-filter -filter-glob -foo-${var%FLAGS}\" done