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

Marek Vasut marek.vasut at gmail.com
Sat Oct 22 03:20:28 CEST 2011


On Saturday, October 22, 2011 02:41:54 AM Albert ARIBAUD wrote:
> 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,

So what you suggest is to leave cpu.o compiling and drop only start.S ?

Cheers


More information about the U-Boot mailing list