From mboxrd@z Thu Jan 1 00:00:00 1970 From: Darius Augulis Date: Sun, 31 Oct 2010 20:35:45 +0200 Subject: [U-Boot] [RFC] arm926ejs: fix linker file for newer ld support In-Reply-To: <1288547025-16877-1-git-send-email-albert.aribaud@free.fr> References: <1288547025-16877-1-git-send-email-albert.aribaud@free.fr> Message-ID: <4CCDB701.8090700@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Albert, On 10/31/2010 07:43 PM, Albert Aribaud wrote: > This is an RFC so far. I'd like people who have issues with newer linkers to test this patch. > > It is intended for arm926ejs, so you might have to 'port' it to your own ARM architecture. Thanks! It works on arm1176/mini6410 and solves problem of missing commands. tested with gcc 4.4.5 + binutils 2.20.1 toolchain from Buildroot. But it's strange, because I done the same test of declaring variable in start.s: .globl cmd_start cmd_start: .word __u_boot_cmd_start Then disassembled elf shows it's value: 57e00048 : 57e00048: 00000000 .word 0x00000000 Commands are there and somehow working, but at least it's very strange. Darius. > > It has been roughly tested with ELDK 4.2 and CodeSourcery arm-2010q1-202; both seem to run rather properly (no NAND issue at startup, 'help' and commands seem to be there). > > Amicalement, > Albert. > > Signed-off-by: Albert Aribaud > --- > arch/arm/cpu/arm926ejs/u-boot.lds | 18 +++++++++--------- > 1 files changed, 9 insertions(+), 9 deletions(-) > > diff --git a/arch/arm/cpu/arm926ejs/u-boot.lds b/arch/arm/cpu/arm926ejs/u-boot.lds > index 72f45f8..4e42543 100644 > --- a/arch/arm/cpu/arm926ejs/u-boot.lds > +++ b/arch/arm/cpu/arm926ejs/u-boot.lds > @@ -45,15 +45,6 @@ SECTIONS > > . = ALIGN(4); > > - __rel_dyn_start = .; > - .rel.dyn : { *(.rel.dyn) } > - __rel_dyn_end = .; > - > - __dynsym_start = .; > - .dynsym : { *(.dynsym) } > - > - . = ALIGN(4); > - > . = .; > __u_boot_cmd_start = .; > .u_boot_cmd : { *(.u_boot_cmd) } > @@ -64,6 +55,15 @@ SECTIONS > .bss (NOLOAD) : { *(.bss) . = ALIGN(4); } > _end = .; > > + __rel_dyn_start = .; > + .rel.dyn : { *(.rel*) } > + __rel_dyn_end = .; > + > + __dynsym_start = .; > + .dynsym : { *(.dynsym) } > + > + . = ALIGN(4); > + > /DISCARD/ : { *(.dynstr*) } > /DISCARD/ : { *(.dynamic*) } > /DISCARD/ : { *(.plt*) }