[Buildroot] [PATCH v5 11/19] infra-libtool: pass sysroot information to libtool

Arnout Vandecappelle arnout at mind.be
Wed Mar 22 21:28:27 UTC 2017



On 22-03-17 11:05, Arnout Vandecappelle wrote:
> 
> 
> On 22-03-17 10:20, Jérôme Pouiller wrote:
>> Hello,
>>
>> On Wednesday 22 March 2017 09:14:37 CET Thomas Petazzoni wrote:
>>> Hello,
>>>
>>> On Wed, 22 Mar 2017 00:57:39 +0100, Arnout Vandecappelle wrote:
>>>
>>>>> So are you sure that this feature didn't appear in libtool 2.4 ?  
>>>>
>>>>  Yeah, looks like it. E.g. speex has libtool 1.5, and it doesn't have any
>>>> sysroot support (not in configure, not in ltmain.sh).
>>>>
>>>>  Obviously, *this* patch is not affected by it - it certainly doesn't hurt
>>>>  to pass the --with-sysroot configure option. It's only patches 12+13 that
>>>>  we wouldn't be able to remove.
>>>>
>>>>  However, considering:
>>>>
>>>> - most packages install things in /usr/lib, which is already searched by
>>>> default;
>>>>
>>>> - most packages use libtool 2.4 or later,
>>>>
>>>> I think we can take the risk. The autobuilders will discover any issues,
>>>> which we can fix per package (e.g. with AUTORECONF = YES).

 By the way, this series also *fixes* issues. E.g. I couldn't reproduce
http://autobuild.buildroot.net/results/e8c6bdc314b9a8d5de303633a3abd7b7e44beb2e
after applying this series, whereas I could reproduce it before.

 Regards,
 Arnout

