[OE-core] [PATCH] libtool-cross: Upbreak and actually use more of it

Mike Crowe mac at mcrowe.com
Tue Feb 7 10:31:41 UTC 2012


On Thu, Nov 17, 2011 at 12:13:25AM +0000, Richard Purdie wrote:
> We should be using libtool-cross for cross compiling but
> were not. This patch sets datadir so libtoolize ends up
> containing correct paths. It then installs libtoolize.

I have a recipe that no longer works after this (or perhaps the other
changes Richard mentions later in the thread.) It's a pretty
straightforward recipe that inherits from autotools. Judging by the
number of warnings from autoconf the package was probably expecting an
older version of automake/autoconf. The configure task fails with:

 libtoolize: `config/compile' not found in `/home/mac/src/oe/build/tmp-eglibc/sysroots/panther/usr/share/libtool'

(continued inside patch)

> The path ltmain.sh was installed to was incorrect and this is fixed.
> 
> We also now install all the libtool m4 macros.
> 
> Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
> ---
> diff --git a/meta/recipes-devtools/libtool/libtool-cross_2.4.bb b/meta/recipes-devtools/libtool/libtool-cross_2.4.bb
> index 596528a..4e6e3f2 100644
> --- a/meta/recipes-devtools/libtool/libtool-cross_2.4.bb
> +++ b/meta/recipes-devtools/libtool/libtool-cross_2.4.bb
> @@ -1,10 +1,13 @@
>  require libtool-${PV}.inc
>  
> -PR = "r5"
> +PR = "r7"
>  PACKAGES = ""
>  SRC_URI += "file://prefix.patch"
>  SRC_URI += "file://fixinstall.patch"
>  
> +target_datadir := "${datadir}"
> +datadir = "${STAGING_DIR_TARGET}${target_datadir}"
> +
>  do_configure_prepend () {
>  	# Remove any existing libtool m4 since old stale versions would break
>  	# any upgrade
> @@ -13,20 +16,21 @@ do_configure_prepend () {
>  }
>  
>  do_install () {
> -	install -d ${D}${bindir}/
> -	install -m 0755 ${HOST_SYS}-libtool ${D}${bindir}/${HOST_SYS}-libtool
> -	install -d ${D}${datadir}/libtool/
> -	install -d ${D}${datadir}/aclocal/
> -	install -c ${S}/libltdl/config/config.guess ${D}${datadir}/libtool/
> -	install -c ${S}/libltdl/config/config.sub ${D}${datadir}/libtool/
> -	install -c -m 0644 ${S}/libltdl/config/ltmain.sh ${D}${datadir}/libtool/
> -	install -c -m 0644 ${S}/libltdl/m4/libtool.m4 ${D}${datadir}/aclocal/
> -	install -c -m 0644 ${S}/libltdl/m4/ltdl.m4 ${D}${datadir}/aclocal/
> +	install -d ${D}${bindir_crossscripts}/
> +	install -m 0755 ${HOST_SYS}-libtool ${D}${bindir_crossscripts}/${HOST_SYS}-libtool
> +	install -d ${D}${bindir_crossscripts}/
> +	install -m 0755 libtoolize ${D}${bindir_crossscripts}/
> +	install -d ${D}${target_datadir}/libtool/config/
> +	install -d ${D}${target_datadir}/aclocal/
> +	install -c ${S}/libltdl/config/config.guess ${D}${target_datadir}/libtool/
> +	install -c ${S}/libltdl/config/config.sub ${D}${target_datadir}/libtool/

If I also install "compile", "depcomp" and "missing" here then this
solves the immediate problem but then it looks like I also need to add
"COPYING.LIB" and probably many other files to
${D}{$target_datadir}/libtool/libltdl too which leads me to think that
I'm swimming against the tide and might be going about this the wrong
way. Is this the correct approach? If so why not just call "make
install" rather than installing everything by hand?

> +	install -c -m 0644 ${S}/libltdl/config/ltmain.sh ${D}${target_datadir}/libtool/config/
> +	install -c -m 0644 ${S}/libltdl/m4/*.m4 ${D}${target_datadir}/aclocal/
>  }
>  
>  SYSROOT_PREPROCESS_FUNCS += "libtoolcross_sysroot_preprocess"
>  
>  libtoolcross_sysroot_preprocess () {
> -	install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}
> -	install -m 755 ${D}${bindir}/${HOST_SYS}-libtool ${SYSROOT_DESTDIR}${bindir_crossscripts}/${HOST_SYS}-libtool
> +	sysroot_stage_dir ${D}${bindir_crossscripts} ${SYSROOT_DESTDIR}${bindir_crossscripts}
> +	sysroot_stage_dir ${D}${target_datadir} ${SYSROOT_DESTDIR}${target_datadir}
>  }

TIA

Mike.




More information about the Openembedded-core mailing list