On 07/06/2017 02:28 AM, Björn 'besser82' Esser wrote:
Am 06.07.2017 um 10:14 schrieb Samuel Rakitničan:
src/cbang/tar/TarHeader.cpp:226:43: error: format '%llo' expects argument of type 'long long unsigned int', but argument 4 has type 'uint64_t {aka long unsigned int}' [-Werror=format=] sprintf(buf, "%0*" PRIo64, length - 1, n); ^
Patch that line to read `sprintf(buf, "%0*" PRIo64, static_cast<long long unsigned int>(length - 1), n);` and you're cool. It might be related to how that particular gcc version in EPEL7 inherits those atomic data-types.
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.