libctf: fix ELF-in-BFD checks in the presence of ASAN
authorNick Alcock <nick.alcock@oracle.com>
Thu, 25 Mar 2021 16:32:46 +0000 (16:32 +0000)
committerNick Alcock <nick.alcock@oracle.com>
Thu, 25 Mar 2021 16:32:51 +0000 (16:32 +0000)
commit8f7b22ea2a95ccab6aeaddcdee7472dbdbcfb4d3
tree99146cfc862fde4ea37024b82f971122e860414b
parent15131809c235047c94387ef9aff207117191ed0b
libctf: fix ELF-in-BFD checks in the presence of ASAN

The address sanitizer contains a redirector that captures dlopen calls,
so checks for dlopen with AC_SEARCH_LIBS will always conclude that
dlopen is present when the sanitizer is on.  This means it won't add
-ldl to LIBS even if needed, and the immediately-following attempt to
actually link with -lbfd will fail because libbfd also needs dlsym,
which ASAN does *not* contain a redirector for.

If we check for dlsym instead of dlopen, the check works whether ASAN is
on or off.  (bfd uses both in close proximity: if it needs one, it will
always need the other.)

libctf/ChangeLog
2021-03-25  Nick Alcock  <nick.alcock@oracle.com>

* configure.ac: Check for dlsym, not dlopen.
* configure: Regenerate.
libctf/ChangeLog
libctf/configure
libctf/configure.ac