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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxxxxxxxxx>

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

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
 
-- 
1.7.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux