[Buildroot] [PATCH v2] support/dependencies: ensure we have 'file' on the host

Yann E. MORIN yann.morin.1998 at free.fr
Mon Dec 26 09:17:28 UTC 2016


Arnout, All,

On 2016-12-26 10:06 +0100, Arnout Vandecappelle spake thusly:
> On 25-12-16 17:14, Yann E. MORIN wrote:
> > Recently, the libtool.m4 autoconf macros that are bundled with the
> 
>  I'm a little bit confused here... Here, you talk about the libtool.m4 autoconf
> macro (which is only used when AUTORECONF = YES)...
> 
> > libtool package started using '/usr/bin/file' to determine the type of
> > library that is generated by the toolchain. Packages that use this
> > macro will fail in a rather dramatic way when /usr/bin/file is not
> > present on the host: the package will still build but no shared
> > library is generated, which in turn may cause build failures in other
> > packages that link with it.
> > 
> > For example, libpng's configure determines that it is not possible to
> 
>  ... but here you talk about libpng, which isn't autoreconf'ed.

Eh! I copy-pasted your own suggestion for a commit log! ;-)

And we don't need to autoreconf a package for it to use that recent
version of libtool, for example if upstream has already upgraded by
themselves.

>  To clarify this, I think the first sentence should be
> 
> Recently, the autoconf macros for libtool started using '/usr/bin/file' to
> determine the type of library that is generated by the toolchain. Packages that
> use this recent version of the libtool autoconf macros will fail in a rather
> dramatic way when /usr/bin/file is not present on the host: ...
> 
> > build a shared library on MIPS64 because the expected output from 'file'
> > is not present. Therefore, only a static libpng.a is built. Later,
> > bandwithd links with -lpng but it doesn't use the pkg-config's
> > Private-Libs (because it's not linking statically) and it doesn't have
> > access to the NEEDED reference from the shared library. Therefore, it
> > doesn't link with zlib and fails with
> > 
> >     pngrutil.c:(.text+0x55c): undefined reference to `inflate'
> > 
> > We cant use host-file because it is itself an autotools package and is
> > itself using libtool, so this would be a chicken-n-egg problem. Besides,
> > the libtool script really wants to call /usr/bin/file, so it would not
> > even find our host-file anyway.
> > 
> > So, just require that 'file' is present on the host.
> > 
> > Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
> > Cc: Arnout Vandecappelle <arnout at mind.be>
> > Cc: Baruch Siach <baruch at tkos.co.il>
> > 
> > ---
> > Changs v1 -> v2;
> >   - use better commit log by Arnout  (Arnout)
> >   - update manual  (Baruch)
> > ---
> >  docs/manual/prerequisite.txt         | 1 +
> >  support/dependencies/dependencies.sh | 4 ++++
> >  2 files changed, 5 insertions(+)
> > 
> > diff --git a/docs/manual/prerequisite.txt b/docs/manual/prerequisite.txt
> > index 7edad1f..ce54c9c 100644
> > --- a/docs/manual/prerequisite.txt
> > +++ b/docs/manual/prerequisite.txt
> > @@ -35,6 +35,7 @@ between distributions).
> >  ** +python+ (version 2.6 or any later)
> >  ** +unzip+
> >  ** +rsync+
> > +** +file+
> >  
> >  * Source fetching tools:
> >  ** +wget+
> > diff --git a/support/dependencies/dependencies.sh b/support/dependencies/dependencies.sh
> > index bfd6596..1ec731d 100755
> > --- a/support/dependencies/dependencies.sh
> > +++ b/support/dependencies/dependencies.sh
> > @@ -69,6 +69,10 @@ check_prog_host "which"
> >  # Verify that sed is installed
> >  check_prog_host "sed"
> >  
> > +# 'file' must be present, otherwise libtool fails in incomprehensible
> > +# ways.
> > +check_prog_host "file"
> 
>  Maybe we should check explicitly for /usr/bin/file instead.

Hmm.. Right.

Regards,
Yann E. MORIN.

>  Regards,
>  Arnout
> 
> > +
> >  # Check make
> >  MAKE=$(which make 2> /dev/null)
> >  if [ -z "$MAKE" ] ; then
> > 
> 
> -- 
> 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

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'



More information about the buildroot mailing list