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

seedshope bocui107 at gmail.com
Fri Jan 14 17:56:53 CET 2011


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 have two method to solve it.
>> first: see the patch
>> second: Modify the link script
>>
>> But I feel, the first method is safe.
>
> It may be safe, but IIUC it does not properly address the issue and 
> its root cause.
yes
>
>> I asked a question. I will RR on next, The patch1 and patch3 have
>> already ok, Do I only send patch2 and patch4?
>
> My personal practice is to re-send the whole patchset for each new 
> version, because i) people can easily see the whole of the changes 
> without having to go pick parts of previous versions and ii) it makes 
> clear when a patch is removed or added to the set.
ok

Thanks,
seedshope
>
>>> Amicalement,
>
> Amicalement,



More information about the U-Boot mailing list