From: Erez Zadok Date: Fri, 7 Oct 2005 23:17:31 +0000 (+0000) Subject: * m4/macros/check_varargs_macros.m4: rewrite macro so it'll X-Git-Tag: am-utils-6_2a1~9 X-Git-Url: https://git.fsl.cs.stonybrook.edu/?a=commitdiff_plain;h=7753b7495aab69aa4ef3eeef1a5352fee7c85b52;p=am-utils-6.2.git * m4/macros/check_varargs_macros.m4: rewrite macro so it'll try and compile the varargs test, not just cpp it. Some systems pass the old cpp test, but not when you actually try to compile the code (Tru64's cc). --- diff --git a/ChangeLog b/ChangeLog index b78e261c..3a3b31b6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2005-10-07 Erez Zadok + * m4/macros/check_varargs_macros.m4: rewrite macro so it'll + try and compile the varargs test, not just cpp it. Some systems + pass the old cpp test, but not when you actually try to compile + the code (Tru64's cc). + * conf/autofs/autofs_solaris_v1.h: redefine autofs_strdup_space_hack as a macro to str3cat(NULL,(s)," ",""). This works everywhere and we avoid linking problems, inline diff --git a/m4/macros/check_varargs_macros.m4 b/m4/macros/check_varargs_macros.m4 index dfec692b..44bd3edf 100644 --- a/m4/macros/check_varargs_macros.m4 +++ b/m4/macros/check_varargs_macros.m4 @@ -1,19 +1,27 @@ dnl ###################################################################### -dnl check if CPP can handle variable-length argument macros +dnl check if compiler can handle variable-length argument macros AC_DEFUN([AMU_VARARGS_MACROS], [ -AC_CACHE_CHECK(if pre-processor can handle variable-length macros, +AC_CACHE_CHECK(if compiler can handle variable-length macros, ac_cv_varargs_macros, [ # try C99 style -AC_PREPROC_IFELSE( +AC_TRY_COMPILE( [ -#define foo(format, ...) bar(format, __VA_ARGS__) +#define foo(str,size,fmt,...) bar(__FILE__,__LINE__,(str),(size),(fmt),__VA_ARGS__) +], +[ +char a[80]; +foo(a, sizeof(a), "%d,%d", 1, 2); ], ac_cv_varargs_macros=c99, # else try gcc style -AC_PREPROC_IFELSE( +AC_TRY_COMPILE( +[ +#define foo(str,size,args...) bar(__FILE__,__LINE__,(str),(size),(fmt),args) +], [ -#define foo(format, args...) bar(format, args) +char a[80]; +foo(a, sizeof(a), "%d,%d", 1, 2); ], ac_cv_varargs_macros=gcc, ac_cv_varargs_macros=none)) ]) if test "$ac_cv_varargs_macros" = c99