Skip to content

Commit

Permalink
dev-libs/apr: Fixed build with sys-devel/autoconf-2.70
Browse files Browse the repository at this point in the history
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
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 0 deletions.
1 change: 1 addition & 0 deletions dev-libs/apr/apr-1.7.0-r1.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-1.5.0-cross-types.patch
"${FILESDIR}"/${PN}-1.5.0-sysroot.patch #385775
"${FILESDIR}"/${PN}-1.6.3-skip-known-failing-tests.patch
"${FILESDIR}"/${PN}-1.7.0-autoconf-2.70.patch #750353
)

src_prepare() {
Expand Down
64 changes: 64 additions & 0 deletions dev-libs/apr/files/apr-1.7.0-autoconf-2.70.patch
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])

0 comments on commit 7fe608c

Please sign in to comment.