Android ld.bfd 2.25 adds PT_INTERP, breaking injection
See this thread: https://groups.google.com/forum/#!topic/dynamorio-users/eL1__o7m4AQ
Summary:
A custom-built DR hits this assert:
$ adb shell /data/local/tmp/build_android/bin32/drrun -debug -- /data/local/tmp/hello
<Application /data/local/tmp/build_android/lib32/debug/libdynamorio.so (5744). Internal Error: DynamoRIO debug check failure: failed to find envp @/usr/local/tools/dynamorio/core/unix/os.c:720 envp != NULL
(Error occurred @-1 frags)
version 6.1.16905, custom build
0xb6cf9808 0x00000000
0xb6ce7144 0x68636769>
It's due to PT_INTERP in libdynamorio:
% readelf -l lib32/release/libdynamorio.so
INTERP 0x000114 0x00000114 0x00000114 0x00013 0x00013 R 0x1
[Requesting program interpreter: /system/bin/linker]
This is 2.25:
% android-ndk-21/bin/arm-linux-androideabi-ld --version
GNU ld (binutils-2.25-48ba864) 2.25.51.20141117
Our release packages are built with:
GNU ld (GNU Binutils) 2.24.90