From 7a76b6948fec038fced0aa7395764156f545f425 Mon Sep 17 00:00:00 2001 From: Yang Tse Date: Wed, 7 Feb 2007 15:15:15 +0000 Subject: [PATCH] *) Remove duplicate declaration of TYPE_SOCKADDR_STORAGE *) Update CURL_CC_DEBUG_OPTS from curl's script --- acinclude.m4 | 147 ++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 81 insertions(+), 66 deletions(-) diff --git a/acinclude.m4 b/acinclude.m4 index 7cfaec4..5c9132a 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -1197,43 +1197,6 @@ dnl end of non-blocking try-compile test ]) -dnl TYPE_SOCKADDR_STORAGE -dnl ------------------------------------------------- -dnl Check for struct sockaddr_storage. Most IPv6-enabled hosts have it, but -dnl AIX 4.3 is one known exception. -AC_DEFUN([TYPE_SOCKADDR_STORAGE], -[ - AC_CHECK_TYPE([struct sockaddr_storage], - AC_DEFINE(HAVE_STRUCT_SOCKADDR_STORAGE, 1, - [if struct sockaddr_storage is defined]), , - [ -#undef inline -#ifdef HAVE_WINDOWS_H -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#ifdef HAVE_WINSOCK2_H -#include -#endif -#else -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_NETINET_IN_H -#include -#endif -#ifdef HAVE_ARPA_INET_H -#include -#endif -#endif - ]) -]) - - dnl TYPE_IN_ADDR_T dnl ------------------------------------------------- dnl Check for in_addr_t: it is used to receive the return code of inet_addr() @@ -1316,12 +1279,39 @@ AC_DEFUN([TYPE_IN_ADDR_T], #ifdef HAVE_ARPA_INET_H #include #endif - #endif ]) dnl AC_CHECK_TYPE ]) dnl AC_DEFUN +dnl ********************************************************************** +dnl CURL_DETECT_ICC ([ACTION-IF-YES]) +dnl +dnl check if this is the Intel ICC compiler, and if so run the ACTION-IF-YES +dnl sets the $ICC variable to "yes" or "no" +dnl ********************************************************************** +AC_DEFUN([CURL_DETECT_ICC], +[ + ICC="no" + AC_MSG_CHECKING([for icc in use]) + if test "$GCC" = "yes"; then + dnl check if this is icc acting as gcc in disguise + AC_EGREP_CPP([^__INTEL_COMPILER], [__INTEL_COMPILER], + dnl action if the text is found, this it has not been replaced by the + dnl cpp + ICC="no", + dnl the text was not found, it was replaced by the cpp + ICC="yes" + AC_MSG_RESULT([yes]) + [$1] + ) + fi + if test "$ICC" = "no"; then + # this is not ICC + AC_MSG_RESULT([no]) + fi +]) + dnl We create a function for detecting which compiler we use and then set as dnl pendantic compiler options as possible for that particular compiler. The dnl options are only used for debug-builds. @@ -1332,6 +1322,10 @@ dnl is changed. AC_DEFUN([CURL_CC_DEBUG_OPTS], [ + if test "z$ICC" = "z"; then + CURL_DETECT_ICC + fi + if test "$GCC" = "yes"; then dnl figure out gcc version! @@ -1342,58 +1336,73 @@ AC_DEFUN([CURL_CC_DEBUG_OPTS], gccnum=`(expr $num1 "*" 100 + $num2) 2>/dev/null` AC_MSG_RESULT($gccver) - AC_MSG_CHECKING([if this is icc in disguise]) - AC_EGREP_CPP([^__INTEL_COMPILER], [__INTEL_COMPILER], - dnl action if the text is found, this it has not been replaced by the - dnl cpp - ICC="no" - AC_MSG_RESULT([no]), - dnl the text was not found, it was replaced by the cpp - ICC="yes" - AC_MSG_RESULT([yes]) - ) - if test "$ICC" = "yes"; then dnl this is icc, not gcc. dnl ICC warnings we ignore: - dnl * 279 warns on static conditions in while expressions dnl * 269 warns on our "%Od" printf formatters for curl_off_t output: dnl "invalid format string conversion" + dnl * 279 warns on static conditions in while expressions + dnl * 981 warns on "operands are evaluated in unspecified order" + dnl * 1418 "external definition with no prior declaration" + dnl * 1419 warns on "external declaration in primary source file" + dnl which we know and do on purpose. - WARN="-wd279,269" + WARN="-wd279,269,981,1418,1419" if test "$gccnum" -gt "600"; then dnl icc 6.0 and older doesn't have the -Wall flag WARN="-Wall $WARN" fi else dnl $ICC = yes - dnl - WARN="-W -Wall -Wwrite-strings -pedantic -Wno-long-long -Wundef -Wpointer-arith -Wnested-externs -Winline -Wmissing-declarations -Wmissing-prototypes -Wsign-compare" + dnl this is a set of options we believe *ALL* gcc versions support: + WARN="-W -Wall -Wwrite-strings -pedantic -Wpointer-arith -Wnested-externs -Winline -Wmissing-prototypes" - dnl -Wcast-align is a bit too annoying ;-) + dnl -Wcast-align is a bit too annoying on all gcc versions ;-) + + if test "$gccnum" -ge "207"; then + dnl gcc 2.7 or later + WARN="$WARN -Wmissing-declarations" + fi + + if test "$gccnum" -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! + WARN="$WARN -Wundef -Wno-long-long -Wsign-compare" + fi if test "$gccnum" -ge "296"; then dnl gcc 2.96 or later WARN="$WARN -Wfloat-equal" + fi - if test "$gccnum" -gt "296"; then - dnl this option does not exist in 2.96 - WARN="$WARN -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 - if test "$gccnum" -ge "303"; then - dnl gcc 3.3 and later - WARN="$WARN -Wendif-labels -Wstrict-prototypes" - fi + if test "$gccnum" -gt "296"; then + dnl this option does not exist in 2.96 + WARN="$WARN -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. + + if test "$gccnum" -ge "303"; then + dnl gcc 3.3 and later + WARN="$WARN -Wendif-labels -Wstrict-prototypes" + fi + + if test "$gccnum" -ge "304"; then + # try these on gcc 3.4 + WARN="$WARN -Wdeclaration-after-statement" fi for flag in $CPPFLAGS; do case "$flag" in -I*) - dnl include path + dnl Include path, provide a -isystem option for the same dir + dnl to prevent warnings in those dirs. The -isystem was not very + dnl reliable on earlier gcc versions. add=`echo $flag | sed 's/^-I/-isystem /g'` WARN="$WARN $add" ;; @@ -1404,6 +1413,12 @@ AC_DEFUN([CURL_CC_DEBUG_OPTS], CFLAGS="$CFLAGS $WARN" + AC_MSG_NOTICE([Added this set of compiler options: $WARN]) + + else dnl $GCC = yes + + AC_MSG_NOTICE([Added no extra compiler options]) + fi dnl $GCC = yes dnl strip off optimizer flags -- 2.7.4