Re: [PATCH] polystrap-binfmt for preparing the build host
Hector Oron <[email protected]>
| Newsgroups | gmane.linux.debian.devel.embedded |
|---|---|
| Message-ID | <[email protected]> |
Hi, 2011/6/29 Johannes Schauer <[email protected]>: > Hi, > > On Tue, Jun 28, 2011 at 11:42:49PM +0200, Hector Oron wrote: >> 2011/6/28 Yann Dirson <[email protected]>: >> > As can be seen in your script, the use of binfmt support is not >> > without problems. >> > >> > + case $ARCH in >> > + alpha|amd64|arm|armeb|i386|m68k|mips|mipsel\ >> > + |powerpc|ppc64|sh4|sh4eb|sparc|sparc64) >> > + BINFMT_ARCH=$ARCH ;; >> > + armel) BINFMT_ARCH=arm ;; >> > + lpia) BINFMT_ARCH=i386 ;; # not yet verified FIXME >> > + *) echo "unknown architecture: $ARCH"; exit 1;; >> > + esac >> > >> > The most prominent problem IMHO is that it requires a system-wide >> > setting, and that in turn ties a qemu arch name to a particular >> > distro/ABI version. >> May I suggest the use of `dpkg-architecture` environment variables? > dpkg-architecture will print the architecture of the host or check for > architecture equality. how would I abuse it to convert a debian > architecture $ARCH to a cpu architecture $BINFMT_ARCH that exists as a > "qemu-${BINFMT_ARCH}-static" binary? Just a proof of concept.... $ ./PoC.sh I: Set dpkg-architecture cross architecture: armel I: configure --build=x86_64-linux-gnu --host=arm-linux-gnueabi I: Debian armel maps to GNU arm architecture I: Unset dpkg-architecture cross architecture I: For further instructions: man dpkg-architecture $ cat PoC.sh #! /bin/sh ARCH=armel echo "I: Set dpkg-architecture cross architecture: ${ARCH}" eval $(dpkg-architecture -a${ARCH} -s 2> /dev/null) DEB_BUILD_GNU_TYPE=$(dpkg-architecture -qDEB_BUILD_GNU_TYPE) DEB_HOST_GNU_TYPE=$(dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_HOST_ARCH_CPU=$(dpkg-architecture -qDEB_HOST_ARCH_CPU) echo "I: configure --build=${DEB_BUILD_GNU_TYPE} --host=${DEB_HOST_GNU_TYPE}" echo "I: Debian ${ARCH} maps to GNU ${DEB_HOST_ARCH_CPU} architecture" echo "I: Unset dpkg-architecture cross architecture" eval $(dpkg-architecture -u 2> /dev/null) echo "I: For further instructions: man dpkg-architecture" exit 0 -- Héctor Orón -.. . -... .. .- -. -.. . ...- . .-.. --- .--. . .-. <free spam> -- Would you like to make a donation for Debian Conference? ** http://debconf11.debconf.org/payments.xhtml ** </free spam>