v86d: Make cross compilation working on more architectures

Since commit 709c603dec19 ("v86d: Accept aarch64 as build host") we
support cross compilation on aarch64 host in addition to x86 host.
However building on hosts different than two above will fail.

Make cross compilation support more generic by checking for TARGET_ARCH
in v86d configure script with fallback to `uname -m` when not present in
environment and pass TARGET_ARCH explicitly in do_configure().

Cross build for x86 tested on IBM Power 8 machine with RHEL7. Should
work on aarch64 and rest too.

(From OE-Core rev: 69f7579eb36c00b557225377e1a3cc61b103be23)

Signed-off-by: Serhey Popovych <serhe.popovych@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Serhey Popovych
2018-10-31 16:55:47 +02:00
committed by Richard Purdie
parent 8929ffd67c
commit a7bf511703
3 changed files with 36 additions and 20 deletions

View File

@@ -0,0 +1,34 @@
From 8eda59654fd31416164c78f6068715b01767ed4e Mon Sep 17 00:00:00 2001
From: Serhey Popovych <serhe.popovych@gmail.com>
Date: Wed, 31 Oct 2018 07:31:47 -0400
Subject: v86d: Support for cross compilation
It is common to build on one system for another (e.g. on IBM Power
machine for Intel x86) where HOST_ARCH (uname -m) != TARGET_ARCH.
Take TARGET_ARCH from environment if it is given, otherwise fall back
to `uname -m`.
Upstream-Status: Pending
Signed-off-by: Serhey Popovych <serhe.popovych@gmail.com>
---
configure | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/configure b/configure
index cbbd6b3..046aa99 100755
--- a/configure
+++ b/configure
@@ -23,7 +23,8 @@ copt_x86emu_type="bool"
copt_x86emu_def=auto
copt_x86emu_test()
{
- local m=`uname -m`
+ local m="${TARGET_ARCH:-$(uname -m)}"
+
if [ "$m" = "i686" -o "$m" = "i586" -o "$m" = "i486" -o "$m" = "i386" ]; then
echo "n";
elif [ "$m" = "x86_64" ]; then
--
1.8.3.1

View File

@@ -1,18 +0,0 @@
Accept aarch64 as valid build host
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Index: v86d-0.1.10/configure
===================================================================
--- v86d-0.1.10.orig/configure
+++ v86d-0.1.10/configure
@@ -26,7 +26,7 @@ copt_x86emu_test()
local m=`uname -m`
if [ "$m" = "i686" -o "$m" = "i586" -o "$m" = "i486" -o "$m" = "i386" ]; then
echo "n";
- elif [ "$m" = "x86_64" ]; then
+ elif [ "$m" = "x86_64" -o "$m" = "aarch64" ]; then
echo "y";
else
echo "It looks like your architecture '$m' isn't supported by this version of v86d." >&2

View File

@@ -12,7 +12,7 @@ PR = "r2"
SRC_URI = "http://snapshot.debian.org/archive/debian/20110427T035506Z/pool/main/v/${BPN}/${BPN}_${PV}.orig.tar.gz \
file://Update-x86emu-from-X.org.patch \
file://ar-from-env.patch \
file://aarch64-host.patch \
file://Support-for-cross-compilation.patch \
"
SRC_URI[md5sum] = "889686ec8424468fe0d205742e77a4c2"
@@ -22,7 +22,7 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
do_configure () {
./configure --with-x86emu
TARGET_ARCH="${TARGET_ARCH}" ./configure --with-x86emu
}
do_compile () {