From 5593f23e8e062da108ed585535e7281b87346ee1 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Wed, 25 Nov 2020 09:36:25 +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`. Bug: https://bugs.gentoo.org/738156 Bug: https://bugs.gentoo.org/750353 Signed-off-by: Sergei Trofimovich --- 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 f4e2dfd0a7..6f5782e674 100644 --- a/build/apr_common.m4 +++ b/build/apr_common.m4 @@ -504,13 +504,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])