All of lore.kernel.org
 help / color / mirror / Atom feed
From: Romain Naour <romain.naour@openwide.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH] libarchive: avoid some tools to build statically on shared builds
Date: Sat, 30 Aug 2014 19:34:45 +0200	[thread overview]
Message-ID: <54020B35.8050708@openwide.fr> (raw)
In-Reply-To: <5400A347.7000708@imgtec.com>

Hi Thomas, Vicente

Le 29/08/2014 17:59, Vicente Olivert Riera a ?crit :
> On 08/29/2014 04:42 PM, Thomas Petazzoni wrote:
>> Dear Vicente Olivert Riera,
>>
>> On Fri, 29 Aug 2014 14:39:07 +0100, Vicente Olivert Riera wrote:
>>> Some libarchive tools, like bsdtar, builds statically by default
>>> although libarchive itself is being built dynamically. We can force
>>> those tools to build the same way as libarchive by using the right
>>> configure options.
>>>
>>> Fixes:
>>>   
>>> http://autobuild.buildroot.net/results/b8f/b8f7a29787ea1cc5c98e4cbd5f47f257f9b306f2/
>>>
>>>
>>> Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
>>> ---
>>>   package/libarchive/libarchive.mk |   24 +++++++++++++++++++++---
>>>   1 files changed, 21 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/package/libarchive/libarchive.mk b/package/libarchive/libarchive.mk
>>> index 8c6951d..979e65c 100644
>>> --- a/package/libarchive/libarchive.mk
>>> +++ b/package/libarchive/libarchive.mk
>>> @@ -9,9 +9,27 @@ LIBARCHIVE_SITE = http://www.libarchive.org/downloads
>>>   LIBARCHIVE_INSTALL_STAGING = YES
>>>   LIBARCHIVE_LICENSE = BSD-2c, BSD-3c
>>>   LIBARCHIVE_LICENSE_FILES = COPYING
>>> -LIBARCHIVE_CONF_OPT = --without-lzma \
>>> -    $(if $(BR2_PACKAGE_LIBARCHIVE_BSDTAR),--enable-bsdtar,--disable-bsdtar) \
>>> -    $(if $(BR2_PACKAGE_LIBARCHIVE_BSDCPIO),--enable-bsdcpio,--disable-bsdcpio)
>>> +LIBARCHIVE_CONF_OPT = --without-lzma
>>> +
>>> +ifeq ($(BR2_PACKAGE_LIBARCHIVE_BSDTAR),y)
>>> +ifeq ($(BR2_PREFER_STATIC_LIB),y)
>>> +LIBARCHIVE_CONF_OPT += --enable-bsdtar=static
>>> +else
>>> +LIBARCHIVE_CONF_OPT += --enable-bsdtar=shared
>>> +endif
>>> +else
>>> +LIBARCHIVE_CONF_OPT += --disable-bsdtar
>>> +endif
>>> +
>>> +ifeq ($(BR2_PACKAGE_LIBARCHIVE_BSDCPIO),y)
>>> +ifeq ($(BR2_PREFER_STATIC_LIB),y)
>>> +LIBARCHIVE_CONF_OPT += --enable-bsdcpio=static
>>> +else
>>> +LIBARCHIVE_CONF_OPT += --enable-bsdcpio=shared
>>> +endif
>>> +else
>>> +LIBARCHIVE_CONF_OPT += --disable-bsdcpio
>>> +endif
>>>
>>>   ifeq ($(BR2_PACKAGE_ACL),y)
>>>   LIBARCHIVE_DEPENDENCIES += acl
>>
>> Could you check if it fixes
>> http://autobuild.buildroot.org/results/068/068febe05909af15f6620d7925f375c5da154bda/build-end.log
>> ?
>>
>> Thanks!
>>
>> Thomas
> 
> Confirmed, it also fixes that problem in ARM.
> 
> For MIPS, the real problem is this one:
> 
> http://git.uclibc.org/uClibc/patch/?id=b57e9640db53166c88cdac66b79a046e46b8d728
> 
> So we have two options. Apply that patch for uClibc ( another one :-( ), or just
> fix the libarchive package as I did.
> 
> For ARM, I don't know what the problem is, because that toolchain (the one used
> in the build log you told me) is not uClibc.
> 

For ARM the problem is that libarchive build system use the same variable
$(LIBS) to link the shared library and link statically bsdtar and bsdcpio.

When BR2_PREFER_STATIC_LIB is disabled, $(LIBS) contains "-lcrypto -lexpat
-llzo2 -lz"

So, when bsdtar and bsdcpio are linked "-ldl" is missing due to a dependency of
OpenSSL on libdl.

# pkg-config --libs-only-l -static openssl
-lssl -lcrypto -ldl

# pkg-config --libs-only-l openssl
-lssl -lcrypto

If there is no particular reason to build statically bsdtar and bsdcpio when
BR2_PREFER_STATIC_LIB is disabled, then I'm ok with your patch.

Tested-by: Romain Naour <romain.naour@openwide.fr>

Build tested with a custom uClibc 0.9.33 toolchain for mipsel
Build tested with the ARM glibc toolchain used by autobuilder.

Best regards,
Romain

  reply	other threads:[~2014-08-30 17:34 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-29 13:39 [Buildroot] [PATCH] libarchive: avoid some tools to build statically on shared builds Vicente Olivert Riera
2014-08-29 15:42 ` Thomas Petazzoni
2014-08-29 15:59   ` Vicente Olivert Riera
2014-08-30 17:34     ` Romain Naour [this message]
2014-09-11 20:52 ` 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=54020B35.8050708@openwide.fr \
    --to=romain.naour@openwide.fr \
    --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.