diff mbox

kbuild, deb-pkg: set host machine $arch correctly when cross-compiling or not

Message ID 1304490438-17099-1-git-send-email-robert@greenroomsoftware.com (mailing list archive)
State New, archived
Headers show

Commit Message

Robert May 4, 2011, 6:27 a.m. UTC
scripts/package/builddeb script was setting the host machine $arch
in the KERNEL/debian/control prior to an invocation of dpkg-gencontrol.
The existing method is appropriate for i386/x86_64 but fails when
cross-compiling for non-intel.  The patch modifies the script to
guarantee the correct $arch for the target is written to the control
file.  This patch has been tested building x86_64 on an i386 machine
and also when cross-compiling for ARM on an i386 machine.
The issue first arose in the 2.6.38 release.

Signed-off-by: Robert Gordon <robert@greenroomsoftware.com>

---
 scripts/package/builddeb |   18 +++++++++++++++++-
 1 files changed, 17 insertions(+), 1 deletions(-)
diff mbox

Patch

diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index f6cbc3d..91ced36 100644
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -246,7 +246,23 @@  mkdir -p "$destdir"
 (cd $srctree; tar -c -f - -T /tmp/files$$) | (cd $destdir; tar -xf -)
 (cd $objtree; tar -c -f - -T /tmp/objfiles$$) | (cd $destdir; tar -xf -)
 rm -f /tmp/files$$ /tmp/objfiles$$
-arch=$(dpkg --print-architecture)
+
+case "$UTS_MACHINE" in
+sparc*)
+	arch=sparc ;;
+s390*)
+	arch=s390 ;;
+ppc*)
+	arch=powerpc ;;
+parisc*)
+	arch=hppa ;;
+mips*)
+	arch=mips$(grep -q CPU_LITTLE_ENDIAN=y .config && echo el) ;;
+arm*)
+	arch=arm$(grep -q CONFIG_AEABI=y .config && echo el) ;;
+i386|ia64|alpha|x86_64|*)
+	arch=$(dpkg --print-architecture) ;;
+esac
 
 cat <<EOF >> debian/control