AnsweredAssumed Answered

How to use OpenCL on iMX8 with Android

Question asked by Dzmitry Yunitski on Jun 8, 2020
Latest reply on Jun 17, 2020 by anon nop

We try to use OpenCL on the board using MACE library. It seems OpenCL library is not accessible on the board, we're getting the following errors : 

E/linker: library "/system/vendor/lib64/libOpenCL.so" ("/vendor/lib64/libOpenCL.so") needed or dlopened by "/data/app/com.mapbox.vision.teaser-Z24w2xgzilGUCXbduDriKg==/base.apk!/lib/arm64-v8a/libvision-sdk-wrapper.so" is not accessible for the namespace: [name="classloader-namespace", ld_library_paths="", default_library_paths="/data/app/com.mapbox.vision.teaser-Z24w2xgzilGUCXbduDriKg==/lib/arm64:/data/app/com.mapbox.vision.teaser-Z24w2xgzilGUCXbduDriKg==/base.apk!/lib/arm64-v8a", permitted_paths="/data:/mnt/expand:/data/data/com.mapbox.vision.teaser"]

 

Internet suggests to add libOpenCL.so to the /system/etc/public.libraries.txt (1, 2, 3), but that hadn't worked for us. Seems entries in the /system/etc/public.libraries.txt only list libraries at the /system/lib and not /system/vendor/lib64. So when we've added libOpenCL.so to this list device just wasn't able to boot after the reboot, complaining unable to load the libOpenCL.so

We've tried to copy libOpenCL.so to /system/lib, which produced another error since libOpenCL depends on another library, that is also not in the /system/lib, that depend on another library and so on. 

 

How could we correctly expose libOpenCL? Seems that there should be another public.libraries.txt listing exposed vendor libraries, but we were unable to locate one.

Outcomes