]> git.saurik.com Git - wxWidgets.git/commitdiff
try to determine the correct SOCKLEN_T value harder
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 11 Jun 2003 10:48:43 +0000 (10:48 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 11 Jun 2003 10:48:43 +0000 (10:48 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21030 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

configure.in

index 2cc624f0f959c9c4d77d8672104008f70db24ac4..6745d2c4f8bb854f4d4c7493d428fbfc0e36c141 100644 (file)
@@ -4491,9 +4491,6 @@ if test "$wxUSE_SOCKETS" = "yes" ; then
         AC_CACHE_CHECK([what is the type of the third argument of getsockname],
                        wx_cv_type_getsockname3,
             [
-                AC_LANG_SAVE
-                AC_LANG_CPLUSPLUS
-
                 AC_TRY_COMPILE(
                     [
                         #include <sys/types.h>
@@ -4504,32 +4501,45 @@ if test "$wxUSE_SOCKETS" = "yes" ; then
                         getsockname(0, 0, &len);
                     ],
                     wx_cv_type_getsockname3=socklen_t,
-                    AC_TRY_COMPILE(
-                        [
-                            #include <sys/types.h>
-                            #include <sys/socket.h>
-                        ],
-                        [
-                            size_t len;
-                            getsockname(0, 0, &len);
-                        ],
-                        wx_cv_type_getsockname3=size_t,
+                    [
+                        dnl the compiler will compile the version with size_t
+                        dnl even if the real type of the last parameter is int
+                        dnl but it should give at least a warning about
+                        dnl converting between incompatible pointer types, so
+                        dnl try to use it to get the correct behaviour at
+                        dnl least with gcc (otherwise we'd always use size_t)
+                        CFLAGS_OLD="$CFLAGS"
+                        if test "$GCC" = yes ; then
+                            CFLAGS="$CFLAGS -Werror"
+                        fi
+
                         AC_TRY_COMPILE(
                             [
                                 #include <sys/types.h>
                                 #include <sys/socket.h>
                             ],
                             [
-                                int len;
+                                size_t len;
                                 getsockname(0, 0, &len);
                             ],
-                            wx_cv_type_getsockname3=int,
-                            wx_cv_type_getsockname3=unknown
+                            wx_cv_type_getsockname3=size_t,
+                            AC_TRY_COMPILE(
+                                [
+                                    #include <sys/types.h>
+                                    #include <sys/socket.h>
+                                ],
+                                [
+                                    int len;
+                                    getsockname(0, 0, &len);
+                                ],
+                                wx_cv_type_getsockname3=int,
+                                wx_cv_type_getsockname3=unknown
+                            )
                         )
-                    )
-                )
 
-                AC_LANG_RESTORE
+                        CFLAGS="$CFLAGS_OLD"
+                    ]
+                )
             ])
 
         if test "$wx_cv_type_getsockname3" = "unknown"; then