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?