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

Mike Crowe mac at mcrowe.com
Wed Feb 8 12:29:00 UTC 2012


On Tue, Feb 07, 2012 at 02:47:28PM -0800, Khem Raj wrote:
> On (07/02/12 10:31), Mike Crowe wrote:
> > 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?
> 
> can you just try oe_runmake DESTDIR=${D} install ?
> you might need to do some extra bits in there but that can be done
> additionally

I replaced the whole of do_install with your suggestion and my package
now configures and compiles successfully.

I'll try a complete build from clean to see if the change causes any
other problems for me. If it does not should I submit a patch for this
change?

Thanks for your help.

Mike.

> > > +	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.
> > 
> > _______________________________________________
> > Openembedded-core mailing list
> > Openembedded-core at lists.openembedded.org
> > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core




More information about the Openembedded-core mailing list