Messages in this thread | | | Date | Wed, 21 Aug 2013 12:25:11 -0500 | From | Rob Landley <> | Subject | Re: [RFC] Get rid of SUBARCH |
| |
On 08/21/2013 07:07:33 AM, Geert Uytterhoeven wrote: > On Wed, Aug 21, 2013 at 10:19 AM, Richard Weinberger <richard@nod.at> > wrote: > > This series is an attempt to remove the SUBARCH make parameter. > > It as introduced at the times of Linux 2.5 for UML to tell the UML > > build system what the real architecture is. > > > > But we actually don't need SUBARCH, we can store this information > > in the .config file. > > Haha, now you have OS_ARCH (shouldn't that be called HOST_ARCH?) > instead, > which is available only for UM? > > > The series touches also m68k, sh, mips and unicore32. > > These architectures magically select a cross compiler if ARCH != > SUBARCH. > > Do really need that behavior? > > This does remove functionality. > It allows to build a kernel using e.g. "make ARCH=m68k".
make ARCH=m68k CROSS_COMPILE=m68k- make ARCH=arm CROSS_COMPILE=armv5l- make ARCH=sparc CROSS_COMPILE=sparc- make ARCH=ppc CROSS_COMPILE=powerpc- make ARCH=sh CROSS_COMPILE=sh4- make ARCH=mips CROSS_COMPILE=mipsel- make ARCH=x86 CROSS_COMPILE=i686- make ARCH=alpha CROSS_COMPILE=alpha-
Works the same way on all the targets I've tried so far. You specify the architecture, you specify the cross compiler prefix, you feed it a config file, you build.
(If a target supplies its own default cross compiler prefix I just have to override it with what mine's called anyway...)
> Perhaps this can be moved to generic code? Most (not all!) > cross-toolchains > are called $ARCH-{unknown-,}linux{,-gnu}. > Exceptions are e.g. am33_2.0-linux and bfin-uclinux.
The linaro toolchain is arm-linux-gnueabihf- and the one on kernel.org is arm-unknown-linux-gnueabi- and the one I build is armv5l- (because the FSF's $ARCH-unknown-gnu-format-tuple-all-hail-stallman-gnu-gnu-gnu-dammit-gcc is just nuts: why would I say -linux- in a linux-to-linux toolchain? Do windows toolchains say -windows-?)
Other toolchain sources use other prefixes (-unknown- is often -$VENDORNAME-), and then of course there's llvm... which is why you specify CROSS_COMPILE= on the make command line.
Rob
| |