[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