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
next prev parent 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox