All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnout Vandecappelle <arnout@mind.be>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH] gnutls: Fix search path for libgcrypt
Date: Sat, 12 May 2012 22:07:16 +0200	[thread overview]
Message-ID: <4FAEC2F4.1060802@mind.be> (raw)
In-Reply-To: <20120512210755.672039a4@skate>

On 05/12/12 21:07, Thomas Petazzoni wrote:
> Le Sat, 12 May 2012 20:27:55 +0200,
> "Arnout Vandecappelle (Essensium/Mind)"<arnout@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.
>> >  
>> >  Fixeshttp://autobuild.buildroot.net/results/52a227e8a8723b7914a37d9b3519da5fd2a2844a/
>> >  
>> >  Signed-off-by: Arnout Vandecappelle (Essensium/Mind)<arnout@mind.be>
> Are you sure it fixes the problem?
  Alas, no.  I built it and it failed.  Then I patched it, rebuilt it and it worked.
I guess make decided to reorder things for whatever reason.

> 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.
  After the patch, that doesn't seem to make a difference for me.
I did the following after a successful build:
make libgcrypt-dirclean gnutls-dirclean; make

  That succeeded.  Then I did
rm -f {staging,target}/{usr/,}lib/*intl*
rm -rf build/gettext*
make libgpg-error-dirclean libgcrypt-dirclean gnutls-dirclean
make gnutls; make

  That still succeeded.  (It looks like libgpg-error is missing a
dependency on gettext/libintl, though.)  And finally, just to
be sure:
rm -f {staging,target}/{usr/,}lib/*intl*
rm -rf build/gettext*
make libgpg-error-dirclean libgcrypt-dirclean gnutls-dirclean
make libintl; make

  Also succeeded. That pretty much covers the libintl dependency,
right?

  This is BTW from one of the broken configs reported in the
autobuild, from which I also had to remove some more broken
packages (ltp-testsuite, ndisc6).  It's a generic powerpc internal
toolchain.


>
> 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.
  A heavy-handed approach would be to generate the patched
binutils for known-to-be-faulty external toolchains.

  A simple approach would be to use the patched binutils on the test
machines :-)

  BTW, how come this problem doesn't manifest itself more often?
There are many packages with -lintl in their .la dependencies, so all
of them should fail regularly, no?

  Regards,
  Arnout

-- 
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

  reply	other threads:[~2012-05-12 20:07 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-12 18:27 [Buildroot] [PATCH] gnutls: Fix search path for libgcrypt Arnout Vandecappelle
2012-05-12 19:07 ` Thomas Petazzoni
2012-05-12 20:07   ` Arnout Vandecappelle [this message]
2012-05-13  7:02     ` Thomas Petazzoni
2012-05-14 19:14     ` Peter Korsgaard
2012-05-15  6:27       ` Arnout Vandecappelle
2012-05-15  7:44         ` Peter Korsgaard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4FAEC2F4.1060802@mind.be \
    --to=arnout@mind.be \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.