You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It might be possible to use dlsym on Android to cover the differences, although another possibility is to look to increase the API level in rust-lang/rust
I'm not 100% sure this is the same issue but I'll note that Signal has encountered some Android devices that claim to be API22 but still don't have dl_iterate_phdr. A dlsym-based solution would be safest for us.
@jrose-signal That would impact both the backend-sys implementation as well as #415 which both depend on the API version being targeted at compile time to determine if dl_iterate_phdr is available.
Are you able to provide any additional details or link to an issue? Thanks!
Ah, I take it back: upon further investigation we've had some builds come out that are missing -ldl. I'm not sure how they even linked, honestly. Still looking to see if this is the only issue.
For anyone curious: I never quite tracked it down, but our Docker build was not including -ldl even though our other builds were, and this only caused problems on some phones because most of them re-export the libdl APIs through libc (or something else that meant it didn't need to be explicitly linked). signalapp/libsignal#274
Activity
tesuji commentedon Oct 29, 2020
Starting from lollipop (android 5, api level 21), android defines
dl_iterate_phdr
in <link.h>.Currently, rustc supports down to api level 14.
I will investigate more about other possibilities but if you have opinions
on this issue, please make a voice.
alexcrichton commentedon Oct 29, 2020
It might be possible to use
dlsym
on Android to cover the differences, although another possibility is to look to increase the API level in rust-lang/rusts1341 commentedon Apr 7, 2021
I'm interested in getting backtraces on Android. Currently I get a list of ""s....
Is there any working solution?
s1341 commentedon Apr 7, 2021
I got it working, trick was to add
default-features = false
andfeatures = [ "std", "libbacktrace" ]
kjvalencik commentedon Apr 7, 2021
@s1341 Were there any additional steps you needed to take? Switching to
backtrace-sys
with thelibbacktrace
feature flag was insufficient.s1341 commentedon Apr 8, 2021
@kjvalencik I had to turn off default-features too. It wasn't enough to turn on
libbacktrace
.jrose-signal commentedon Apr 19, 2021
I'm not 100% sure this is the same issue but I'll note that Signal has encountered some Android devices that claim to be API22 but still don't have
dl_iterate_phdr
. Adlsym
-based solution would be safest for us.kjvalencik commentedon Apr 19, 2021
@jrose-signal That would impact both the
backend-sys
implementation as well as #415 which both depend on the API version being targeted at compile time to determine ifdl_iterate_phdr
is available.Are you able to provide any additional details or link to an issue? Thanks!
jrose-signal commentedon Apr 19, 2021
Ah, I take it back: upon further investigation we've had some builds come out that are missing
-ldl
. I'm not sure how they even linked, honestly. Still looking to see if this is the only issue.jrose-signal commentedon Apr 22, 2021
For anyone curious: I never quite tracked it down, but our Docker build was not including
-ldl
even though our other builds were, and this only caused problems on some phones because most of them re-export the libdl APIs through libc (or something else that meant it didn't need to be explicitly linked). signalapp/libsignal#274