[U-Boot] [v3 patch 2/4] SMDK6400: Fix some label undefined in build error

Albert ARIBAUD albert.aribaud at free.fr
Fri Jan 14 19:15:08 CET 2011


Le 14/01/2011 17:56, seedshope a écrit :
> On 01/15/2011 12:39 AM, Albert ARIBAUD wrote:
>> Hi seedshope,
>>
>> Le 14/01/2011 16:45, seedshope a écrit :
>>> On 01/14/2011 02:07 AM, Albert ARIBAUD wrote:
>>>> Le 13/01/2011 14:36, seedshope a écrit :
>>>>> Modify Makefile for cpu_init.c and Start.s use some label,this defined
>>>>> u-boot.lds of arch/arm/cpu/arm1176. But SMDK6400 use the link script
>>>>> board/samsung/smdk6400/u-boot-nand.lds. So add some label form
>>>>> u-boot.lds
>>>>> to u-boot-nand.lds
>>>>>
>>>>> Signed-off-by: seedshope<bocui107 at gmail.com>
>>>>>
>>>>> diff --git a/arch/arm/cpu/arm1176/s3c64xx/Makefile
>>>>> b/arch/arm/cpu/arm1176/s3c64xx/Makefile
>>>>> index 0785b19..f4b9574 100644
>>>>> --- a/arch/arm/cpu/arm1176/s3c64xx/Makefile
>>>>> +++ b/arch/arm/cpu/arm1176/s3c64xx/Makefile
>>>>> @@ -30,12 +30,15 @@ LIB = $(obj)lib$(SOC).o
>>>>>
>>>>> SOBJS = reset.o
>>>>>
>>>>> -COBJS-$(CONFIG_S3C6400) += cpu_init.o speed.o
>>>>> +COBJS-$(CONFIG_S3C6400) += speed.o
>>>>> COBJS-y += timer.o
>>>>>
>>>>> +CPUINIT = cpu_init.o
>>>>> +
>>>>> OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS-y))
>>>>> +CPUINIT := $(addprefix $(obj),$(CPUINIT))
>>>>>
>>>>> -all: $(obj).depend $(START) $(LIB)
>>>>> +all: $(obj).depend $(START) $(LIB) $(CPUINIT)
>>>>>
>>>>> $(LIB): $(OBJS)
>>>>> $(call cmd_link_o_target, $(OBJS))
>>>>
>>>> Not sure I get what's the problem and how exactly this changes solves
>>>> it. Can you detail this particular issue?
>>> The issue is mem_ctrl_asm_init redefine in
>>> arch/arm/cpu/arm1176/s3c64xx/cpu_init.s.
>>
>> From what follows it seems the problem is rather cpu_init.o being
>> linked in twice. Correct?
> maybe
>>
>>> At first, the link script file include cpu_init.s in
>>> board/samsung/smd6400/u-boot-nand.s, If I separate the cpu_init.o from
>>> COBJS-$(CONFIG_S3C6400), I guess cmd_link_o_target will deal with
>>> cpu_init.o. So the link script will double link the cpu_init file.
>>
>> Then you should fix the double linking by i) determining why the
>> double linking happens and ii) properly linking once only.
> Hi Alvert ARIBAUD,
>
> I see the code for smdk6400. I found this code is very old. Before It
> can not add cmd_link_o_target in
> Makefile(arch/arm/cpu/arm1176/s3c64xx/Makefile), The file will only to
> compile. So the link script is ok.
>
> But, Now, It is not. As far as I know, The linker script can do to link
> the first specified file for user.
> Since I do not full understand the cmd_link_o_target mechanism. So I
> only guess the command do
> some link work.
>
> Maybe I am correct.

I don't want to accept this change on the off chance that it might be 
correct; before your next patch submission, please try building your 
code without this specific patch and positively find why the build fails.

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list