Intel® Integrated Performance Primitives
Community support and discussions relating to developing high-performance vision, signal, security, and storage applications.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!

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

Gtracker
Beginner
219 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...

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
219 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.

Igor_A_Intel
Employee
219 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.

Reply