OK, I see. On the NDK page for armeabi it mentions that
The NDK generates Thumb code by default unless you specify different behavior using the LOCAL_ARM_MODE variable in your Android.mk file.
The documentation for that flag further mentions:
LOCAL_ARM_MODE
By default, the build system generates ARM target binaries in thumb mode, where each instruction is 16 bits wide and linked with the STL libraries in the thumb/ directory. Defining this variable as arm forces the build system to generate the module’s object files in 32-bit arm mode.
It’s not entirely clear if this is enabled for v7a as well, but a quick test with the latest NDK could answer that. I could do that test once I have access to my dev computer after the holidays.
How does the Rust community feel about making the default thumb to match up with the NDK’s behavior? And, does this matter that much aside from code size? I.e. Are there significant compatibility issues from mixing the two modes?
Not knowing much about the compiler at all, what would be involved in doing something similar to LOCAL_ARM_MODE if we wanted to integrate Rust into an NDK project?