[U-Boot] MAKEALL

Graeme Russ
2011-10-18T22:33:48Z

Hi Wolfgang,

On Wed, Oct 19, 2011 at 7:07 AM, Wolfgang Denk <wd@denx.de> wrote:
> Dear Mike Frysinger,
>
> In message <201110181301.57390.vapier@gentoo.org> you wrote:
>>
>> because MAKEALL is a pita to use. it has no automatic CROSS_COMPILE support,
>> and the current logic only allows one-CROSS_COMPILE-setting-per-run. so you
>> have to run MAKEALL by hand once per arch.
>>
>> the documentation you quote only shows running MAKEALL for powerpc (since
>> that's the default), so even the docs are a bit unclear.
>>
>> ideally, MAKEALL should be intelligent and automatically find an appropriate
>> toolchain if one isn't setup in the env. much like the buildall script i
>> posted recently.
>
> How is this supposed to work? Assume I have a number of different
> tool chains, say I want to use the tool chain in /opt/eldk-5.1/armv5te
> for all ARM9 systems, that in /opt/eldk-5.1/armv7a for all OMAP based
> boards, that in /opt/eldk-5.1/armv6 for Kirkwood processors and yet
> another one for the (bix endian) PXA boards. In all cases we have
> ARCH=arm and CROSS_COMPILE=arm-linux-gnueabi-
>
> And then, for compatibility testings, I want to compile all this with
> ELDK 4.2. Or ELDK 4.1. Or CodeSourcery xxx. Or...
>
> I see no clean way to implement this - ok, we could provide an
> external tool / data base that maps boards or SoC names to
> CROSS_COMPILE/ARCH/PATH settings, which each user has to configure for
> his own set of tool chain settings.

IMHO, for running MAKEALL, I see no problem with this. If we had a
'toolchains.cfg' file which could be a format like:

#ARCH SOC BOARD TOOLCHAIN
x86 sc520 - /path/to/gcc

This would give new developers a head-up as to what the defacto toolchains
are

We can then have 'toolchains.cfg.local' which is added to .gitignore so
individual users can override the toolchain. But all patch submissions
must pass MAKEALL without using toolchains.cfg.local (something like
'MAKEALL --no-custom-toolchains'. The first thing MAKEALL should do is
scan toolchains.cfg (and toolchains.cfg.local if required) for each
selected arch and check that each toolchain is available and spit out
'toolchain not available' warnings.

All we need to do then is setup our build machines to do an automated
git-pull and MAKEALL

Regards,

Graeme