Patchwork [U-Boot,2/3] MIPS: Purple: Fix multiple definition error on final linking of u-boot binary

login
register
mail settings
Submitter Daniel Schwierzeck
Date Feb. 3, 2011, 11:59 a.m.
Message ID <1296734392-15203-3-git-send-email-daniel.schwierzeck@googlemail.com>
Download mbox | patch
Permalink /patch/81634/
State Accepted
Commit ec36d1f422f1a5b06d24db1ca8aedfacf0c8a30f
Headers show

Comments

Daniel Schwierzeck - Feb. 3, 2011, 11:59 a.m.
The linker of recent toolchains complains about multiple definitions
on final linking of u-boot binary. This patch removes all redundant
object files from u-boot.lds those are already added to .text section
by the linker.

That patch could not be tested but the resulting u-boot.map still looks
good. The start symbol is at 0xB0000000, the environment at 0xB0008000
so u-boot should boot.

Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>
Cc: Wolfgang Denk <wd@denx.de>
---
 board/purple/u-boot.lds |    5 -----
 1 files changed, 0 insertions(+), 5 deletions(-)

--
1.7.3.5
Shinya Kuribayashi - Feb. 5, 2011, 12:11 p.m.
On 02/03/2011 08:59 PM, daniel.schwierzeck@googlemail.com wrote:
> The linker of recent toolchains complains about multiple definitions
> on final linking of u-boot binary. This patch removes all redundant
> object files from u-boot.lds those are already added to .text section
> by the linker.

Confirmed.

> That patch could not be tested but the resulting u-boot.map still looks
> good. The start symbol is at 0xB0000000, the environment at 0xB0008000
> so u-boot should boot.

Agreed.

> --- a/board/purple/u-boot.lds
> +++ b/board/purple/u-boot.lds
> @@ -36,11 +36,6 @@ SECTIONS
>  	{
>  	  arch/mips/cpu/start.o		(.text)
>  	  board/purple/lowlevel_init.o	(.text)
> -	  arch/mips/cpu/cache.o		(.text)
> -	  common/main.o			(.text)
> -	  common/dlmalloc.o		(.text)
> -	  common/cmd_boot.o		(.text)
> -	  lib/zlib.o		(.text)
>  	  . = DEFINED(env_offset) ? env_offset : .;
>  	  common/env_embedded.o	(.ppcenv)

This is ok, though we have some room for further cealnups.  With having
.text statement in the lowlevel_init.S, we could remove all these lines.

Applied anyway, thanks for the patch.
Wolfgang Denk - Feb. 5, 2011, 2:15 p.m.
Dear Shinya Kuribayashi,

In message <4D4D3E6B.2040605@pobox.com> you wrote:
>
> > --- a/board/purple/u-boot.lds
> > +++ b/board/purple/u-boot.lds
> > @@ -36,11 +36,6 @@ SECTIONS
> >  	{
> >  	  arch/mips/cpu/start.o		(.text)
> >  	  board/purple/lowlevel_init.o	(.text)
> > -	  arch/mips/cpu/cache.o		(.text)
> > -	  common/main.o			(.text)
> > -	  common/dlmalloc.o		(.text)
> > -	  common/cmd_boot.o		(.text)
> > -	  lib/zlib.o		(.text)
> >  	  . = DEFINED(env_offset) ? env_offset : .;
> >  	  common/env_embedded.o	(.ppcenv)
> 
> This is ok, though we have some room for further cealnups.  With having
> .text statement in the lowlevel_init.S, we could remove all these lines.

The prupose of explicitly pulling in these objects at that place is to
fill in the first flash sector below the sector(s) that is/are
reserved for the environment (we call this setup "embedded
environment").

But then, the Purple board has not been actively maintained for years,
and I guess we could as well remove it.  At least I have not had
access to this board for several yars.

Best regards,

Wolfgang Denk

Patch

diff --git a/board/purple/u-boot.lds b/board/purple/u-boot.lds
index 542601a..719f268 100644
--- a/board/purple/u-boot.lds
+++ b/board/purple/u-boot.lds
@@ -36,11 +36,6 @@  SECTIONS
 	{
 	  arch/mips/cpu/start.o		(.text)
 	  board/purple/lowlevel_init.o	(.text)
-	  arch/mips/cpu/cache.o		(.text)
-	  common/main.o			(.text)
-	  common/dlmalloc.o		(.text)
-	  common/cmd_boot.o		(.text)
-	  lib/zlib.o		(.text)
 	  . = DEFINED(env_offset) ? env_offset : .;
 	  common/env_embedded.o	(.ppcenv)