diff configure.ac @ 1088:f2a3570b5110

Test struct existance against sizeof() operator Instead of declaring an "unused-variable" or "unused-but-set-variable" structure. This avoid unexpected broken configurations when using something like: $ ./configure CFLAGS="-Wall -Wextra -Werror" It causes AC_COMPILE_IFELSE to fail and thus leading to a mismatch configuration (because the CFLAGS are passed to the macro).
author Gaël PORTAY <gael.portay@gmail.com>
date Sat, 02 May 2015 13:33:34 +0200
parents ca71904cf3ee
children ef67b57fe438
line wrap: on
line diff
--- a/configure.ac	Sat May 02 22:59:55 2015 +0800
+++ b/configure.ac	Sat May 02 13:33:34 2015 +0200
@@ -265,7 +265,7 @@
 #include <sys/types.h>
 #include <sys/socket.h>
 		]],
-		[[ struct sockaddr_storage s; ]])],
+		[[ if (sizeof(struct sockaddr_storage)) return 0 ]])],
 		[ ac_cv_have_struct_sockaddr_storage="yes" ],
 		[ ac_cv_have_struct_sockaddr_storage="no" ]
 	)
@@ -279,7 +279,7 @@
 #include <sys/types.h>
 #include <netinet/in.h>
 		]],
-		[[ struct sockaddr_in6 s; s.sin6_family = 0; ]])],
+		[[ if (sizeof(struct sockaddr_in6)) return 0 ]])],
 		[ ac_cv_have_struct_sockaddr_in6="yes" ],
 		[ ac_cv_have_struct_sockaddr_in6="no" ]
 	)
@@ -293,7 +293,7 @@
 #include <sys/types.h>
 #include <netinet/in.h>
 		]],
-		[[ struct in6_addr s; s.s6_addr[0] = 0; ]])],
+		[[ if (sizeof(struct in6_addr)) return 0 ]])],
 		[ ac_cv_have_struct_in6_addr="yes" ],
 		[ ac_cv_have_struct_in6_addr="no" ]
 	)
@@ -308,7 +308,7 @@
 #include <sys/socket.h>
 #include <netdb.h>
 		]],
-		[[ struct addrinfo s; s.ai_flags = AI_PASSIVE; ]])],
+		[[ if (sizeof(struct addrinfo)) return 0 ]])],
 		[ ac_cv_have_struct_addrinfo="yes" ],
 		[ ac_cv_have_struct_addrinfo="no" ]
 	)