On Wed, 12 Jul 2017 08:17:46 -0000
Samuel Rakitničan <srakitnican(a)fedoraproject.org> wrote:
> Argument 4 is the "n". The problem is with the
definition of
> "PRIo64. There was a recent commit attempting to fix that, but it
> probably needs some adjustment to handle your case. Check out the
> lines around line 48 in that file and see if you can patch it to
> work in all cases. The odd thing is that it only doesn't work on
> epel7. I guess you need to compare how old the compiler is on
> there compared to the Fedora versions.
So Joseph and I managed to fix this for epel7 with following patch:
src/cbang/tar/TarHeader.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/cbang/tar/TarHeader.cpp b/src/cbang/tar/TarHeader.cpp
index 470b37c..50df710 100644
--- a/src/cbang/tar/TarHeader.cpp
+++ b/src/cbang/tar/TarHeader.cpp
@@ -45,7 +45,8 @@
#endif
#ifndef PRIo64
-#if defined(_M_X64) || (defined(__x86_64__) && !defined(__ILP32__))
+#if defined(_M_X64) || (defined(__x86_64__) && !defined(__ILP32__))
|| \
+ defined(__aarch64__) || defined(__ppc64__) || defined(__PPC64__)
#define PRIo64 "lo"
#else
#define PRIo64 "llo"
It seems GCC 4.8 needs these macros defined explicitly, while GCC > 6
inherits it from something else (_M_X64 perhaps?), thoughts?
I guess it depends if (and how) inttypes.h header gets included, it's
provided by glibc.
Dan