aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-09-10 11:02:13 -0700
committerZac Medico <zmedico@gentoo.org>2010-09-10 11:02:13 -0700
commit257e5b661ab7e71babbe8b70c1cdb31e8373ed12 (patch)
tree7c2120e3f6ef20d08a0cf14544b52451690e85f2 /bin/misc-functions.sh
parentRemove redundant local retval declaration in has_version(). (diff)
downloadportage-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.
Diffstat (limited to 'bin/misc-functions.sh')
-rwxr-xr-xbin/misc-functions.sh28
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