From 9630b21558ef3d01f0f12cc8100d9fe5a9cb65ba Mon Sep 17 00:00:00 2001 From: Joe Slater Date: Mon, 15 Sep 2014 16:13:09 -0500 Subject: [PATCH] fix alignof m4 macro DBIND_CHECK_ALIGNOF does not work when cross-compiling, so we modify it to use AC_CHECK_ALIGNOF. --- acinclude.m4 | 52 +++++++++++++++------------------------------------- 1 file changed, 15 insertions(+), 37 deletions(-) diff --git a/acinclude.m4 b/acinclude.m4 index 6eb7916d..a4904ce2 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -2,42 +2,20 @@ # type alignment test # ####################### -AC_DEFUN([DBIND_CHECK_ALIGNOF], - [changequote(<<, >>)dnl - dnl The name to #define. - define(<>, - translit(dbind_alignof_$1, [a-z *], [A-Z_P]))dnl - dnl The cache variable name. - define(<>, - translit(ac_cv_alignof_$1, [ *], [_p]))dnl - changequote([, ])dnl - AC_MSG_CHECKING(alignment of $1) - AC_CACHE_VAL(AC_CV_NAME, - [AC_TRY_RUN( - [ #include - #include - #define DBUS_API_SUBJECT_TO_CHANGE - #include - typedef struct {char s1;} dbind_struct; - typedef void *dbind_pointer; - struct test {char s1; $1 s2;}; - main() - { - FILE *f=fopen("conftestval", "w"); - if (!f) exit(1); - fprintf(f, "%d\n", &(((struct test*)0)->s2)); - exit(0); - } ], - AC_CV_NAME=`cat conftestval`, - AC_CV_NAME=0, AC_CV_NAME=0) - ])dnl - AC_MSG_RESULT($AC_CV_NAME) - if test "$AC_CV_NAME" = "0" ; then - AC_MSG_ERROR([Failed to find alignment. Check config.log for details.]) - fi - AC_TYPE_NAME=$AC_CV_NAME - AC_SUBST(AC_TYPE_NAME) - undefine([AC_TYPE_NAME])dnl - undefine([AC_CV_NAME])dnl +AC_DEFUN([DBIND_CHECK_ALIGNOF],[ +AC_CHECK_ALIGNOF($1,[ +#include +#include +#define DBUS_API_SUBJECT_TO_CHANGE +#include +typedef struct {char s1;} dbind_struct; +typedef void *dbind_pointer; +]) + +dnl Note that we substitute for names like @DBIND_ALIGNOF_DBIND_STRUCT@, but +dnl we #define names like ALIGNOF_DBIND_STRUCT in config.h! +dnl +AC_SUBST(translit(dbind_alignof_$1, [a-z *], [A-Z_P]),[$ac_cv_alignof_$1]) + ]) -- 2.34.1