forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dev-libs/apr: Fixed build with sys-devel/autoconf-2.70
Thanks-to: Sergei Trofimovich <[email protected]> Closes: https://bugs.gentoo.org/750353 Package-Manager: Portage-3.0.12, Repoman-3.0.2 Signed-off-by: Lars Wendler <[email protected]>
- Loading branch information
Lars Wendler
committed
Jan 10, 2021
1 parent
dc818b0
commit 7fe608c
Showing
2 changed files
with
65 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
From 5593f23e8e062da108ed585535e7281b87346ee1 Mon Sep 17 00:00:00 2001 | ||
From: Sergei Trofimovich <[email protected]> | ||
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 <[email protected]> | ||
--- | ||
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]) |