On Wed, Oct 18, 2017 at 5:25 PM, H.J. Lu <hjl.to...@gmail.com> wrote: > config/plugins.m4 has > > if test "$plugins" = "yes"; then > AC_SEARCH_LIBS([dlopen], [dl]) > fi > > Plugin uses dlsym, but libasan.so only intercepts dlopen, not dlsym: > > [hjl@gnu-tools-1 binutils-text]$ nm -D /lib64/libasan.so.4| grep " dl" > 0000000000038580 W dlclose > U dl_iterate_phdr > 000000000004dc50 W dlopen > U dlsym > U dlvsym > [hjl@gnu-tools-1 binutils-text]$ > > Testing dlopen for libdl leads to false negative when -fsanitize=address > is used. It results in link failure: > > ../bfd/.libs/libbfd.a(plugin.o): undefined reference to symbol > 'dlsym@@GLIBC_2.16' > > dlsym should be used to check if libdl is needed for plugin. > > OK for master? > > H.J. > --- > bfd/ > > PR gas/22318 > * configure: Regenerated. > > binutils/ > > PR gas/22318 > * configure: Regenerated. > > config/ > > * plugins.m4 (AC_PLUGINS): Use dlsym to check if libdl is needed. > > gas/ > > PR gas/22318 > * configure: Regenerated. > > gprof/ > > PR gas/22318 > * configure: Regenerated. > > ld/ > > PR gas/22318 > * configure: Regenerated.
> diff --git a/config/plugins.m4 b/config/plugins.m4 > index 513c690e1b..c6acebc1ca 100644 > --- a/config/plugins.m4 > +++ b/config/plugins.m4 > @@ -16,6 +16,6 @@ AC_DEFUN([AC_PLUGINS], > [plugins=$maybe_plugins] > ) > if test "$plugins" = "yes"; then > - AC_SEARCH_LIBS([dlopen], [dl]) > + AC_SEARCH_LIBS([dlsym], [dl]) > fi > ]) If there are no objections, I will check into binutils master branch this week. -- H.J.