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, Jaak [1]: Feel free to integrate https://github.com/swordxx/swordxx/commit/3934674fd8db1302c7777c323c0a56235292d6d7 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@crosswire.org > http://www.crosswire.org/mailman/listinfo/sword-devel > Instructions to unsubscribe/change your settings at above page > _______________________________________________ sword-devel mailing list: sword-devel@crosswire.org http://www.crosswire.org/mailman/listinfo/sword-devel Instructions to unsubscribe/change your settings at above page