[Buildroot] [PATCH v2] support/dependencies: ensure we have 'file' on the host
Arnout Vandecappelle
arnout at mind.be
Mon Dec 26 09:06:08 UTC 2016
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.
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.
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
More information about the buildroot
mailing list