summaryrefslogtreecommitdiff
path: root/acinclude.m4
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2007-02-07 15:15:15 +0000
committerYang Tse <yangsita@gmail.com>2007-02-07 15:15:15 +0000
commit7a76b6948fec038fced0aa7395764156f545f425 (patch)
tree868ee8ae3f13a35832d80d19e5a60efe3304ea59 /acinclude.m4
parentf5055ad5ae8442fa33b5fbb94eec1585ecac33ad (diff)
downloadc-ares-7a76b6948fec038fced0aa7395764156f545f425.tar.gz
c-ares-7a76b6948fec038fced0aa7395764156f545f425.tar.bz2
c-ares-7a76b6948fec038fced0aa7395764156f545f425.zip
*) Remove duplicate declaration of TYPE_SOCKADDR_STORAGE
*) Update CURL_CC_DEBUG_OPTS from curl's script
Diffstat (limited to 'acinclude.m4')
-rw-r--r--acinclude.m4147
1 files 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 <windows.h>
-#ifdef HAVE_WINSOCK2_H
-#include <winsock2.h>
-#endif
-#else
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#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 <arpa/inet.h>
#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