
Le 22/10/2011 03:20, Marek Vasut a écrit :
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 Vasutmarek.vasut@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 Vasutmarek.vasut@gmail.com >>>>>> Cc: Stefano Babicsbabic@denx.de >>>>>> Cc: Wolfgang Denkwd@denx.de >>>>>> Cc: Detlev Zundeldzu@denx.de >>>>>> Cc: Scott Woodscottwood@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 ?
Yes -- once you're sure that -gc-sections is there.
Cheers
Amicalement,