Patchwork [U-Boot,15/24,V2] 83xx: Cleanup for partial linking and --gc-sections

login
register
mail settings
Submitter Wolfgang Denk
Date Nov. 25, 2010, 4 p.m.
Message ID <1290700844-31427-16-git-send-email-wd@denx.de>
Download mbox | patch
Permalink /patch/73089/
State Superseded
Headers show

Comments

Wolfgang Denk - Nov. 25, 2010, 4 p.m.
Signed-off-by: Wolfgang Denk <wd@denx.de>
Cc: Kim Phillips <kim.phillips@freescale.com>
---
Kim,  allthough the 83xx boards appear to build fine at first glance,
some (or all?) of the NAND boot images are 4 GB in size. Could you
please have a look what's going wrong there?   Thanks.

Kim, if it's OK with you I will pull this directly.

 arch/powerpc/cpu/mpc83xx/u-boot.lds |   53 ++++++----------------------------
 1 files changed, 10 insertions(+), 43 deletions(-)
Wolfgang Denk - Nov. 25, 2010, 6:02 p.m.
Dear Kim,

In message <1290700844-31427-16-git-send-email-wd@denx.de> I wrote:
> Signed-off-by: Wolfgang Denk <wd@denx.de>
> Cc: Kim Phillips <kim.phillips@freescale.com>
> ---
> Kim,  allthough the 83xx boards appear to build fine at first glance,
> some (or all?) of the NAND boot images are 4 GB in size. Could you
> please have a look what's going wrong there?   Thanks.

I just noticed Scott's patch that addresses this issue:

http://patchwork.ozlabs.org/patch/72962/

This fixes the issue. How shall we handle this? Will you send a pull
request any time soon, or shall I pull directly?

Best regards,

Wolfgang Denk
Haiying Wang - Nov. 25, 2010, 6:23 p.m.
On Thu, 2010-11-25 at 09:00 -0700, Wolfgang Denk wrote:
> Signed-off-by: Wolfgang Denk <wd@denx.de>
> Cc: Kim Phillips <kim.phillips@freescale.com>
> ---
> Kim,  allthough the 83xx boards appear to build fine at first glance,
> some (or all?) of the NAND boot images are 4 GB in size. Could you
> please have a look what's going wrong there?   Thanks.
> 
> Kim, if it's OK with you I will pull this directly.
> 
>  arch/powerpc/cpu/mpc83xx/u-boot.lds |   53
> ++++++----------------------------
>  1 files changed, 10 insertions(+), 43 deletions(-)
> 
I think the u-boot.lds in nand_spl/board/freescale/mpc83xx/ needs to
have the fix as well.

Haiying
Wolfgang Denk - Nov. 25, 2010, 6:32 p.m.
Dear Haiying Wang,

In message <1290709405.2007.16.camel@haiying-laptop> you wrote:
> 
> I think the u-boot.lds in nand_spl/board/freescale/mpc83xx/ needs to
> have the fix as well.

Which fix do you mean?

I see two such files:

	nand_spl/board/freescale/mpc8313erdb/u-boot.lds
	nand_spl/board/freescale/mpc8315erdb/u-boot.lds

They are identical and look sane to me.

OK, we can drop the "*(.eh_frame)" line, but it doesn't hurt either.

Which exact fix do you have in mind?

Best regards,

Wolfgang Denk
Haiying Wang - Nov. 25, 2010, 6:56 p.m.
On Thu, 2010-11-25 at 11:32 -0700, Wolfgang Denk wrote:
> Dear Haiying Wang,
> 
> In message <1290709405.2007.16.camel@haiying-laptop> you wrote:
> >
> > I think the u-boot.lds in nand_spl/board/freescale/mpc83xx/ needs to
> > have the fix as well.
> 
> Which fix do you mean?
> 
> I see two such files:
> 
>         nand_spl/board/freescale/mpc8313erdb/u-boot.lds
>         nand_spl/board/freescale/mpc8315erdb/u-boot.lds
> 
> They are identical and look sane to me.
> 
> OK, we can drop the "*(.eh_frame)" line, but it doesn't hurt either.
> 
> Which exact fix do you have in mind?
I mean:
"
-               *(.got2)
+               KEEP(*(.got2))
"
Wolfgang Denk - Nov. 26, 2010, 7:53 p.m.
Dear Haiying Wang,

