Force linking in __gnu_Unwind_Find_exidx

I am writing Rust code for architecture target armv7-linux-androideabi.

The code is written in Dart/Flutter with one performance critical library written in Rust. I use dart:ffi to call it.

In Android Studio It works fine in the Android emulator with target i686-linux-android.

But when I test it on my android phone (using the armv7-linux-androideabi target) it crashes at runtime with the error:

E/flutter ( 4722): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: Invalid argument(s): Failed to load dynamic library (dlopen failed: cannot locate symbol "__gnu_Unwind_Find_exidx" referenced by "/data/app/com.example.androidtest-2/lib/arm/libcerberus.so"...)

I checked with nm libcerberus.so and __gnu_Unwind_Find_exidx is referenced but not defined.

Any way to force pulling in this function which seems to be specific to Arm. ?

Steve

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.