Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.
6766 Discussions

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

Gtracker
Beginner
683 Views

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-Relocations-Enforced-for-API-level-23

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
Ivan_G_Intel1
Employee
683 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
Igor_A_Intel
Employee
683 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
Reply