[Buildroot] [PATCH] gnutls: Fix search path for libgcrypt

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Sat May 12 19:07:55 UTC 2012


Hello,

Le Sat, 12 May 2012 20:27:55 +0200,
"Arnout Vandecappelle (Essensium/Mind)" <arnout at mind.be> a écrit :

> In some configurations, the --with-libgcrypt-prefix configure option
> causes the default library search path to be disabled completely,
> so the compiler can't find libc etc.
> 
> Fixes http://autobuild.buildroot.net/results/52a227e8a8723b7914a37d9b3519da5fd2a2844a/
> 
> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout at mind.be>

Are you sure it fixes the problem?

Last WE, I started investigating the problem, and found out that just
compiling gnutls wasn't enough to reproduce the problem. The problem
was starting to occur when libintl was built before libgcrypt. In this
case, libgcrypt.la had -lintl in its dependencies, and in turn,
libintl.la had -lc in its dependencies. Then, libtool expands this -lc
into the full path to libc.so.

However, libc.so is a linker script which contains a reference
to /lib/libc.so.0. And unfortunately, there is a binutils bug that
makes it behave differently:

 * If a linker script is referenced using -lc, then it correctly
   prepends the paths in the linker script by the sysroot path;

 * If a linker script is referenced using its full path (as is done by
   libtool), then binutils do not prepend the paths in the linker
   script by the sysroot path, which leads the gnutls ./configure to
   try to link against /lib/libc.so.0, which obviously doesn't exist.

Gustavo has patches for binutils that solve this bug, but the problem
remains for external toolchains. I am not sure how to fix the problem
properly.

Best regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com



More information about the buildroot mailing list