[oe] [PATCH] xfconfig: use sysroot and target perl

Ulf Samuelsson ulf at emagii.com
Sat Dec 7 22:29:41 UTC 2013


xfconf-4.10.0 does not use OE sysroot as is.
--with-sysroot=yes 
will make configure run CC --print-sysroot
and use that.

When searching the PATH for perl, no target perl is found,
since PATH does not contain any reference.
Instead native perl is found, and if certain perl packages
are installed on the host machine, the xfconf perl support
is enabled which may cause the build to fail on 64 bit hosts.
If the perl packages are not installed on the host, then
perl support in xfconf is disabled, and the xfconf build
will succeed, even on 64 bit hosts.

If native perl is found, and the perl packages are available
on the host, the perl support is enabled.

Since native perl is used, the native linker is used to link the 
resulting *target* code.  

The perl support requires some libraries, which are built for the target.
If the host is 64 bit (x86_64) and the target is 32 bit (ARM?), 
there is a mismatch which is detected by the linker, 
and the libraries found are rejected.

If the host does not have the correct libraries,
then the xfconf build fails.
If the host has the correct libraries, then the linker will try
to link host libraries with the target application.

The patch will define PERL as the target perl.
This means that configure will look for the required perl
packages in the target sysroot, instead of in the native filesystem.

The patch has been tested in Angstrom master, which does not
build the required perl packages, and thus perl support
in xfconf is disabled, and the build succeeds.

A simpler way to do this, proposed by Charles Ash <ashcharles at gmail.com>
is to simply disable the perl-support in xfconf.
This patch will be better, if ever the support for the needed
perl packages is added to the OpenEmbedded/Angstrom build.


Signed-off-by: Ulf Samuelsson <ulf at emagii.com>
---
 meta-xfce/recipes-xfce/xfconf/xfconf_4.10.0.bb |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/meta-xfce/recipes-xfce/xfconf/xfconf_4.10.0.bb b/meta-xfce/recipes-xfce/xfconf/xfconf_4.10.0.bb
index 4ea2b88..6d5bf57 100644
--- a/meta-xfce/recipes-xfce/xfconf/xfconf_4.10.0.bb
+++ b/meta-xfce/recipes-xfce/xfconf/xfconf_4.10.0.bb
@@ -2,10 +2,14 @@ DESCRIPTION = "Xfce configuration daemon and utilities"
 SECTION = "x11/wm"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-DEPENDS = "dbus-glib libxfce4util perl-native"
+DEPENDS = "dbus-glib libxfce4util perl"
+PR="r1"
 
 inherit xfce
 
+EXTRA_OECONF += "PERL=${STAGING_DIR_TARGET}/usr/bin/perl"
+EXTRA_OECONF += "--with-sysroot=yes"
+
 SRC_URI += "file://0001-Simplify-checks.patch"
 SRC_URI[md5sum] = "4ed48150a03fb5f42b455494307b7f28"
 SRC_URI[sha256sum] = "175219a441cc7d0f210bbd1a3b0abba41598627cd9db27235811400c3e100576"
-- 
1.7.9.5




More information about the Openembedded-devel mailing list