diff options
author | Zac Medico <zmedico@gentoo.org> | 2010-09-10 11:02:13 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2010-09-10 11:02:13 -0700 |
commit | 257e5b661ab7e71babbe8b70c1cdb31e8373ed12 (patch) | |
tree | 7c2120e3f6ef20d08a0cf14544b52451690e85f2 | |
parent | d49ecfb70a4dc01e8abb52ec48cc90ee6c816ace (diff) | |
download | portage-257e5b661ab7e71babbe8b70c1cdb31e8373ed12.tar.gz portage-257e5b661ab7e71babbe8b70c1cdb31e8373ed12.tar.bz2 portage-257e5b661ab7e71babbe8b70c1cdb31e8373ed12.zip |
Make the "always overflow" gcc warning code use a separate variable
from the "implicit pointer" code in install_qa_check(), so they
don't interfere.
-rwxr-xr-x | bin/misc-functions.sh | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/bin/misc-functions.sh b/bin/misc-functions.sh index 41de0fb94..f048b70d8 100755 --- a/bin/misc-functions.sh +++ b/bin/misc-functions.sh @@ -517,7 +517,7 @@ install_qa_check() { fi # Verify that the libtool files don't contain bogus $D entries. - local abort=no gentoo_bug=no + local abort=no gentoo_bug=no always_overflow=no for a in "${D}"usr/lib*/*.la ; do s=${a##*/} if grep -qs "${D}" "${a}" ; then @@ -584,15 +584,27 @@ install_qa_check() { # force C locale to work around slow unicode locales #160234 f=$(LC_ALL=C $grep_cmd "${m}" "${PORTAGE_LOG_FILE}") if [[ -n ${f} ]] ; then - vecho -ne '\n' - eqawarn "QA Notice: Package has poor programming practices which may compile" - eqawarn " fine but exhibit random runtime failures." - eqawarn "${f}" - vecho -ne '\n' abort="yes" case "$m" in - ": warning: call to .* will always overflow destination buffer$") gentoo_bug=yes ;; + ": warning: call to .* will always overflow destination buffer$") always_overflow=yes ;; esac + if [[ $always_overflow = yes ]] ; then + eerror + eerror "QA Notice: Package has poor programming practices which may compile" + eerror " but will almost certainly crash on 64bit architectures." + eerror + eerror "${f}" + eerror + eerror " Please file a bug about this at http://bugs.gentoo.org/" + eerror " with the maintaining herd of the package." + eerror + else + vecho -ne '\n' + eqawarn "QA Notice: Package has poor programming practices which may compile" + eqawarn " fine but exhibit random runtime failures." + eqawarn "${f}" + vecho -ne '\n' + fi fi done local cat_cmd=cat @@ -633,7 +645,7 @@ install_qa_check() { fi if [[ ${abort} == "yes" ]] ; then - if [[ ${gentoo_bug} == "yes" ]] ; then + if [[ $gentoo_bug = yes || $always_overflow = yes ]] ; then die "install aborted due to" \ "poor programming practices shown above" else |