I am trying to run my project on an Android device. It fails with output like this:
java.lang.UnsatisfiedLinkError: dlopen failed: TLS symbol "(null)" in dlopened "my_native_project.so" referenced from "my_native_project.so" using IE access model
The variable in question is the one with the TLS_MODEL macro in rpmalloc.c. If I remove the TLS_MODEL macro, then my project loads successfully and everything works as far as I can tell.
Note that I am not building rpmalloc directly. I am using the version of it that is included with the Tracy profiler. I was told that I should ask the maintainers of rpmalloc about it (https://github.com/wolfpld/tracy/issues/779).
What is your recommendation? Is it important for that variable to use tls_model("initial-exec")? If so, can you recommend a workaround to make the Android dynamic linker happy? Thanks.
I am trying to run my project on an Android device. It fails with output like this:
The variable in question is the one with the
TLS_MODEL
macro inrpmalloc.c
. If I remove theTLS_MODEL
macro, then my project loads successfully and everything works as far as I can tell.Note that I am not building rpmalloc directly. I am using the version of it that is included with the Tracy profiler. I was told that I should ask the maintainers of rpmalloc about it (https://github.com/wolfpld/tracy/issues/779).
What is your recommendation? Is it important for that variable to use
tls_model("initial-exec")
? If so, can you recommend a workaround to make the Android dynamic linker happy? Thanks.