<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.26.0">
</HEAD>
<BODY>
On Sat, 2011-02-19 at 17:53 -0200, Fernando Tarl&#225; Cardoso Lemos wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
Recent versions of GCC ship with a linker that doesn't add the deps
of the DSOs to the linking process. This behavior is also found in
GNU gold. This change fixes building with those linkers.

Some references:

<A HREF="http://wiki.debian.org/ToolChain/DSOLinking">http://wiki.debian.org/ToolChain/DSOLinking</A>
<A HREF="https://fedoraproject.org/wiki/UnderstandingDSOLinkChange">https://fedoraproject.org/wiki/UnderstandingDSOLinkChange</A>
---
 configure.ac |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/configure.ac b/configure.ac
index 39a3655..e22aa43 100644
--- a/configure.ac
+++ b/configure.ac
@@ -79,6 +79,9 @@ AM_CONDITIONAL(HAVE_ARC4RANDOM, test x$HAVE_ARC4RANDOM = xyes)
 
 # Function crypt() comes from the C library or the -lcrypt data encryption library
 AC_SEARCH_LIBS(crypt, crypt)
+
+# Function dl() comes from the C library or -ldl
+AC_SEARCH_LIBS([dlopen], [dl])
 #------------------------------------------------------------------------------
 
 # Checks for header files.
</PRE>
</BLOCKQUOTE>
<BR>
Libtool (we still support v 1.5), is initialized with AC_LIBTOOL_DLOPEN.<BR>
<BR>
It does check for -ldl but it does not add it to LIBS.<BR>
<BR>
configure:10876: checking for dlopen<BR>
configure:10932: gcc -o conftest -g -O2&nbsp;&nbsp; conftest.c&nbsp; &gt;&amp;5<BR>
/tmp/ccOqrtkL.o: In function `main':<BR>
/home/nadon/xorg/src/app/xdm/conftest.c:61: undefined reference to `dlopen'<BR>
collect2: ld returned 1 exit status<BR>
configure:10939: $? = 1
<BLOCKQUOTE>
<PRE>
configure:10959: result: no
configure:10964: checking for dlopen in -ldl
configure:10999: gcc -o conftest -g -O2&nbsp;&nbsp; conftest.c -ldl&nbsp;&nbsp; &gt;&amp;5
configure:11006: $? = 0
configure:11027: result: yes
</PRE>
</BLOCKQUOTE>
<BR>
<BR>
With the DSO linker, it would no longer work if I understand.<BR>
This is why libdl needs to be added to LIBS as it cannot use dlopen<BR>
indirectly from other libraries it links to. <BR>
<BR>
Have you checked there is no issue with adding this to BSD/MAC/Solaris systems?<BR>
I would guess it cannot hurt.<BR>
<BR>
Thanks for the comment in the code and placing it in the appropriate section.<BR>
Consider adding something like (needed by DSO linker) if this is correct.<BR>
It might prevent someone from removing it as duplicate code.<BR>
<BR>
Reviewed-by: Gaetan Nadon &lt;<A HREF="mailto:memsize@videotron.ca">memsize@videotron.ca</A>&gt;<BR>
<BR>
<BR>
</BODY>
</HTML>