X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=m4%2Fprotocol_binary.m4;h=5c00b5563ac3c0af118d1c720e7f4e87a0cb78fd;hb=db67ec92f832b5cf51c1b8bff3d843549b97dac7;hp=2c654e4acc58f158c663f44a1a078d7e454ecf5c;hpb=e115444989a124cc1a433ea20c13e877317bb0ad;p=m6w6%2Flibmemcached diff --git a/m4/protocol_binary.m4 b/m4/protocol_binary.m4 index 2c654e4a..5c00b556 100644 --- a/m4/protocol_binary.m4 +++ b/m4/protocol_binary.m4 @@ -1,21 +1,34 @@ dnl --------------------------------------------------------------------------- dnl Macro: PROTOCOL_BINARY_TEST dnl --------------------------------------------------------------------------- + AC_DEFUN([PROTOCOL_BINARY_TEST], - [AC_LANG_PUSH([C]) - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -I${srcdir} -DBUILDING_LIBMEMCACHED" - 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 #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 ---------------------------------------------------------------------------