[U-Boot] [PATCH v2] config.mk: use memoization in cc-option macro to speed up compilation

Albert ARIBAUD albert.u.boot at aribaud.net
Sat Nov 5 16:02:45 CET 2011


Hi Daniel,

Le 05/11/2011 14:43, Daniel Schwierzeck a écrit :
> Hi Albert,
>
> On 05.11.2011 10:16, Albert ARIBAUD wrote:
>> Hi all,
>>
>> Le 04/11/2011 18:56, Wolfgang Denk a écrit :
>>> Dear Daniel Schwierzeck,
>>>
>>> In
>>> message<CACUy__XY1873+dT-s=-GyPeBq5hnYsmYwWt-gxEXiwY97EcGdg at mail.gmail.com>
>>>
>>> you wrote:
>>>>
>>>> Should we change it? is the semantic still the same?
>>>
>>> I'm not sure. At first reading it doesn't look really the same to me.
>>
>> They are not, at least for ELDK4.2.
>>
>> The only difference is in -mabi options, where the change would reduce
>> "-mabi=apcs-gnu -mabi=aapcs-linux" to "-mabi=aapcs-linux".
>>
>> apcs-gnu, IIUC, is 'old ABI', while 'aapcs-linux' is 'new ABI', aka
>> eabi. Most of the toolchains I see are eabi (ELDK and CS notably). There
>> may be 'old ABI' toolchains out there, but I don't think they are old
>> ABI either.
>>
>> Anyway, I've just tried ./MAKEALL edminiv2 with ELD42 and a couple of CS
>> toolchains, and nowhere in the log does -mabi=apcs-gnu show up -- the
>> gcc invocations only have -mabi=aapcs-linux.
>
> Looks like I read it wrong. So you always want "-mabi=apcs-gnu
> -mabi=aapcs-linux -mno-thumb-interwork" in $(PF_CPPFLAGS_ABI) with EABI?
> Sorry but I am not an ARM expert ;)

No, I don't want that. :)

The problem I see is having two conflicting -mabi options, 
-mabi=apcs-gnu and -mabi=aapcs-linux, in the same command line. There 
should be only one -- and it should be the same across the whole U-Boot 
building process.

The duplicate -mno-thumb-interwork does not worry me fronm a functional 
standpoint; it's just a waste of space, that's all.

>> I've also tested making ED Mini V2 with and without the patch but
>> without Daniel's proposed change to arch/arm/config.mk, and there is no
>> difference in build commands (except that for some reason the patch
>> inserts multiple spaces between some gcc invocation options.
>
> I guess this comes from making the macros more readable. Maybe I can
> optimize this.
>
>>
>> Daniel, what do you mean with "does not work correctly"?
>
> that the generated cache file looks not right
>
> CC_OPTIONS += -mabi=apcs-gnu
> CC_OPTIONS_NOP += -mabi=apcs-gnu
> CC_OPTIONS += -mno-thumb-interwork
> CC_OPTIONS += -mabi=aapcs-linux -mno-thumb-interwork

I'm not a makefile expert, so "looks not right" is a bit meaningless to 
me. If "not right" means "there are several conflicting -mabi options 
and there are repeated -mno-thumb-interwork options" then I agree with 
your "does not look right" statement.

> But if you want "-mabi=apcs-gnu -mabi=aapcs-linux -mno-thumb-interwork"
> then it should already work correctly without my change in
> arch/arm/config.mk.

As I said, no, I don't want that. I want the right -mabi option only, 
and I'd like a single -mno-thumb-interwork option.

But what I don't understand is the discrepancy which I see between the 
CC_OPTIONS resulting from include/generated/cc_options.mk and the actual 
command line options used to generate e.g. edminiv2.

> Best regards,
> Daniel

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list