Conversation

Replying to and
Hey so, I really appreciate your help on this and I'm sorry about all these minor questions… I do have one more question. Is _chk something that would appear on all functions, or only socket functions such as sendto?
2
Replying to
It's for all functions in libc handling buffers. There are fortified versions that are automatically used to add buffer overflow checks based on compile-time sizes. sendto is an issue because of this API mismatch because the code to fortify it was added for API 26.
1
Replying to
Okay, that's extremely interesting. But this does still imply that if I could compile out the socket code, I'd sidestep this issue? (I'm not sure I *can* get rid of it because maybe it uses sockets for IPC, but I legitimately don't want my audio subsystem talking to TCP/IP!)
1
Replying to
You should really just get __ANDROID_API__ actually set to 23 (if minSdkVersion is 23). It's not the only thing that's going to break. It's also possible the compiler/linker use stuff that's not available for lower API levels, etc. since higher API levels are a diff target.
2
Replying to
I think you had the right idea setting that CMake variable to API 23. I just think it's not really intended to build Java and that may not work properly? So probably set it to 23 and then deal with fixing how it builds Java.
2
Replying to
Sorry, there are many knobs to twiddle and I've been performing many tests rapidly this entire time (it's just each test is slow because it's a full clean build…)
1
Replying to and
So to summarize: API 21: This is an "old" value I used when I was trying to support Oculus Go. This failed to build, Android error. API 23: This is the recommended value. This built. It does seem to still lead to the sendto_chk error. API 26: Value I was using at start of day.
1
1
Replying to and
When I did API 23, I was able to verify (by use of #error) that on at least one C file in the "problem" project it was using __ANDROID_API__=23. What I have *not* tested yet (am testing now) is all 3 of: - Use Android SDK vended cmake - Specify CMAKE_BUILD_TYPE=release - API 23
2
Replying to and
Great news. With ALL FOUR of 1. Use Android SDK vended CMake 2. Use API 23 3. Build as release 4. Build libpd as static, I have managed to get to where the process launches and then commits a conventional segfault. I know how to debug those. Thanks for the help :)
1