Conversation

As opposed to glibc where you have to build against the oldest glibc version you want to support, with Bionic, you can use the latest NDK and Bionic to build for an ancient release since they have these version checks. I guess it was screwed up for this specific symbol though.
1
The build system needs to be setting the minimum API level so that the code isn't built to use symbols introduced in newer versions. I don't think this actually has to do with that old minor SDK issue but rather this is the canary in the coal mine breaking from having that issue.
1
I'm upgrading NDK-- if it's ok I'd like to check back if I upgrade and it's still not working. (It is *super* interesting to me tho this problem was not present when I was building the project as Gradle invoking CMake, but when I build the project with pure CMake it appears!)
1
Make sure the build system is setting __ANDROID_API__ to your minSdkVersion i.e. -D__ANDROID_API__=21 for how you have it set up. I think that's probably your actual problem rather than an SDK / NDK bug now that I actually think about it more.
1
That makes sense, but that wouldn't explain why add_subdirectory was "passing" the correct variables when invoking add_subdirectory on ode (so appears to have loaded without problems) but not when invoking add_subdirectory on puredata (so having problems).
1
I only really deal with the proper Android build system used by AOSP. I don't have to deal with all the broken external stuff for app developers. I have no clue how to use gradle, CMake, etc. and it's super painful when I try to deal with those. So, can't really help with that.
1
This is the only way I know how to build native code for Android: github.com/GrapheneOS/har I don't really understand why app devs have to deal with horrible external build systems. I have no clue why the Android SDK people chose gradle. Android itself doesn't use that nonsense.
1
- The way CMake (our build system) does Android support is we feed it an android.toolchain.cmake from NDK_HOME and this sets all relevant variables. It doesn't appear to set __ANDROID_API__, nor does our CMakeLists.txt (CMake project config).
1
Show replies