<div dir="ltr"><div>That is a rather sizeable patch. I don't want to just apply it wholesale to the Sword engine without some input from people who know more about the code than I do. It should, however, be workable if Troy doesn't have a more permanent fix in mind.</div><div><br></div><div>--Greg<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jul 17, 2019 at 4:52 PM Jaak Ristioja <<a href="mailto:jaak@ristioja.ee">jaak@ristioja.ee</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">In Sword++ we fixed [1] this by using the fixed-width integer types<br>
provided by <cstdint>. Note also that some certain names containing<br>
underscores are reserved to the C++ implementation [2], e.g. names<br>
beginning with underscores and names containing adjacent underscores.<br>
<br>
<br>
Best regards,<br>
Jaak<br>
<br>
<br>
[1]: Feel free to integrate<br>
<a href="https://github.com/swordxx/swordxx/commit/3934674fd8db1302c7777c323c0a56235292d6d7" rel="noreferrer" target="_blank">https://github.com/swordxx/swordxx/commit/3934674fd8db1302c7777c323c0a56235292d6d7</a><br>
back to Sword. In Sword++ most of these type names were later prefixed<br>
with std::, e.g. std::uint64_t instead of plain uint64_t.<br>
<br>
[2]: See <a href="https://stackoverflow.com/a/228797" rel="noreferrer" target="_blank">https://stackoverflow.com/a/228797</a> for a good summary on this.<br>
<br>
<br>
On 17.07.19 17:52, Greg Hellings wrote:<br>
> I got an automated report this week that Sword 1.8.1 has begun failing to<br>
> build on ppc64le architecture with type redefinition errors. The errors are<br>
> reported here: <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1730318" rel="noreferrer" target="_blank">https://bugzilla.redhat.com/show_bug.cgi?id=1730318</a><br>
> <br>
> To copy from that link, the relevant error is:<br>
> <br>
> /usr/include/asm-generic/int-l64.h:29:25: error: conflicting<br>
> declaration 'typedef long int __s64'<br>
> 29 | typedef __signed__ long __s64;<br>
> | ^~~~~<br>
> <br>
> /usr/include/asm-generic/int-l64.h:30:23: error: conflicting<br>
> declaration 'typedef long unsigned int __u64'<br>
> 30 | typedef unsigned long __u64;<br>
> | ^~~~~<br>
> <br>
> I try to shy away from knowing too much about C's typing system. I can<br>
> easily locate the places in our code where we are defining those types<br>
> ourself. However, I don't want to mess up proper detection and<br>
> definition of them in a patch if I can help it.<br>
> <br>
> --Greg<br>
> <br>
> <br>
> _______________________________________________<br>
> sword-devel mailing list: <a href="mailto:sword-devel@crosswire.org" target="_blank">sword-devel@crosswire.org</a><br>
> <a href="http://www.crosswire.org/mailman/listinfo/sword-devel" rel="noreferrer" target="_blank">http://www.crosswire.org/mailman/listinfo/sword-devel</a><br>
> Instructions to unsubscribe/change your settings at above page<br>
> <br>
<br>
<br>
_______________________________________________<br>
sword-devel mailing list: <a href="mailto:sword-devel@crosswire.org" target="_blank">sword-devel@crosswire.org</a><br>
<a href="http://www.crosswire.org/mailman/listinfo/sword-devel" rel="noreferrer" target="_blank">http://www.crosswire.org/mailman/listinfo/sword-devel</a><br>
Instructions to unsubscribe/change your settings at above page<br>
</blockquote></div>