>>>
>>> Since I would prefer to avoid autoreconfiguring many packages, it would
>>> be useful to know how many packages are still using libtool versions
>>> earlier than 2.4.
>>
>> This is precisely what I wanted to known before to replying.
>>
>> I extracted all (or nearly all) packages existing in Buildroot. I found 269 
>> packages that use libool:
>>
>> $ grep -ho 'VERSION="[0-9.]*' */ltmain.sh  | sort | uniq -c | sort -n
>>       1 VERSION="1.5.24
>>       1 VERSION="2.2.4
>>       3 VERSION="1.5.22
>>       5 VERSION="1.5.26
>>      13 VERSION="2.2.6
>>      29 VERSION="2.4.6
>>      67 VERSION="2.4.2
> 
>  Your command isn't good enough... It skips ltmain.sh which are not in the top
> directory, and it skips the ones where VERSION isn't quoted. I got quite a few more:
> 
> $ for i in *.tar*; do tar tf $i | grep ltmain.sh | xargs -r tar -xf $i
> --to-command="grep ^VERSION= | { grep -v '[^.]2\.4' && printf ' @@$i\\r'; } | tr
> '\\n\\r' ' \\n'"; done
> 
> VERSION=1.5.26  @@CEGUI-0.6.2b.tar.gz
> VERSION="1.5.26 Debian 1.5.26-1ubuntu1"  @@LiTE-0.8.10.tar.gz
> VERSION=2.2.6  @@SDL-1.2.15.tar.gz
> VERSION=2.2.6  @@SDL2_image-2.0.1.tar.gz
> VERSION=2.2.6  @@SDL2_ttf-2.0.14.tar.gz
> VERSION=2.2.6  @@SDL_image-1.2.12.tar.gz
> VERSION=2.2.6  @@SDL_mixer-1.2.12.tar.gz
> VERSION=2.2.6  @@SDL_net-1.2.8.tar.gz
> VERSION="1.5.24 Debian 1.5.24-1ubuntu1"  @@SDL_sound-1.0.3.tar.gz
> VERSION=2.2.6  @@SDL_ttf-2.0.11.tar.gz
> VERSION="1.5.22 Debian 1.5.22-2"  @@apache-log4cxx-0.10.0.tar.gz
> VERSION=2.2.6b  @@arago-2011.09-armv5te-linux-gnueabi-sdk.tar.bz2
> VERSION=2.2.6b  @@arago-2011.09-armv7a-linux-gnueabi-sdk.tar.bz2
> VERSION="2.2.6b Debian-2.2.6b-2ubuntu1"  @@argtable2-13.tar.gz
> VERSION=2.2.10  @@axfsutils-64886703fdff6cfc64eb20fbe7d7295bbeec867b.tar.gz
> VERSION=2.2.6  @@beecrypt-4.2.1.tar.gz
> VERSION=2.2.6b  @@bind-9.11.0-P3.tar.gz
> VERSION=1.3.5  @@bind-9.11.0-P3.tar.gz
> VERSION=2.2.7a  @@binutils-2.26.1.tar.bz2
> VERSION=2.2.7a  @@binutils-2.27.tar.bz2
> VERSION=1.5.22  @@boost_1_63_0.tar.bz2
> VERSION="1.5.26 Debian 1.5.26-4"  @@celt-0.5.1.3.tar.gz
> VERSION=1.5.22  @@clamav-0.99.2.tar.gz
> VERSION="2.2.6b Debian-2.2.6b-2ubuntu1"  @@collectd-5.5.1.tar.bz2
> VERSION="1.5.26 Debian 1.5.26-1ubuntu1"  @@curlftpfs-0.9.2.tar.gz
> VERSION=2.2.6b  @@db-5.3.28.NC.tar.gz
> VERSION=2.2.6  @@db-5.3.28.NC.tar.gz
> VERSION=1.5.22  @@db-5.3.28.NC.tar.gz
> VERSION="2.2.6 Debian-2.2.6a-1ubuntu1"  @@eventlog_0.2.12.tar.gz
> VERSION="1.5.22 Debian 1.5.22-4"  @@faad2-2.7.tar.gz
> VERSION=1.4  @@fcgi-2.4.0.tar.gz
> VERSION=1.5.24  @@gamin-0.1.10.tar.gz
> VERSION=2.2.7a  @@gcc-4.9.4.tar.bz2
> VERSION=2.2.7a  @@gcc-4.9.4.tar.bz2
> VERSION=2.2.7a  @@gcc-4.9.4.tar.bz2
> VERSION=1.5.16  @@gcc-4.9.4.tar.bz2
> VERSION=2.2.7a  @@gcc-5.4.0.tar.bz2
> VERSION=2.2.7a  @@gcc-5.4.0.tar.bz2
> VERSION=2.2.7a  @@gcc-5.4.0.tar.bz2
> VERSION=1.5.16  @@gcc-5.4.0.tar.bz2
> VERSION=2.2.7a  @@gcc-6.2.0.tar.bz2
> VERSION=2.2.7a  @@gcc-6.2.0.tar.bz2
> 
> 
> VERSION=2.2.7a  @@gcc-6.2.0.tar.bz2
> 
> 
> VERSION=1.5.16  @@gcc-6.2.0.tar.bz2
> 
> 
> VERSION=2.2.7a  @@gdb-7.10.1.tar.xz
> VERSION=2.2.7a  @@gdb-7.11.1.tar.xz
> VERSION="1.5.26 Debian 1.5.26-4"  @@genpart-1.0.2.tar.bz2
> VERSION=1.4e  @@gettext-0.19.8.1.tar.xz
> VERSION="2.2.6b Debian-2.2.6b-2ubuntu3"  @@gmpc-11.8.16.tar.gz
> VERSION=2.2.6b  @@google-breakpad-7515ab13768c7edc09f0f2ec2354dc6c928239a6.tar.gz
> VERSION="2.2.6b Debian-2.2.6b-2"  @@gtk-engines-2.20.2.tar.bz2
> VERSION=1.5.2  @@ijs-0.35.tar.bz2
> VERSION=1.5.20  @@ipkg-0.99.163.tar.gz
> VERSION=1.5.22  @@jasper-1.900.1.tar.bz2
> VERSION=2.2.6b  @@json-c-0.11.tar.gz
> VERSION="1.5.26 Debian 1.5.26-4"  @@kodi-16.1-Jarvis.tar.gz
> VERSION=2.2.10  @@lame-3.99.5.tar.gz
> VERSION=2.2.6  @@libart_lgpl-2.3.21.tar.gz
> VERSION=2.2.4  @@libass-0.13.1.tar.xz
> VERSION=1.5.6  @@libcdaudio-0.99.12p2.tar.gz
> VERSION=2.2.6  @@libcddb-1.3.2.tar.bz2
> VERSION=2.2.6  @@libdaemon-0.14.tar.gz
> VERSION="2.2.6b Debian-2.2.6b-2ubuntu1"  @@libdbus-c++-0.9.0.tar.gz
> VERSION=2.2.10  @@libdmtx-0.7.4.tar.gz
> VERSION=1.5.6  @@libdnet-1.11.tar.gz
> VERSION="2.2.6b Debian-2.2.6b-2"  @@libeXosip2-3.6.0.tar.gz
> VERSION="2.2.6b Debian-2.2.6b-2ubuntu3"  @@libee-0.4.1.tar.gz
> VERSION="2.2.6b Debian-2.2.6b-2ubuntu1"  @@libesmtp-1.0.6.tar.bz2
> VERSION=1.5.6  @@libfakekey-0.1.tar.bz2
> VERSION="2.2.6b Debian-2.2.6b-2ubuntu1"  @@libgeotiff-1.4.0.tar.gz
> VERSION=1.5.26  @@libglade-2.6.4.tar.bz2
> VERSION=1.5.22  @@libhid-0.2.16.tar.gz
> VERSION=1.5.2  @@libid3tag-0.15.1b.tar.gz
> VERSION="2.2.4 Debian-2.2.4-0ubuntu4"  @@liblo-0.26.tar.gz
> VERSION=1.5.22  @@liblog4c-localtime-v1.0.tar.gz
> VERSION=1.5.2  @@libmad-0.15.1b.tar.gz
> VERSION="1.5.22 Debian 1.5.22-2"  @@libmatchbox-1.9.tar.bz2
> VERSION=1.5.22  @@libmcrypt-2.5.8.tar.gz
> VERSION="2.2.6b Debian-2.2.6b-2"  @@libmnl-1.0.3.tar.bz2
> VERSION="2.2.6b Debian-2.2.6b-2ubuntu3"  @@libmpd-11.8.17.tar.gz
> VERSION="1.5.26 Debian 1.5.26-4"  @@libmpeg2-0.5.1.tar.gz
> VERSION="2.2.6b Debian-2.2.6b-2"  @@libnetfilter_conntrack-1.0.6.tar.bz2
> VERSION="2.2.6b Debian-2.2.6b-2"  @@libnetfilter_log-1.0.1.tar.bz2
> VERSION="2.2.6b Debian-2.2.6b-2"  @@libnetfilter_log-1.0.1.tar.bz2
> VERSION="2.2.6b Debian-2.2.6b-2"  @@libnfnetlink-1.0.1.tar.bz2
> VERSION="2.2.6b Debian-2.2.6b-2"  @@libosip2-3.6.0.tar.gz
> VERSION="2.2.6 Debian-2.2.6a-4"  @@libpthread-stubs-0.3.tar.bz2
> VERSION=1.5.6  @@librsync-0.9.7.tar.gz
> VERSION="1.5.22 Debian 1.5.22-2"  @@libsexy-0.1.11.tar.gz
> VERSION=1.5.14  @@libsvg-0.1.4.tar.gz
> VERSION=1.5.14  @@libsvg-cairo-0.1.6.tar.gz
> VERSION=2.2.6  @@libtheora-1.1.1.tar.xz
> VERSION=1.4.3  @@libunwind-1.1.tar.gz
> VERSION=2.2.10  @@lzop-1.03.tar.gz
> VERSION=1.5.2  @@madplay-0.15.2b.tar.gz
> VERSION=1.5.6  @@mb-applet-startup-monitor-0.1.tar.bz2
> VERSION="2.2.4 Debian-2.2.4-0ubuntu4"  @@mcrypt-2.6.8.tar.gz
> VERSION=2.2.6b  @@msgpack-0.5.4.tar.gz
> VERSION=2.2.6  @@mysql-5.1.73.tar.gz
> VERSION=1.5.8  @@ngrep-1.45.tar.bz2
> VERSION=1.5.26  @@php-7.1.3.tar.xz
> VERSION=1.5.22  @@pjproject-2.4.5.tar.bz2
> VERSION=2.2.6  @@popt-1.16.tar.gz
> VERSION=1.3.4  @@privoxy-3.0.26-stable-src.tar.gz
> VERSION="2.2.6 Debian-2.2.6a-1ubuntu1"  @@proftpd-1.3.5d.tar.gz
> VERSION=1.5.26  @@proftpd-1.3.5d.tar.gz
> VERSION="2.2.6 Debian-2.2.6a-1ubuntu1"  @@proftpd-1.3.5d.tar.gz
> VERSION=2.2.6  @@pthsem_2.0.8.tar.gz
> VERSION=2.2.6  @@qt-everywhere-opensource-src-4.8.7.tar.gz
> VERSION=2.2.7a  @@rustc-1.10.0-src.tar.gz
> VERSION=1.5.6  @@sidplay-libs-2.1.1.tar.gz
> VERSION=1.5.6  @@sidplay-libs-2.1.1.tar.gz
> VERSION=1.5.6  @@sidplay-libs-2.1.1.tar.gz
> VERSION=1.4  @@sidplay-libs-2.1.1.tar.gz
> VERSION=1.5.6  @@sidplay-libs-2.1.1.tar.gz
> VERSION=1.5.6  @@sidplay-libs-2.1.1.tar.gz
> VERSION="2.2.6b Debian-2.2.6b-2ubuntu1"  @@sofia-sip-1.12.11.tar.gz
> VERSION="1.5.22 Debian 1.5.22-4"  @@speex-1.2rc1.tar.gz
> VERSION=2.2.6  @@sqlcipher-v3.2.0.tar.gz
> VERSION=1.5.6  @@startup-notification-0.9.tar.gz
> VERSION=1.5.22  @@sysfsutils-2.1.0.tar.gz
> VERSION=1.5.22  @@szip-2.1.tar.gz
> VERSION=1.5.24  @@tn5250-0.17.4.tar.gz
> VERSION=1.5.6  @@ucl-1.03.tar.gz
> VERSION="2.2.6b Debian-2.2.6b-2ubuntu1"  @@unixODBC-2.3.2.tar.gz
> VERSION="2.2.6 Debian-2.2.6a-4"  @@vorbis-tools-1.4.0.tar.gz
> VERSION=1.4.3  @@xcursor-transparent-theme-0.1.1.tar.gz
> VERSION="1.5.26 Debian 1.5.26-4"  @@xf86-input-tslib-0.0.6.tar.bz2
> VERSION="2.2.6b Debian-2.2.6b-2ubuntu1"  @@xinput_calibrator-0.7.5.tar.gz
> 
>  That's 109 tarballs with some older libtool.
> 
>  Note that this just iterates over the tarballs that I have in my download
> directory, there may be some old versions of packages in there. Anyway, I think
> 109 out of the 2150 tarballs in that directory is still extremely small.
> 
>  Note also that in many of these, the ltmain will be in some subdirectory
> containing bundled source that we don't even use.
> 
>  Note, finally, that there are also quite a few host-only packages in there
> (e.g. gcc, but that one is special because it also builds stuff for the target.
> It doesn't seem to install .la files, however).
> 
> 
>> There 23 packages that use libtool < 2.4:
>>   - bellagio
>>   - celt051
>>   - dbus-cpp
>>   - eventlog
>>   - gtk2-engines
>>   - lesstif
>>   - libargtable2
>>   - libesmtp
>>   - liblo
>>   - libmhash
>>   - libnetfilter_conntrack
>>   - libnetfilter_log
>>   - libnfnetlink
>>   - libpthread-stubs
>>   - lite
>>   - log4cxx
>>   - matchbox-lib
>>   - metacity
>>   - sdl_sound
>>   - sylpheed
>>   - xapp_xinput-calibrator
>>   - xdriver_xf86-input-tslib
>>   - xdriver_xf86-video-imx
>>
>> 4 of them already call autoreconf: bellagio, dbus-cpp, libnetfilter_log, 
>> libnfnetlink.
>>
>> I am going to create a configuration with all of these packages.
> 
>  That's not necessarily sufficient: the generated .la file could be wrong, so
> you have to check if packages that use it are still working correctly.
> Alternatively, just check all the .la files.
> 
>  Regards,
>  Arnout
> 

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
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:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF



More information about the buildroot mailing list