Subject: | Tests that use run_perl() fail on Android |
Howdy!
t/50-external.t and t/41-threads-teardown.t fail on Android when perl is compiled with -Duseshrplib (that is, when there is a libperl.so around that the perl binary needs to link to) because run_perl() in both of those files localized %ENV, which removes LD_LIBRARY_PATH, and that's vital on Android.
Technically this might be an issue with the perl build on Android, but it would be great if you could add an except when $^O eq 'android' to restore LD_LIBRARY_PATH.
The problem on android is that the linker will only look in two hardcoded locations for libraries: /vendor/lib and /system/lib, both of which are only writeable by root, so putting stuff in there is really inadvisable, and likely impossible for the vast majority of users. That being said, the linker also looks at whatever LD_LIBRARY_PATH points to, so native builds on Android just set that and go on their merry way.