Summary: | dev-vcs/subversion-1.11.1 with dev-libs/apr-1.7.0: configure: error: failed to recognize APR_INT64_T_FMT on this platform | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Juergen Rose <rose> |
Component: | Current packages | Assignee: | Lars Wendler (Polynomial-C) (RETIRED) <polynomial-c> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | aidanamarks, alex, atoth, candrews, chris, email200202, fkrogh, gentoo, gentoo, grafi, grozin, hanno, james05+gentoo, jarausch, javran.c, jwbraun, kolesya.ru, kuba.iluvatar, mark+gentoobugs, Martin.Jansa, mgorny, myracf, n.sevchenco, perfect007gentleman, shinydoofy, siama, tka, uleysky, ulm, viklevin2, vmatare+gbug, xaviermiller, zhuyifei1999 |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
URL: | https://issues.apache.org/jira/browse/SVN-4813 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
config.log
subversion-1.11.1-apr-1.7.0.patch |
Description
Juergen Rose
2019-04-07 06:50:54 UTC
This happens after installing dev-libs/libutf8proc-2.3.0 . confirm Temporary solution: downgrade to something older than dev-libs/apr-1.7.0 confirmed downgrading to <dev-libs/apr-1.7.0 fixes compilation of =dev-vcs/subversion-1.11.1 So why would this not be added to the subversion ebuild..? COMMON_DEPEND=" .. >=dev-libs/apr-1.3:1 + <dev-libs/apr-1.7 .." Configure throws error "failed to recognize APR_INT64_T_FMT on this platform" based on output of > gcc -E -DLINUX -D_REENTRANT -D_GNU_SOURCE -I/usr/include/apr-1 conftest.c where "conftest.c" contains: > [...] > /* end confdefs.h. */ > #include <apr.h> > MaTcHtHiS APR_INT64_T_FMT EnDeNd It will check the output via > /bin/grep -E 'MaTcHtHiS +"lld" +EnDeNd' > /bin/grep -E 'MaTcHtHiS +"ld" +EnDeNd' or > /bin/grep -E 'MaTcHtHiS +"d" +EnDeNd' For yet unknown reason, the output from apr-1.7.0 has changed > --- a/conftest-w-apr-1.6.5.log 2019-04-09 19:57:02.754118256 +0200 > +++ b/conftest-w-apr-1.7.0.log 2019-04-09 19:57:12.726222997 +0200 > @@ -5,8 +5,8 @@ > # 1 "<command-line>" 2 > # 1 "conftest.c" > # 47 "conftest.c" > -# 1 "/var/tmp/portage/dev-libs/apr-1.6.5/image/usr/include/apr-1/apr.h" 1 > -# 164 "/var/tmp/portage/dev-libs/apr-1.6.5/image/usr/include/apr-1/apr.h" > +# 1 "/usr/include/apr-1/apr.h" 1 > +# 165 "/usr/include/apr-1/apr.h" > # 1 "/usr/include/sys/types.h" 1 3 4 > # 25 "/usr/include/sys/types.h" 3 4 > # 1 "/usr/include/features.h" 1 3 4 > @@ -714,7 +714,7 @@ > > > > -# 165 "/var/tmp/portage/dev-libs/apr-1.6.5/image/usr/include/apr-1/apr.h" 2 > +# 166 "/usr/include/apr-1/apr.h" 2 > > > > @@ -1128,8 +1128,8 @@ > extern int isfdtype (int __fd, int __fdtype) __attribute__ ((__nothrow__ , __leaf__)); > # 272 "/usr/include/sys/socket.h" 3 4 > > -# 169 "/var/tmp/portage/dev-libs/apr-1.6.5/image/usr/include/apr-1/apr.h" 2 > -# 178 "/var/tmp/portage/dev-libs/apr-1.6.5/image/usr/include/apr-1/apr.h" > +# 170 "/usr/include/apr-1/apr.h" 2 > +# 184 "/usr/include/apr-1/apr.h" > # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include/stdint.h" 1 3 4 > # 9 "/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include/stdint.h" 3 4 > # 1 "/usr/include/stdint.h" 1 3 4 > @@ -1195,7 +1195,51 @@ > typedef __intmax_t intmax_t; > typedef __uintmax_t uintmax_t; > # 10 "/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include/stdint.h" 2 3 4 > -# 179 "/var/tmp/portage/dev-libs/apr-1.6.5/image/usr/include/apr-1/apr.h" 2 > +# 185 "/usr/include/apr-1/apr.h" 2 > + > + > + > +# 1 "/usr/include/inttypes.h" 1 3 4 > +# 34 "/usr/include/inttypes.h" 3 4 > +typedef int __gwchar_t; > +# 266 "/usr/include/inttypes.h" 3 4 > + > + > + > + > + > +typedef struct > + { > + long int quot; > + long int rem; > + } imaxdiv_t; > +# 290 "/usr/include/inttypes.h" 3 4 > +extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); > + > + > +extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom) > + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); > + > + > +extern intmax_t strtoimax (const char *__restrict __nptr, > + char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)); > + > + > +extern uintmax_t strtoumax (const char *__restrict __nptr, > + char ** __restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)); > + > + > +extern intmax_t wcstoimax (const __gwchar_t *__restrict __nptr, > + __gwchar_t **__restrict __endptr, int __base) > + __attribute__ ((__nothrow__ , __leaf__)); > + > + > +extern uintmax_t wcstoumax (const __gwchar_t *__restrict __nptr, > + __gwchar_t ** __restrict __endptr, int __base) > + __attribute__ ((__nothrow__ , __leaf__)); > +# 432 "/usr/include/inttypes.h" 3 4 > + > +# 189 "/usr/include/apr-1/apr.h" 2 > > > > @@ -2131,8 +2175,8 @@ > > > > -# 183 "/var/tmp/portage/dev-libs/apr-1.6.5/image/usr/include/apr-1/apr.h" 2 > -# 193 "/var/tmp/portage/dev-libs/apr-1.6.5/image/usr/include/apr-1/apr.h" > +# 193 "/usr/include/apr-1/apr.h" 2 > +# 203 "/usr/include/apr-1/apr.h" > # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include-fixed/limits.h" 1 3 4 > # 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include-fixed/limits.h" 3 4 > # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include-fixed/syslimits.h" 1 3 4 > @@ -2176,10 +2220,10 @@ > # 195 "/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include-fixed/limits.h" 2 3 4 > # 8 "/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include-fixed/syslimits.h" 2 3 4 > # 35 "/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include-fixed/limits.h" 2 3 4 > -# 194 "/var/tmp/portage/dev-libs/apr-1.6.5/image/usr/include/apr-1/apr.h" 2 > -# 310 "/var/tmp/portage/dev-libs/apr-1.6.5/image/usr/include/apr-1/apr.h" > +# 204 "/usr/include/apr-1/apr.h" 2 > +# 328 "/usr/include/apr-1/apr.h" > > -# 310 "/var/tmp/portage/dev-libs/apr-1.6.5/image/usr/include/apr-1/apr.h" > +# 328 "/usr/include/apr-1/apr.h" > typedef unsigned char apr_byte_t; > > typedef short apr_int16_t; > @@ -2187,9 +2231,13 @@ > > typedef int apr_int32_t; > typedef unsigned int apr_uint32_t; > -# 353 "/var/tmp/portage/dev-libs/apr-1.6.5/image/usr/include/apr-1/apr.h" > - typedef long apr_int64_t; > - typedef unsigned long apr_uint64_t; > +# 371 "/usr/include/apr-1/apr.h" > + typedef int64_t apr_int64_t; > + typedef uint64_t apr_uint64_t; > + > + > + > + > > > typedef size_t apr_size_t; > @@ -2201,4 +2249,8 @@ > > typedef apr_uint64_t apr_uintptr_t; > # 48 "conftest.c" 2 > - MaTcHtHiS "ld" EnDeNd > + MaTcHtHiS > +# 48 "conftest.c" 3 4 > + "l" "d" > +# 48 "conftest.c" > + EnDeNd ...which makes the regex always fail. Created attachment 572312 [details, diff]
subversion-1.11.1-apr-1.7.0.patch
apr-1.7.0 defines APR_INT64_T_FMT as PRId64, which in turn is defined in /usr/include/inttypes.h:
# define PRId64 __PRI64_PREFIX "d"
__PRI64_PREFIX can be "l" or "ll".
Attached patch fixes the build for me. (I haven't checked if there are any runtime failures, though.)
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=94454a54314e0b471877ee2d1b44d8a6b9128cea commit 94454a54314e0b471877ee2d1b44d8a6b9128cea Author: Thomas Deutschmann <whissi@gentoo.org> AuthorDate: 2019-04-09 19:30:02 +0000 Commit: Thomas Deutschmann <whissi@gentoo.org> CommitDate: 2019-04-09 19:30:15 +0000 dev-vcs/subversion: fix building against >=dev-libs/apr-1.7.0 Closes: https://bugs.gentoo.org/682786 Package-Manager: Portage-2.3.62, Repoman-2.3.12 Signed-off-by: Thomas Deutschmann <whissi@gentoo.org> .../files/subversion-1.11.1-allow-apr-1.7.0+.patch | 18 ++++++++++++++++++ dev-vcs/subversion/subversion-1.10.4.ebuild | 4 ++++ dev-vcs/subversion/subversion-1.11.1.ebuild | 4 ++++ dev-vcs/subversion/subversion-1.12.0_rc1.ebuild | 4 ++++ dev-vcs/subversion/subversion-1.9.7-r1.ebuild | 4 ++++ 5 files changed, 34 insertions(+) I know I'm bothering you w.r.t. to C++17, but it's the current C++ standard. I need the patch below to make it compile with std=c++17 and this patch is perfect for all versions of C++ ever. --- a/subversion/bindings/javahl/native/RemoteSession.cpp.ORIG 2017-07-06 22:56:14.000000000 +0200 +++ b/subversion/bindings/javahl/native/RemoteSession.cpp 2019-04-10 11:33:55.400025784 +0200 @@ -169,7 +169,7 @@ namespace{ struct compare_c_strings { - bool operator()(const char* a, const char* b) + bool operator()(const char* a, const char* b) const { return (0 < std::strcmp(a, b)); } *** Bug 683096 has been marked as a duplicate of this bug. *** |