[OE-core] [PATCH] libxml-parser-perl_2.41.bb: fix MakeMaker issues with using wrong CC/LD/etc

Saul Wold sgw at linux.intel.com
Wed Jul 4 04:57:34 UTC 2012


On 07/03/2012 12:21 PM, Matthew McClintock wrote:
> MakeMaker has a bug where it does not propagate CC/LD/etc information
> down to subproject it generates Makefiles for... this recipe has has an
> Expat subproject which has issues building if we are using sstate-cache
> and it will reference the old sysroots and be unable to build properly.
> There is an upstream MakeMaker bug for this issue but we can work around
> it by fixing up the Makefiles for now
>
> See:
> https://rt.cpan.org/Public/Bug/Display.html?id=28632
>
> Signed-off-by: Matthew McClintock<msm at freescale.com>
> ---
>   meta/recipes-devtools/perl/libxml-parser-perl_2.41.bb |   11 +++++++++--
>   1 file changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/meta/recipes-devtools/perl/libxml-parser-perl_2.41.bb b/meta/recipes-devtools/perl/libxml-parser-perl_2.41.bb
> index be41578..fff29ac 100644
> --- a/meta/recipes-devtools/perl/libxml-parser-perl_2.41.bb
> +++ b/meta/recipes-devtools/perl/libxml-parser-perl_2.41.bb
> @@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://README;beginline=2;endline=6;md5=c8767d7516229f07b26e
>
>   DEPENDS += "expat expat-native"
>
> -PR = "r2"
> +PR = "r3"
>
>   SRC_URI = "http://www.cpan.org/modules/by-module/XML/XML-Parser-${PV}.tar.gz"
>   SRC_URI[md5sum] = "c320d2ffa459e6cdc6f9f59c1185855e"
> @@ -13,10 +13,17 @@ SRC_URI[sha256sum] = "b48197cd2265a26c5f016489f11a7b450d8833cb8b3d6a46ee15975740
>
>   S = "${WORKDIR}/XML-Parser-${PV}"
>
> -EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
> +EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR} CC=${CC} LD=${LD} FULL_AR=${AR}"
>
>   inherit cpan
>
> +# fix up sub MakeMaker project as arguments don't get propagated though
> +# see https://rt.cpan.org/Public/Bug/Display.html?id=28632
> +do_configure_append() {
> +	sed 's/--sysroot=.*\(\s\|$\)/--sysroot=${STAGING_DIR_TARGET} /g' -i Makefile Expat/Makefile
> +	sed 's/^FULL_AR = .*/FULL_AR = ${AR}/g' Expat/Makefile
> +}
> +
This seems to have caused the following error:
> ERROR: Function failed: do_configure (see /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/work/i586-poky-linux/libxml-parser-perl-2.41-r3/temp/log.do_configure.77756 for further information)
> NOTE: Running task 6659 of 10967 (ID: 4264, /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-world/build/meta/recipes-graphics/xorg-lib/libxfontcache_1.0.5.bb, do_configure)
> ERROR: Logfile of failure stored in: /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/work/i586-poky-linux/libxml-parser-perl-2.41-r3/temp/log.do_configure.77756
> Log data follows:
> | DEBUG: Executing python function sysroot_cleansstate
> | DEBUG: Python function sysroot_cleansstate finished
> | DEBUG: Executing shell function do_configure
> | *** Module name IN: /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/perl/5.14.2/Cwd.pm
> | *** p1: /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/  p3: perl/5.14.2/  p5: Cwd.pm
> | *** Module name OUT: /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl/5.14.2/Cwd.pm
> | *** Module name IN: /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/perl/5.14.2/Fcntl.pm
> | *** p1: /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/  p3: perl/5.14.2/  p5: Fcntl.pm
> | *** Module name OUT: /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl/5.14.2/Fcntl.pm
> | *** Module name IN: /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/perl/5.14.2/IO.pm
> | *** p1: /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/  p3: perl/5.14.2/  p5: IO.pm
> | *** Module name OUT: /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl/5.14.2/IO.pm
> | *** Module name IN: /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/perl/5.14.2/List/Util.pm
> | *** p1: /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/  p3: perl/5.14.2/  p5: List/Util.pm
> | *** Module name OUT: /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl/5.14.2/List/Util.pm
> | Warning: prerequisite LWP 0 not found.
> | Checking if your kit is complete...
> | Looks good
> | '--SYSROOT' is not a known MakeMaker parameter name.
> | '-MARCH' is not a known MakeMaker parameter name.
> | *** Module name IN: /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl/5.14.2/Tie/Hash/NamedCapture.pm
> | *** p1: /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/x86_64-linux/usr/lib/  p3:   p5: perl-native/perl/5.14.2/Tie/Hash/NamedCapture.pm
> | *** Module name OUT: /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl/5.14.2/perl-native/perl/5.14.2/Tie/Hash/NamedCapture.pm
> | Writing Makefile for XML::Parser::Expat
> | Writing MYMETA.yml
> | Writing Makefile for XML::Parser
> | Writing MYMETA.yml
> | *** Module name IN: /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/perl/5.14.2/POSIX.pm
> | *** p1: /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/  p3: perl/5.14.2/  p5: POSIX.pm
> | *** Module name OUT: /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl/5.14.2/POSIX.pm
> | sed: -e expression #1, char 36: unknown option to `s'
> | ERROR: Function failed: do_configure (see /srv/ssd/sgw_ab/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/work/i586-poky-linux/libxml-parser-perl-2.41-r3/temp/log.do_configure.77756 for further information)
> NOTE: package libxml-parser-perl-2.41-r3: task do_configure: Failed


Please review this patch.

Thanks
	Sau!



>   do_compile() {
>   	export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
>   	cpan_do_compile




More information about the Openembedded-core mailing list