Re: [RFC] Get rid of SUBARCH

Richard Weinberger
2013-08-21T12:16:25Z

Am 21.08.2013 14:07, schrieb Geert Uytterhoeven:
> 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?

We have already OS (which is always "Linux"), so OS_ARCH is IMHO a good choice.
UML always needs to know what the underlying arch is.

OS_ARCH is not only visible to arch/um/ because of that code in the global Makefile:

# UML needs a little special treatment here. It wants to use the host
# toolchain, so needs $(SUBARCH) passed to checkstack.pl. Everyone
# else wants $(ARCH), including people doing cross-builds, which means
# that $(SUBARCH) doesn't work here.
ifeq ($(ARCH), um)
CHECKSTACK_ARCH := $(SUBARCH)
else
CHECKSTACK_ARCH := $(ARCH)
endif

scripts/tags.sh also needs some work. V2 will contain a patch for that.

>> 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".

If this functionality is expected and has users I'll happily keep that.

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

Sounds good.

>> [PATCH 1/8] um: Create defconfigs for i386 and x86_64
>> [PATCH 3/8] um: Remove old defconfig
>
> Why not merge these two, so git copy/rename detection will show only the real
> changes?

Will do.

Thanks,
//richard