From 520a02b6fa643372b076ebaa6a6a10dc3cc7cb46 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Thu, 5 Apr 2018 17:49:39 +0000 Subject: [PATCH] Use dlsym to check if libdl is needed for plugin 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. PR gas/22318 * plugins.m4 (AC_PLUGINS): Use dlsym to check if libdl is needed. From-SVN: r259140 --- config/ChangeLog | 5 +++++ config/plugins.m4 | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/config/ChangeLog b/config/ChangeLog index 746a0a01ba0..18f65078c42 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,8 @@ +2018-04-05 H.J. Lu + + PR gas/22318 + * plugins.m4 (AC_PLUGINS): Use dlsym to check if libdl is needed. + 2018-02-14 Igor Tsimbalist PR target/84148 diff --git a/config/plugins.m4 b/config/plugins.m4 index 513c690e1b5..c6acebc1ca4 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 ]) -- 2.30.2