aboutsummaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2018-04-05 17:49:39 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2018-04-05 10:49:39 -0700
commit520a02b6fa643372b076ebaa6a6a10dc3cc7cb46 (patch)
tree4451244b5857ae2fefa319ef99eeafc74a5f387d /config
parentda0c07b20f79549eb8b1f1fe11ac5639f9083e49 (diff)
downloadgcc-520a02b6fa643372b076ebaa6a6a10dc3cc7cb46.zip
gcc-520a02b6fa643372b076ebaa6a6a10dc3cc7cb46.tar.gz
gcc-520a02b6fa643372b076ebaa6a6a10dc3cc7cb46.tar.bz2
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
Diffstat (limited to 'config')
-rw-r--r--config/ChangeLog5
-rw-r--r--config/plugins.m42
2 files changed, 6 insertions, 1 deletions
diff --git a/config/ChangeLog b/config/ChangeLog
index 746a0a0..18f6507 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,3 +1,8 @@
+2018-04-05 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR gas/22318
+ * plugins.m4 (AC_PLUGINS): Use dlsym to check if libdl is needed.
+
2018-02-14 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
PR target/84148
diff --git a/config/plugins.m4 b/config/plugins.m4
index 513c690..c6acebc 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
])