[U-Boot] [PATCH 2/2] SPL: Allow ARM926EJS to avoid compiling in the CPU support code

Albert ARIBAUD albert.u.boot at aribaud.net
Sat Oct 22 02:41:54 CEST 2011


Le 22/10/2011 02:19, Marek Vasut a écrit :
> On Saturday, October 22, 2011 02:04:52 AM Tom Rini wrote:
>> On Fri, Oct 21, 2011 at 4:45 PM, Marek Vasut<marek.vasut at gmail.com>  wrote:
>>> On Saturday, October 22, 2011 01:08:43 AM Albert ARIBAUD wrote:
>>>> Le 22/10/2011 00:46, Marek Vasut a écrit :
>>>>> On Saturday, October 22, 2011 12:44:06 AM Albert ARIBAUD wrote:
>>>>>> Le 22/10/2011 00:00, Marek Vasut a écrit :
>>>>>>> On Friday, October 21, 2011 11:52:23 PM Albert ARIBAUD wrote:
>>>>>>>> Hi Marek,
>>>>>>>>
>>>>>>>> Le 21/10/2011 22:44, Marek Vasut a écrit :
>>>>>>>>> On Thursday, October 06, 2011 02:13:26 AM Marek Vasut wrote:
>>>>>>>>>> This allows the SPL to avoid compiling in the CPU support code.
>>>>>>>>>>
>>>>>>>>>> Signed-off-by: Marek Vasut<marek.vasut at gmail.com>
>>>>>>>>>> Cc: Stefano Babic<sbabic at denx.de>
>>>>>>>>>> Cc: Wolfgang Denk<wd at denx.de>
>>>>>>>>>> Cc: Detlev Zundel<dzu at denx.de>
>>>>>>>>>> Cc: Scott Wood<scottwood at freescale.com>
>>>>>>>>>> ---
>>>>>>>>>>
>>>>>>>>>>      arch/arm/cpu/arm926ejs/Makefile |    7 +++++++
>>>>>>>>>>      1 files changed, 7 insertions(+), 0 deletions(-)
>>>>>>>>>>
>>>>>>>>>> diff --git a/arch/arm/cpu/arm926ejs/Makefile
>>>>>>>>>> b/arch/arm/cpu/arm926ejs/Makefile index 930e0d1..3f9b0f1 100644
>>>>>>>>>> --- a/arch/arm/cpu/arm926ejs/Makefile
>>>>>>>>>> +++ b/arch/arm/cpu/arm926ejs/Makefile
>>>>>>>>>> @@ -28,6 +28,13 @@ LIB = $(obj)lib$(CPU).o
>>>>>>>>>>
>>>>>>>>>>      START      = start.o
>>>>>>>>>>      COBJS      = cpu.o
>>>>>>>>>>
>>>>>>>>>> +ifdef CONFIG_SPL_BUILD
>>>>>>>>>> +ifdef CONFIG_SPL_NO_CPU_SUPPORT_CODE
>>>>>>>>>> +START :=
>>>>>>>>>> +COBJS :=
>>>>>>>>>> +endif
>>>>>>>>>> +endif
>>>>>>>>>> +
>>>>>>>>>>
>>>>>>>>>>      SRCS       := $(START:.o=.S) $(SOBJS:.o=.S) $(COBJS:.o=.c)
>>>>>>>>>>      OBJS       := $(addprefix $(obj),$(COBJS) $(SOBJS))
>>>>>>>>>>      START      := $(addprefix $(obj),$(START))
>>>>>>>>>
>>>>>>>>> Hi Albert,
>>>>>>>>>
>>>>>>>>> can we get this applied please?
>>>>>>>>
>>>>>>>> I still don't understand what this is supposed to do -- why not
>>>>>>>> linking this code is required.
>>>>>>>>
>>>>>>>> Amicalement,
>>>>>>>
>>>>>>> Hi Albert,
>>>>>>>
>>>>>>> I use very different start.S in SPL. And I don't need cpu.o at all.
>>>>>>
>>>>>> That I understand; but is there a /problem/ in linking cpu.o in?
>>>>>
>>>>> I suppose it'll be optimized out at link time ?
>>>>
>>>> That indirectly answers my question: what you want to achieve is
>>>> removing dead code.
>>>
>>> The code IS USED in U-Boot, but IS NOT USED in SPL !
>>
>> Right, but linked and unused code in SPL is (or should be!) thrown
>> away, is what's
>> trying to be driven home right now.  If the file is going to go away,
>> and it's compiled
>> thrown away at final link of SPL, lets just ignore that it exists for
>> a little longer, and
>> then it won't.
>
> My distrust towards compiler abilities to optimize such stuff out tells me it's
> better to avoid it even to be compiled in at all.

Optimizing unused functions is a rather simple and reliable ability in 
tolchains. The issue is not really whether the toolchain is able to do 
the removal (it is); rather, the issue is whether the linker command 
line will cause the removal (it will IMO as long as -gc-sections is 
specified).

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list