[sword-devel] ppc64le build error

Jaak Ristioja jaak at ristioja.ee
Wed Jul 17 14:51:42 MST 2019

In Sword++ we fixed [1] this by using the fixed-width integer types
provided by <cstdint>. Note also that some certain names containing
underscores are reserved to the C++ implementation [2], e.g. names
beginning with underscores and names containing adjacent underscores.

Best regards,

[1]: Feel free to integrate
back to Sword. In Sword++ most of these type names were later prefixed
with std::, e.g. std::uint64_t instead of plain uint64_t.

[2]: See https://stackoverflow.com/a/228797 for a good summary on this.

On 17.07.19 17:52, Greg Hellings wrote:
> I got an automated report this week that Sword 1.8.1 has begun failing to
> build on ppc64le architecture with type redefinition errors. The errors are
> reported here: https://bugzilla.redhat.com/show_bug.cgi?id=1730318
> To copy from that link, the relevant error is:
>  /usr/include/asm-generic/int-l64.h:29:25: error: conflicting
> declaration 'typedef long int __s64'
>     29 | typedef __signed__ long __s64;
>        |                         ^~~~~
>  /usr/include/asm-generic/int-l64.h:30:23: error: conflicting
> declaration 'typedef long unsigned int __u64'
>     30 | typedef unsigned long __u64;
>        |                       ^~~~~
> I try to shy away from knowing too much about C's typing system. I can
> easily locate the places in our code where we are defining those types
> ourself. However, I don't want to mess up proper detection and
> definition of them in a patch if I can help it.
> --Greg
> _______________________________________________
> sword-devel mailing list: sword-devel at crosswire.org
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page

More information about the sword-devel mailing list