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?