arm, aarch64 and x86_64 should all work fine without text relocations, but for 32 bit x86, you can't easily avoid it. (For x86, the simplest way around it is to do--disable-asm, but that does give quite a bit of performance loss.)
You can check if your shared lbirary has text relocations by doing this:
readelf -a path/to/yourlib.so | grep TEXTREL
If it has text relocations, it will show you something like this:
0x00000016(TEXTREL)0x0
If this is the case, you may recompile your shared library with the latest NDK version available:
ndk-build -B -j 8
And if you check it again, the grep command will return nothing.
--disable-asm 或者--disable-asm --enable-pic might be needed.