dnl ---------------------------------------------------------------------------
dnl Macro: PROTOCOL_BINARY_TEST
dnl ---------------------------------------------------------------------------
+
AC_DEFUN([PROTOCOL_BINARY_TEST],
- [AC_LANG_PUSH([C])
- save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -I${srcdir}"
- AC_RUN_IFELSE([
- AC_LANG_PROGRAM([[
+[
+ 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.]))
+ ],
+ [ 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 ---------------------------------------------------------------------------