I built my own game engine from the ground up for this project and the hardest problem I have had to solve this entire project remains "how do you build anything at all for Android"
It's occasionally just really shocking that Google still hasn't faced just how bad the developer experience targeting the NDK is. Apple is actively hostile to third party devs yet they were not able to create something as hostile as the Android build system(s) became by accident
It's _FORTIFY_SOURCE. I think that particular symbol is actually something I landed upstream. Bionic is both forwards and backwards compatible (unlike glibc) by versioning symbols based on target API level. Maybe the library was built with a different target API than the app?
That's fascinating :O However I built this library myself, from the same cmake build that built the rest of the apk so's, and UBSAN definitely should not be on. I'm not familiar with FORTIFY_SOURCE… :(
_FORTIFY_SOURCE uses __builtin_object_size to do bounds checking for writes (in glibc) or both reads and writes (in Bionic) based on compiler detection of object sizes.
I think you have some kind of issue where the code is being built for a newer API than you're using it with.
I'll try fiddling with the API level, but the thing that is strange to me is that this CMake is building 3 or 4 different .so's including ODE, a very complex package, and only one of them is failing with the _chk error
I'm building for min sdk 21 target sdk 26, which I should go back and double check but I believe is the recommended numbers for the hardware platform I'm targeting. I haven't upgraded the ndk in a while, I'll try that. Thanks.