__dl_iterate_phdr includes main application binary in list

After building uclibc-1.0.31 with AddressSanitizer enabled (gcc7.3 and 8.2), asan complains at runtime that it's not the first library in the so-list. With a breakpoint on AsanCheckDynamicRTPrereqs which calls __dl_iterate_phdr, I see the first module that uClibc returns has info->libname = "/home/user/myapp", while on glibc-2.27, libname is an empty string. ASAN depends on seeing this empty string. Should __dl_iterate_phdr return an empty string here, or is there an alternative to get asan-enabled uClibc toolchains ? Thanks.

FWIW, the patch I am currently using is attached. Bogdan On Fri, Mar 22, 2019 at 11:38 AM Bogdan Harjoc <harjoc@gmail.com> wrote:
After building uclibc-1.0.31 with AddressSanitizer enabled (gcc7.3 and 8.2), asan complains at runtime that it's not the first library in the so-list.
With a breakpoint on AsanCheckDynamicRTPrereqs which calls __dl_iterate_phdr, I see the first module that uClibc returns has info->libname = "/home/user/myapp", while on glibc-2.27, libname is an empty string. ASAN depends on seeing this empty string.
Should __dl_iterate_phdr return an empty string here, or is there an alternative to get asan-enabled uClibc toolchains ?
Thanks.
participants (1)
-
Bogdan Harjoc