I just posted v2 of the patch with the requisite changes.
[...]
Well, with __arm__ you already exclude 64-bit, as this only checks for the traditional arm32 instruction set. Code in that ifdef won't be compiled on arm64. If you want to write code that runs on arm64 you'd check for __aarch64__ instead of __arm__. see following link for reference: https://source.winehq.org/git/wine.git/blob/85527dbdf39c70fe5b1a341701813ecf...
Interesting! I didn't realize that that was true about __arm__. The majority of my ARM work has been on 32-bit devices. I have done some 64-bit ARM work, but nothing that needed those defines.
I had looked in the ARM and gcc specs on the defines and my interpretation of it was that __arm__ was always defined on any ARM platform (32 or 64) and that on 64 the "__aarch64__" was also defined. I didn't realize they are mutually exclusive with __arm__ implying 32-bit. I must have misinterpreted it.