])
AC_DEFUN(STEPMAKE_GXXCODEGENBUG, [
- AC_MSG_CHECKING([options for known g++ tail call bug])
+ AC_MSG_CHECKING([options for known g++ bugs])
case "$GXX:$CXX_VERSION" in
- yes:400600?)
- AC_MSG_RESULT([-fno-optimize-sibling-calls])
+ yes:400600[[0-2]])
+ AC_MSG_RESULT([-fno-optimize-sibling-calls (tail call bug)])
CXXFLAGS="$CXXFLAGS -fno-optimize-sibling-calls"
;;
+ yes:400700?)
+ AC_MSG_RESULT([-fno-tree-vrp (comparison bug)])
+ CXXFLAGS="$CXXFLAGS -fno-tree-vrp"
+ ;;
*) AC_MSG_RESULT([none])
esac
AC_SUBST(CXXFLAGS)
exit 2
fi
- for d in 2 3 4 ; do
+ abssrcdir="`cd $srcdir; pwd`"
+ absbuilddir="`pwd`"
+ for d in 2 3 4 5 ; do
for mf in `cd $srcdir ; find . -maxdepth $d -mindepth $d -name GNUmakefile`; do
- mkdir -p $(dirname $mf)
+ case "$abssrcdir" in
+ "$absbuilddir"/*)
+# source is below build directory, always copy
+ ;;
+ *)
+ case "$abssrcdir/${mf#./}" in
+ "$absbuilddir"/*)
+# find descended into build directory, don't copy
+ continue
+ esac
+ esac
+ mkdir -p ${mf%/*}
cat <<EOF | $PYTHON - > $mf
print 'depth=' + ('../' * ( $d-1 ) )
print 'include \$(depth)/config\$(if \$(conf),-\$(conf),).make'
EOF
done
for mf in `cd $srcdir ; find . -maxdepth $d -mindepth $d -name '*.make' | grep -v config.make `; do
- mkdir -p $(dirname $mf)
+ case "$abssrcdir" in
+ "$absbuilddir"/*)
+# source is below build directory, always copy
+ ;;
+ *)
+ case "$abssrcdir/${mf#./}" in
+ "$absbuilddir"/*)
+# find descended into build directory, don't copy
+ continue
+ esac
+ esac
+ mkdir -p ${mf%/*}
cat <<EOF | $PYTHON - > $mf
print 'include \$(depth)/config\$(if \$(conf),-\$(conf),).make'
print 'include \$(configure-srcdir)/$mf'
# Clean out junk: http://bugs.python.org/issue3290
# Python headers may need some -f* flags, leave them in.
# We want the sed commands to look like 's/-[WDOm][[:alnum:][:punct:]][[:alnum:][:punct:]]*//g' and 's/-arch [^[:space:]]*//g', but automake eats brackets.
- PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags | sed -e 's/-[[WDOm]][[[:alnum:][:punct:]]][[[:alnum:][:punct:]]]*//g' | sed -e 's/-arch @<:@^@<:@:space:@:>@@:>@*//g'`
+ #PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags | sed -e 's/-[[WDOm]][[[:alnum:][:punct:]]][[[:alnum:][:punct:]]]*//g' | sed -e 's/-arch @<:@^@<:@:space:@:>@@:>@*//g'`
+ # The above sed BRE matches parts of legal options, stipping down part of that option, resulting in invalid gcc arguments. Gentoo Bug #415793
+ # For instance, '-floop-stip-mime' becomes '-floop-strip', and '-fvect-cost-model' becomes '-fvect-cost'.
+ # Tentative fix to require a non alphanumeric character before the initial hyphen of the BRE or the hyphen being the first character in the string.
+ PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags | sed -e 's/\(^\|[[^[:alnum:]]]\)-[[WDOm]][[[:alnum:][:punct:]]][[[:alnum:][:punct:]]]*//g' | sed -e 's/-arch @<:@^@<:@:space:@:>@@:>@*//g'`
PYTHON_LDFLAGS=`$PYTHON_CONFIG --ldflags`
fi