aboutsummaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2008-10-14 14:19:34 +0000
committerYang Tse <yangsita@gmail.com>2008-10-14 14:19:34 +0000
commitfde4b823f161ecec52423b7a79e380db915bfbb3 (patch)
tree33a4d9101f816a43fd1c7123a1da8194da2d3bfb /m4
parentb7e71a249edf3c3215413ed75269d27f86a9e5a5 (diff)
Adjust GCC warnings:
Better disable following warnings when cross-compiling with a gcc older than 3.0, to avoid warnings from third party system headers: -Wmissing-declarations -Wmissing-prototypes -Wunused -Wshadow
Diffstat (limited to 'm4')
-rw-r--r--m4/curl-compilers.m492
1 files changed, 61 insertions, 31 deletions
diff --git a/m4/curl-compilers.m4 b/m4/curl-compilers.m4
index 52f30b122..9232f4ca4 100644
--- a/m4/curl-compilers.m4
+++ b/m4/curl-compilers.m4
@@ -22,7 +22,7 @@
#***************************************************************************
# File version for 'aclocal' use. Keep it a single number.
-# serial 28
+# serial 31
dnl CURL_CHECK_COMPILER
@@ -793,65 +793,95 @@ AC_DEFUN([CURL_SET_COMPILER_WARNING_OPTS], [
GNU_C)
#
if test "$want_warnings" = "yes"; then
+ #
dnl Do not enable -pedantic when cross-compiling with a gcc older
dnl than 3.0, to avoid warnings from third party system headers.
if test "x$cross_compiling" != "xyes" ||
test "$compiler_num" -ge "300"; then
tmp_CFLAGS="$tmp_CFLAGS -pedantic"
fi
+ #
dnl Set of options we believe *ALL* gcc versions support:
- tmp_CFLAGS="$tmp_CFLAGS -Wall -W -Winline -Wnested-externs"
- tmp_CFLAGS="$tmp_CFLAGS -Wpointer-arith -Wwrite-strings"
- dnl -Wcast-align is a bit too annoying on all gcc versions ;-)
- dnl Do not enable some warnings, when cross-compiling with a gcc
- dnl older than 3.0, triggered on third party system headers.
- if test "x$cross_compiling" != "xyes" ||
- test "$compiler_num" -ge "300"; then
- tmp_CFLAGS="$tmp_CFLAGS -Wmissing-prototypes"
+ tmp_CFLAGS="$tmp_CFLAGS -Wall -W"
+ #
+ dnl Only gcc 1.4 or later
+ if test "$compiler_num" -ge "104"; then
+ tmp_CFLAGS="$tmp_CFLAGS -Wpointer-arith -Wwrite-strings"
+ dnl If not cross-compiling with a gcc older than 3.0
+ if test "x$cross_compiling" != "xyes" ||
+ test "$compiler_num" -ge "300"; then
+ tmp_CFLAGS="$tmp_CFLAGS -Wunused -Wshadow"
+ fi
fi
+ #
+ dnl Only gcc 2.7 or later
if test "$compiler_num" -ge "207"; then
- dnl gcc 2.7 or later
- tmp_CFLAGS="$tmp_CFLAGS -Wmissing-declarations"
+ tmp_CFLAGS="$tmp_CFLAGS -Winline -Wnested-externs"
+ dnl If not cross-compiling with a gcc older than 3.0
+ if test "x$cross_compiling" != "xyes" ||
+ test "$compiler_num" -ge "300"; then
+ tmp_CFLAGS="$tmp_CFLAGS -Wmissing-declarations"
+ tmp_CFLAGS="$tmp_CFLAGS -Wmissing-prototypes"
+ fi
fi
- if test "$compiler_num" -gt "295"; then
- dnl only if the compiler is newer than 2.95 since we got lots of
- dnl "`_POSIX_C_SOURCE' is not defined" in system headers with
- dnl gcc 2.95.4 on FreeBSD 4.9!
- tmp_CFLAGS="$tmp_CFLAGS -Wno-long-long -Wno-multichar -Wshadow"
- tmp_CFLAGS="$tmp_CFLAGS -Wsign-compare -Wundef"
+ #
+ dnl Only gcc 2.95 or later
+ if test "$compiler_num" -ge "295"; then
+ tmp_CFLAGS="$tmp_CFLAGS -Wno-long-long"
fi
+ #
+ dnl Only gcc 2.96 or later
if test "$compiler_num" -ge "296"; then
- dnl gcc 2.96 or later
tmp_CFLAGS="$tmp_CFLAGS -Wfloat-equal"
+ tmp_CFLAGS="$tmp_CFLAGS -Wno-multichar -Wsign-compare"
+ dnl -Wundef used only if gcc is 2.96 or later since we get
+ dnl lots of "`_POSIX_C_SOURCE' is not defined" in system
+ dnl headers with gcc 2.95.4 on FreeBSD 4.9
+ tmp_CFLAGS="$tmp_CFLAGS -Wundef"
fi
- if test "$compiler_num" -gt "296"; then
- dnl this option does not exist in 2.96
+ #
+ dnl Only gcc 2.97 or later
+ if test "$compiler_num" -ge "297"; then
tmp_CFLAGS="$tmp_CFLAGS -Wno-format-nonliteral"
fi
- dnl -Wunreachable-code seems totally unreliable on my gcc 3.3.2 on
- dnl on i686-Linux as it gives us heaps with false positives.
- dnl Also, on gcc 4.0.X it is totally unbearable and complains all
- dnl over making it unusable for generic purposes. Let's not use it.
+ #
+ dnl Only gcc 3.0 or later
+ if test "$compiler_num" -ge "300"; then
+ dnl -Wunreachable-code seems totally unreliable on my gcc 3.3.2 on
+ dnl on i686-Linux as it gives us heaps with false positives.
+ dnl Also, on gcc 4.0.X it is totally unbearable and complains all
+ dnl over making it unusable for generic purposes. Let's not use it.
+ tmp_CFLAGS="$tmp_CFLAGS"
+ fi
+ #
+ dnl Only gcc 3.3 or later
if test "$compiler_num" -ge "303"; then
- dnl gcc 3.3 and later
tmp_CFLAGS="$tmp_CFLAGS -Wendif-labels -Wstrict-prototypes"
fi
+ #
+ dnl Only gcc 3.4 or later
if test "$compiler_num" -ge "304"; then
- dnl gcc 3.4 and later
tmp_CFLAGS="$tmp_CFLAGS -Wdeclaration-after-statement"
fi
+ #
fi
#
dnl Do not issue warnings for code in system include paths.
if test "$compiler_num" -ge "300"; then
- dnl gcc 3.0 and later
tmp_CFLAGS="$tmp_CFLAGS -Wno-system-headers"
else
- dnl Disable some warnings, when cross-compiling with a gcc
- dnl older than 3.0, triggered on third party system headers.
+ dnl When cross-compiling with a gcc older than 3.0, disable
+ dnl some warnings triggered on third party system headers.
if test "x$cross_compiling" = "xyes"; then
- tmp_CFLAGS="$tmp_CFLAGS -Wno-missing-prototypes"
- tmp_CFLAGS="$tmp_CFLAGS -Wno-unused -Wno-shadow"
+ if test "$compiler_num" -ge "104"; then
+ dnl gcc 1.4 or later
+ tmp_CFLAGS="$tmp_CFLAGS -Wno-unused -Wno-shadow"
+ fi
+ if test "$compiler_num" -ge "207"; then
+ dnl gcc 2.7 or later
+ tmp_CFLAGS="$tmp_CFLAGS -Wno-missing-declarations"
+ tmp_CFLAGS="$tmp_CFLAGS -Wno-missing-prototypes"
+ fi
fi
fi
;;