In message <1290711414.2007.18.camel@haiying-laptop> you wrote:
>
> I mean:
> "
> -               *(.got2)
> +               KEEP(*(.got2))

I see. Of course you are right. Thanks for pointing out. I will post
an updated patch.

Best regards,

Wolfgang Denk

Patch

diff --git a/arch/powerpc/cpu/mpc83xx/u-boot.lds b/arch/powerpc/cpu/mpc83xx/u-boot.lds
index 0b74a13..81a7ace 100644
--- a/arch/powerpc/cpu/mpc83xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc83xx/u-boot.lds
@@ -1,5 +1,5 @@ 
 /*
- * (C) Copyright 2006
+ * (C) Copyright 2006-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
@@ -25,41 +25,13 @@  OUTPUT_ARCH(powerpc)
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
-  . = + SIZEOF_HEADERS;
-  .interp : { *(.interp) }
-  .hash          : { *(.hash)		}
-  .dynsym        : { *(.dynsym)		}
-  .dynstr        : { *(.dynstr)		}
-  .rel.text      : { *(.rel.text)		}
-  .rela.text     : { *(.rela.text)	}
-  .rel.data      : { *(.rel.data)		}
-  .rela.data     : { *(.rela.data)	}
-  .rel.rodata    : { *(.rel.rodata)	}
-  .rela.rodata   : { *(.rela.rodata)	}
-  .rel.got       : { *(.rel.got)		}
-  .rela.got      : { *(.rela.got)		}
-  .rel.ctors     : { *(.rel.ctors)	}
-  .rela.ctors    : { *(.rela.ctors)	}
-  .rel.dtors     : { *(.rel.dtors)	}
-  .rela.dtors    : { *(.rela.dtors)	}
-  .rel.bss       : { *(.rel.bss)		}
-  .rela.bss      : { *(.rela.bss)		}
-  .rel.plt       : { *(.rel.plt)		}
-  .rela.plt      : { *(.rela.plt)		}
-  .init          : { *(.init)	}
-  .plt : { *(.plt) }
   .text      :
   {
-    arch/powerpc/cpu/mpc83xx/start.o	(.text)
-    *(.text)
-    *(.got1)
+    arch/powerpc/cpu/mpc83xx/start.o	(.text*)
+    *(.text*)
     . = ALIGN(16);
-    *(.eh_frame)
     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
   }
-  .fini      : { *(.fini)    } =0
-  .ctors     : { *(.ctors)   }
-  .dtors     : { *(.dtors)   }
 
   /* Read-write section, merged into data segment: */
   . = (. + 0x0FFF) & 0xFFFFF000;
@@ -67,23 +39,19 @@  SECTIONS
   PROVIDE (erotext = .);
   .reloc   :
   {
-    *(.got)
+    KEEP(*(.got))
     _GOT2_TABLE_ = .;
-    *(.got2)
+    KEEP(*(.got2))
     _FIXUP_TABLE_ = .;
-    *(.fixup)
+    KEEP(*(.fixup))
   }
   __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2;
   __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
 
   .data    :
   {
-    *(.data)
-    *(.data1)
-    *(.sdata)
-    *(.sdata2)
-    *(.dynamic)
-    CONSTRUCTORS
+    *(.data*)
+    *(.sdata*)
   }
   _edata  =  .;
   PROVIDE (edata = .);
@@ -109,9 +77,8 @@  SECTIONS
   __bss_start = .;
   .bss (NOLOAD)       :
   {
-   *(.sbss) *(.scommon)
-   *(.dynbss)
-   *(.bss)
+   *(.bss*)
+   *(.sbss*)
    *(COMMON)
    . = ALIGN(4);
   }