[Libguestfs] [PATCH nbdkit] build: Use dlsym as sentinel function for -ldl.
Eric Blake
eblake at redhat.com
Wed Apr 24 20:52:49 UTC 2019
On 4/24/19 3:42 PM, Richard W.M. Jones wrote:
> When testing which “dl library” we must use for dl* symbols, autoconf
> runs a test similar to:
>
> $ cat conftest.c
> char dlopen ();
> int main () { return dlopen (); }
> $ gcc -o conftest $CFLAGS conftest.c [try various -ldl options here]
>
> When using ‘CFLAGS="-fsanitize=address"’ this succeeds even if no dl
> libraries are used at all, since it appears that using this option
> causes dlopen to be included in the final binary implicitly. This
> causes configure to set DL_LIBS='', but unfortunately dlsym is not
> included implicitly and so linking fails.
>
> Although I believe this is a bug in GCC 9, as a workaround use dlsym
> as the sentinel function instead.
Not just gcc 9; I reproduced it on gcc 8 in Fedora 29. But I agree that
it is odd that the use of -fsanitize=address is sufficient to pull in a
subset of symbols that you normally only get from the explicit library
link line. At any rate,
>
> The new output from ‘./configure CFLAGS="-fsanitize=address"’ is:
>
> checking for library containing dlsym... -ldl
> [...]
> checking for dladdr... yes
>
> See also: https://bugzilla.redhat.com/show_bug.cgi?id=1702761
> ---
> configure.ac | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
this change looks correct. ACK.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 484 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20190424/a2627273/attachment.sig>
More information about the Libguestfs
mailing list