[oe-commits] ulf at emagii.com : xfconf: use sysroot and target perl

git at git.openembedded.org git at git.openembedded.org
Sat Dec 21 18:18:10 UTC 2013


Module: meta-openembedded.git
Branch: master
Commit: 480d3338a7401f53e7b8a031294d37498a6a7be6
URL:    http://git.openembedded.org/?p=meta-openembedded.git&a=commit;h=480d3338a7401f53e7b8a031294d37498a6a7be6

Author: ulf at emagii.com <ulf at emagii.com>
Date:   Sat Dec  7 23:29:41 2013 +0100

xfconf: use sysroot and target perl

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>
Tested-by: Ash Charles <ashcharles at gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>

---

 meta-xfce/recipes-xfce/xfconf/xfconf_4.10.0.bb | 5 ++++-
 1 file changed, 4 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..945819e 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,13 @@ 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"
 
 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"



More information about the Openembedded-commits mailing list