[OE-core] [PATCH 3/3] gnutls: link against 'dl' library

Richard Purdie richard.purdie at linuxfoundation.org
Thu Jun 2 09:38:33 UTC 2011


On Thu, 2011-06-02 at 08:31 +0200, Martin Jansa wrote:
> what do you have in configlog for LIBDL?
> 
> here it's all empty
> LIBDL=''
> LIBDL_PREFIX=''
> LTLIBDL=''
> 
> if I add 
> +             --with-libdl-prefix=${STAGING_DIR_HOST}${prefix} \
> +             --with-libpthread-prefix=${STAGING_DIR_HOST}${prefix} \
> to EXTRA_OE_CONF (we already have couple of --with-*-prefix there) it's
> found correctly (and this is at least better workarround then forcing
> -ldl directly to LDFLAGS):
> LIBDL='/OE/shr-core/tmp/sysroots/om-gta02/usr/lib/libdl.so'
> LIBDL_PREFIX='/OE/shr-core/tmp/sysroots/om-gta02/usr'
> LTLIBDL='-L/OE/shr-core/tmp/sysroots/om-gta02/usr/lib -ldl'
> 
> same problem is with libpthread..
> 
> maybe their m4/lib-link.m4 does something wrong in
> AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
> [
>   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
>   AC_REQUIRE([AC_LIB_RPATH])

I just looked at the code in lib/configure and concluded that its just
luck whether it figures out the correct values or does something really
nasty. Its poking about ${libdir} for this stuff so you end up with
something like the following combinations:

a) 64 bit system with 64 bit libs in /usr/lib64 and no 32 bit libs:
     Finds no -ldl

   Something else may or may not link it indirectly so the build may or 
   may not work.

b) 64 bit system with 64 bit libs in /usr/lib64 and 32 bit libs in /usr/lib, building for 32 bit:
     Finds a -ldl which "works".

   Things appear to work.

c) Other variations


The correct fix would appear to be to set the paths specifically using
the options Martin mentions above.

Cheers,

Richard





More information about the Openembedded-core mailing list