From 0a763c5e500f4304b7c534fae0fad430d64982e8 Mon Sep 17 00:00:00 2001 From: Yann Ylavic Date: Sat, 6 Mar 2021 22:20:59 +0000 Subject: [PATCH] build/apr_common.m4: avoid explicit inclusion of "confdefs.h" The failure is observed on `autoconf-2.69d` (soon to be released as `autoconf-2.70`). There `int64_t` detection fails as: $ autoreconf && ./configure checking whether int64_t and int use fmt %d... no checking whether int64_t and long use fmt %ld... no checking whether int64_t and long long use fmt %lld... no configure: error: could not determine the string function for int64_t ``` This happens because `./configure` always stumbles on warning: configure:3350: gcc -c -g -O2 -Werror conftest.c >&5 In file included from conftest.c:31: confdefs.h:22: error: "__STDC_WANT_IEC_60559_ATTRIBS_EXT__" redefined [-Werror] 22 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | It's triggered by double inclusion of `"confdefs.h"` contents: explicitly in `APR_TRY_COMPILE_NO_WARNING` macro and implicitly via `AC_LANG_SOURCE` use. To fix it and avoid having to define `main()` declaration the change uses `AC_LANG_PROGRAM` instead. Tested on both `autoconf-2.69` and `autoconf-2.69d`. Github: closes #25 Submitted by: Sergei Trofimovich Reviewed by: ylavic git-svn-id: https://svn.apache.org/repos/asf/apr/apr/trunk@1887279 13f79535-47bb-0310-9956-ffa450edef68 --- build/apr_common.m4 | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/build/apr_common.m4 b/build/apr_common.m4 index 3dfe85542b7..67d004983d2 100644 --- a/build/apr_common.m4 +++ b/build/apr_common.m4 @@ -467,13 +467,9 @@ AC_DEFUN([APR_TRY_COMPILE_NO_WARNING], CFLAGS="$CFLAGS -Werror" fi AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [#include "confdefs.h" - ] - [[$1]] - [int main(int argc, const char *const *argv) {] + [AC_LANG_PROGRAM( + [[$1]], [[$2]] - [ return 0; }] )], [CFLAGS=$apr_save_CFLAGS $3], [CFLAGS=$apr_save_CFLAGS $4])