This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

dlopen failure when running OpenCL

I am porting an opencl application onto a Huawei honor8 phone, which comes with opencl. Also it is not rooted

When I ran my app, I got the error:

/system/vendor/lib64/egl/libGLES_mali.so" ("/vendor/lib64/egl/libGLES_mali.so") needed or dlopened by "/data/app/com.numericcal.ocl_peak-1/lib/arm64/libOpenCL.so" is not accessible for the namespace: [name="classloader-namespace", ld_library_paths="", default_library_paths="/data/app/com.numericcal.ocl_peak-1/lib/arm64:/data/app/com.numericcal.ocl_peak-1/base.apk!/lib/arm64-v8a:/.....

and the app crashes.

I actually have libGLES_mali.so placed under src/main/jniLibs/arm64-v8a along side whole bunch of other shared libs that libOpenCL.so depends on, I don't understand why this error pops up. (all the shared libs are pulled from the phone -- either from /vendor or /system directory)

Anyone have seen this before? Any good guess what I can do to fix it?

Thank you!

S Cheng

Parents
  • Can you use an ARM-friendly Readelf binary and then do

    adb pull /app/com.numericcal.ocl_peak-1/lib/arm64/libOpenCL.so /tmp/libOpenCL.so and do :
    readelf -d /tmp/libOpenCL.so

    And paste the result ?

    Note that you might have to use a prefixed version of readelf. Something like armv8-gnueabi-readelf or similar...

Reply
  • Can you use an ARM-friendly Readelf binary and then do

    adb pull /app/com.numericcal.ocl_peak-1/lib/arm64/libOpenCL.so /tmp/libOpenCL.so and do :
    readelf -d /tmp/libOpenCL.so

    And paste the result ?

    Note that you might have to use a prefixed version of readelf. Something like armv8-gnueabi-readelf or similar...

Children