target=
targets=
configure="./configure"
-debug="-ggdb2"
-ldflags="-lmcheck"
+# >=4.7 has small macros section.
+if gcc --version|perl -ne 'exit(!(/(\d+)\.(\d+)/&&($1>4||($1==4&&$2>=7))));';then
+ debug="-g3"
+else
+ debug="-g2"
+fi
+mcheck="-lmcheck"
fast=false
readline=""
if [ "$1" = "-s" ];then
# -O0 is important to override GCC -O2.
debug="-O0 -s"
- #ldflags=""
+ shift
+ continue
+ fi
+
+ if [ "$1" = "--nomcheck" ];then
+ mcheck=""
shift
continue
fi
test -z "$CC" && CC=gcc
: >errs1.c
+ # -Wp,-D_FORTIFY_SOURCE=2: /usr/include/features.h:329:3: error: #warning _FORTIFY_SOURCE requested but disabled [-Werror=cpp]
for flags in \
- "$debug -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4" \
- "$debug -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions" \
+ "$debug -pipe -Wall -fexceptions -fstack-protector --param=ssp-buffer-size=4" \
+ "$debug -pipe -Wall -fexceptions" \
"" \
;do
if [ -z "$flags" ];then
echo >&2 "flags error"
exit 1
fi
- "$CC" $flags -c errs1.c -o /dev/null && break
+ # Use -Werror:
+ # cc1: warnings being treated as errors
+ # archive.c:1: error: -fstack-protector not supported for this target
+ "$CC" $flags -Werror -c errs1.c -o /dev/null && break
done
if test -n "$customm" && "$CC" $customm -c errs1.c -o /dev/null;then
flags="$customm $flags"
export GCJFLAGS="$flags"
export CFLAGS_FOR_TARGET="$flags"
export CXXFLAGS_FOR_TARGET="$flags"
- export LDFLAGS="$ldflags"
+ export LDFLAGS="$mcheck"
time nice "$configure" $target $targets $customss $readline --enable-debug --disable-sim --enable-gold --enable-plugins $maintainer $werror --with-separate-debug-dir=/usr/lib/debug "$@"