Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
62 Views

IIP for Android can't be used on Android 6.0 and later

The IPP static libraries appear to use "Text Relocations" in the assembly code, which is forbidden on Android 6.0 and later.

The linker gives a warning treated as error (i686-linux-android/bin/ld: warning: shared library text segment is not shareable), which can be overridden with "-Wl,--no-warn-shared-textrel", however if I do so then the device fails to load the .so containing the code, saying in the Logcat " Error loading native lib: java.lang.UnsatisfiedLinkError: dlopen failed: "xxxx.so" has text relocations". 

For more info on the Text Relocations prohibition please see:

https://android.googlesource.com/platform/bionic/+/master/android-changes-for-ndk-developers.md#Text...

I'm using the IPP for Android that's include on Systems Studio for Linux, latest version downloaded yesterday. Android Studio 3.5.3 and NDK 20.

 

Thanks.

 

Regards,
Flavio.

 

 

0 Kudos
2 Replies
Highlighted
Employee
62 Views

Hello, Gtracker.

What IPP version do you use? IPP for Android is deprecated now, so you should use IPP Linux libraries for Android instead (please see Release notes).

Best regards,
Ivan Galanin.

0 Kudos
Highlighted
Employee
62 Views

Hi Flavio,

Ivan is right - this is known issue for the previous IPP versions, that has been already fixed in the latest 2019 update. For 2020 you should use IPP libraries for Linux. And there is known workaround for the previous IPP versions - adding "-Bsymbolic" (or "-Wl,-Bsymbolic") to ld cmd line. Anyway we recommend to switch to the latest one.

regards, Igor.

0 Kudos