dnl ---------------------------------------------------------------------------
dnl Macro: PROTOCOL_BINARY_TEST
dnl ---------------------------------------------------------------------------
-save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS -I${srcdir}"
-AC_RUN_IFELSE([
- AC_LANG_PROGRAM([
- #include "libmemcached/memcached/protocol_binary.h"
- ], [
+
+AC_DEFUN([PROTOCOL_BINARY_TEST],
+[
+ AC_CACHE_CHECK([for supported struct padding], [ac_cv_supported_struct_padding], [
+ AC_LANG_PUSH([C])
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -I${srcdir}"
+ AC_TRY_COMPILE([
+#include <inttypes.h>
+#include "libmemcached/memcached/protocol_binary.h"
+ ], [
protocol_binary_request_set request;
- if (sizeof(request) != sizeof(request.bytes)) {
- return 1;
+ int a = 1;
+ switch (a) {
+ case sizeof(request):
+ case sizeof(request.bytes):
+ break;
+ default:
+ a = 2;
}
- ])
-],, AC_MSG_ERROR([Unsupported struct padding done by compiler.]))
-CFLAGS="$save_CFLAGS"
+ ],
+ [ ac_cv_supported_struct_padding=no ],
+ [ ac_cv_supported_struct_padding=yes ])
+ CFLAGS="$save_CFLAGS"
+ AC_LANG_POP
+ ])
+ AS_IF([test "x$ac_cv_supported_struct_padding" = "xno"],[
+ AC_MSG_ERROR([Unsupported struct padding done by compiler.])])
+])
dnl ---------------------------------------------------------------------------
dnl End Macro: PROTOCOL_BINARY_TEST