From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?Q?Beno=C3=AEt_Th=C3=A9baudeau?= Date: Wed, 15 May 2013 00:09:08 +0200 (CEST) Subject: [U-Boot] [PATCH 3/5] arm: make relocation symbols compiler-generated In-Reply-To: <1368561780-19104-4-git-send-email-albert.u.boot@aribaud.net> References: <1368561780-19104-1-git-send-email-albert.u.boot@aribaud.net> <1368561780-19104-2-git-send-email-albert.u.boot@aribaud.net> <1368561780-19104-3-git-send-email-albert.u.boot@aribaud.net> <1368561780-19104-4-git-send-email-albert.u.boot@aribaud.net> Message-ID: <1432148385.822742.1368569348619.JavaMail.root@advansee.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 Tuesday, May 14, 2013 10:02:58 PM, Albert ARIBAUD wrote: > This change is only done where needed: some linker > scripts may contain relocation symbols yet remain > unchanged. > > __rel_dyn_start, __rel_dyn_end and __dynsym_start > each requires its own output section; putting them > in relocation sections changes the sections' nature > which breaks relocation. > > Signed-off-by: Albert ARIBAUD [...] > diff --git a/arch/arm/lib/relocate.S b/arch/arm/lib/relocate.S > index 2f22c8c..818735c 100644 > --- a/arch/arm/lib/relocate.S > +++ b/arch/arm/lib/relocate.S > @@ -54,12 +54,9 @@ copy_loop: > /* > * fix .rel.dyn relocations > */ > - ldr r10, _dynsym_start_ofs /* r10 <- sym table ofs */ > - add r10, r10, r9 /* r10 <- sym table in FLASH */ > - ldr r2, _rel_dyn_start_ofs /* r2 <- rel dyn start ofs */ > - add r2, r2, r9 /* r2 <- rel dyn start in FLASH */ > - ldr r3, _rel_dyn_end_ofs /* r3 <- rel dyn end ofs */ > - add r3, r3, r9 /* r3 <- rel dyn end in FLASH */ > + ldr r10, =__dynsym_start /* r10 <- sym table ofs */ > + ldr r2, =__rel_dyn_start /* r2 <- rel dyn start ofs */ > + ldr r3, =__rel_dyn_end /* r3 <- rel dyn end ofs */ 'ofs' -> 'in FLASH' in the comments of the 3 lines above. > fixloop: > ldr r0, [r2] /* r0 <- SRC location to fix up */ > add r0, r0, r9 /* r0 <- DST location to fix up */ > @@ -98,11 +95,4 @@ relocate_done: > bx lr > #endif > > -_rel_dyn_start_ofs: > - .word __rel_dyn_start - relocate_code > -_rel_dyn_end_ofs: > - .word __rel_dyn_end - relocate_code > -_dynsym_start_ofs: > - .word __dynsym_start - relocate_code > - > ENDPROC(relocate_code) [...] Best regards, Beno?t