libsdl-org / SDL

Simple Directmedia Layer
https://libsdl.org
zlib License
9.71k stars 1.8k forks source link

Android.mk builds libSDL3.so in thumb node #7415

Closed madebr closed 1 year ago

madebr commented 1 year ago

By default, the ndk-build system generates ARM target binaries in thumb mode.

Is this something we want and/or care about?

slouken commented 1 year ago

I'm not sure whether we care or not. I believe thumb mode used to be more important when phones had less space, but I don't know if it's still relevant. It's worth some research before 3.0 release.

AntTheAlchemist commented 1 year ago

I'll chip in and say I like to keep my .APK file size down. Google Play will punish apps that are larger because users are forced to uninstall to make room. Disabling thumb builds would double the native binaries, which will nearly double my .APK size. If speed is an issue, ARM code can be applied per-file by adding .arm on to the LOCAL_SRC_FILES list, or by adding LOCAL_ARM_MODE := arm. At least that is my understanding after doing some digging.

1bsyl commented 1 year ago

and people can also all .neon so that it compiles with neon let's just leave people tweak this if they want.

eventually, add a comment ...

from internet:

The drawbacks of the Thumb instruction set are that it requires more instructions to complete the same task. Hence the ARM instruction set is best for maximizing the performance. The Thumb instruction set does not include instructions required for exception handling.

Thumb code is typically 65% of the size of ARM code, and provides 160% of the performance of ARM code when running from a 16-bit memory system. Thumb, therefore, makes the ARM7TDMI core ideally suited to embedded applications with restricted memory bandwidth, where code density and footprint is important.

madebr commented 1 year ago

Closing, since it's a good default.