Android JNI calls missing JNIEXPORT/JNICALL


the export of functions/symbols on android should be marked using JNIEXPORT
and JNICALL. This fixes the visibility and calling convention. The SDL library
can then be compiled using -fvisibility=hidden. This reduces some of the
overhead of calls, allows further optimizations and reduces the possibility to
have symbol clashes [2].

I personally got 15% speedup during benchmarks on a library with many calls by
using -fvisibility=hidden and correct exports on a Linux PC. So it can really
be beneficial. (and 10% more after LTO… but this doesn’t seem to be supported
by the android-ndk at the moment)

Franz Schrober