libtool-cross: Upbreak and actually use more of it
PATCH 1/1 libtool-cross: Upbreak and actually use more of it
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.
The path ltmain.sh was installed to was incorrect and this is fixed.
We also now install all the libtool m4 macros.
---
meta/recipes-devtools/libtool/libtool-cross_2.4.bb +16 -12
@@ -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/ + 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} }
Dear Richard,
Am Donnerstag, den 17.11.2011, 00:13 +0000 schrieb Richard Purdie:
unfortunately I could not find the meaning of upbreak here.
Quoted 2 lines
We should be using libtool-cross for cross compiling but were not.
Is that just a cosmetic thing or did packages break?
Quoted 14 lines
This patch sets datadir so libtoolize ends up containing correct paths. It then installs libtoolize.
The path
ltmain.shwas installed to was incorrect and this is fixed.We also now install all the libtool m4 macros.
Signed-off-by Richard Purdie <[email protected]>---
meta/recipes-devtools/libtool/libtool-cross_2.4.bb +0
-0
meta/recipes-devtools/libtool/libtool-cross_2.4.bb line 3
Quoted 4 lines
meta/recipes-devtools/libtool/libtool-cross_2.4.bb +1
-1@@ -1,10 +1,13 @@ require libtool-${PV}.inc -PR = "r5" +PR = "r7"
Increase just by one?
meta/recipes-devtools/libtool/libtool-cross_2.4.bb line 8
Quoted 5 lines
meta/recipes-devtools/libtool/libtool-cross_2.4.bb +1
-0PACKAGES = "" SRC_URI += "file://prefix.patch" SRC_URI += "file://fixinstall.patch" +target_datadir := "${datadir}"
Is not already defined this way in bitbake.conf?
$ git grep target_d ./meta/conf/bitbake.conf
meta/conf/bitbake.conf:target_datadir := "${datadir}"Quoted 28 lines
meta/recipes-devtools/libtool/libtool-cross_2.4.bb +12
-9+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/ + 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/
meta/recipes-devtools/libtool/libtool-cross_2.4.bb do_configure_prepend () { · line 36
Quoted 10 lines
meta/recipes-devtools/libtool/libtool-cross_2.4.bb +2
-2} 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} }
Thanks,
Paul
Quoted 4 lines · Paul Menzel
Dear Richard,
Am Donnerstag, den 17.11.2011, 00:13 +0000 schrieb Richard Purdie:unfortunately I could not find the meaning of upbreak here.
Sorry, its a typo and should be "unbreak"
Quoted 5 lines
Quoted 3 lines
We should be using libtool-cross for cross compiling but were not.
Is that just a cosmetic thing or did packages break?
Its currently harmless but when I applied my other libtool changes, things did break.
Quoted 16 lines
Quoted 16 lines
This patch sets datadir so libtoolize ends up containing correct paths. It then installs libtoolize.
The path
ltmain.shwas installed to was incorrect and this is fixed.We also now install all the libtool m4 macros.
Signed-off-by Richard Purdie <[email protected]>---
meta/recipes-devtools/libtool/libtool-cross_2.4.bb +0
-0@@ -1,10 +1,13 @@ require libtool-${PV}.inc
Quoted 4 lines
meta/recipes-devtools/libtool/libtool-cross_2.4.bb line 3
Quoted 2 lines
meta/recipes-devtools/libtool/libtool-cross_2.4.bb +1
-1-PR = "r5" +PR = "r7"Increase just by one?
Ideally I guess, yes.
Quoted 10 lines
meta/recipes-devtools/libtool/libtool-cross_2.4.bb line 8
Quoted 5 lines
meta/recipes-devtools/libtool/libtool-cross_2.4.bb +1
-0PACKAGES = "" SRC_URI += "file://prefix.patch" SRC_URI += "file://fixinstall.patch" +target_datadir := "${datadir}"Is not already defined this way in
bitbake.conf?$ git grep target_d ./meta/conf/bitbake.conf meta/conf/bitbake.conf:target_datadir := "${datadir}"
Good catch, I'd forgotten we'd saved this already.
Quoted 1 line
meta/recipes-devtools/libtool/libtool-cross_2.4.bb line 9
Quoted 1 line
meta/recipes-devtools/libtool/libtool-cross_2.4.bb +1
-0+datadir = "${STAGING_DIR_TARGET}${target_datad
Cheers,
Richard
Quoted 3 lines · Richard Purdie
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)
Quoted 36 lines
The path
ltmain.shwas installed to was incorrect and this is fixed.We also now install all the libtool m4 macros.
Signed-off-by Richard Purdie <[email protected]>---
meta/recipes-devtools/libtool/libtool-cross_2.4.bb +4
-8@@ -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/
meta/recipes-devtools/libtool/libtool-cross_2.4.bb do_configure_prepend () { · line 26
Quoted 10 lines
meta/recipes-devtools/libtool/libtool-cross_2.4.bb +8
-2- 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?
meta/recipes-devtools/libtool/libtool-cross_2.4.bb do_configure_prepend () { · line 36
Quoted 12 lines
meta/recipes-devtools/libtool/libtool-cross_2.4.bb +4
-2+ 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.
Quoted 62 lines · Mike Crowe
Quoted 3 lines · Richard Purdie
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)
Quoted 36 lines
The path
ltmain.shwas installed to was incorrect and this is fixed.We also now install all the libtool m4 macros.
Signed-off-by Richard Purdie <[email protected]>---
meta/recipes-devtools/libtool/libtool-cross_2.4.bb +4
-8@@ -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/meta/recipes-devtools/libtool/libtool-cross_2.4.bb do_configure_prepend () { · line 26
Quoted 10 lines
meta/recipes-devtools/libtool/libtool-cross_2.4.bb +8
-2- 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/
Quoted 7 lines
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
Quoted 22 lines
meta/recipes-devtools/libtool/libtool-cross_2.4.bb do_configure_prepend () { · line 36
Quoted 13 lines
meta/recipes-devtools/libtool/libtool-cross_2.4.bb +4
-2+ 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
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Signature · 1 line
-Khem
Quoted 71 lines · Khem Raj
Quoted 62 lines · Mike Crowe
Quoted 3 lines · Richard Purdie
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)
Quoted 36 lines
The path
ltmain.shwas installed to was incorrect and this is fixed.We also now install all the libtool m4 macros.
Signed-off-by Richard Purdie <[email protected]>---
meta/recipes-devtools/libtool/libtool-cross_2.4.bb +4
-8@@ -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/meta/recipes-devtools/libtool/libtool-cross_2.4.bb do_configure_prepend () { · line 26
Quoted 10 lines
meta/recipes-devtools/libtool/libtool-cross_2.4.bb +8
-2- 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/Quoted 7 lines
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?
Quoted 3 lines
can you just try
oe_runmakeDESTDIR=${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.
Quoted 21 lines
Quoted 21 lines
meta/recipes-devtools/libtool/libtool-cross_2.4.bb do_configure_prepend () { · line 36
Quoted 12 lines
meta/recipes-devtools/libtool/libtool-cross_2.4.bb +4
-2+ 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
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core