[U-Boot] [PATCH v1 6/7] MIPS: u-boot.lds: add relocation specific sections
Gabor Juhos
juhosg at openwrt.org
Mon Feb 11 11:48:08 CET 2013
2013.02.09. 21:33 keltezéssel, daniel.schwierzeck at gmail.com írta:
> From: Gabor Juhos <juhosg at openwrt.org>
>
> This section contain the table needed for dynamic
> relocation. Also provide symbols for the relocation
> code to access the table.
>
> Discard all sections which are not needed in the final
> ELF binary and U-Boot image. Section .dynsym cannot be
> discarded or GNU ld crashes otherwise. This section
> will be stripped by GNU objcpy in a later patch.
>
> Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
> Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck at gmail.com>
> ---
> arch/mips/cpu/u-boot.lds | 24 +++++++++++++++++++++++-
> 1 file changed, 23 insertions(+), 1 deletion(-)
>
> diff --git a/arch/mips/cpu/u-boot.lds b/arch/mips/cpu/u-boot.lds
> index 4cd983a..cea9533 100644
> --- a/arch/mips/cpu/u-boot.lds
> +++ b/arch/mips/cpu/u-boot.lds
> @@ -70,7 +70,17 @@ SECTIONS
> . = ALIGN(4);
> __image_copy_end = .;
>
> - .bss : {
> + .rel.dyn : {
> + __rel_dyn_start = .;
> + *(.rel.dyn)
> + __rel_dyn_end = .;
> + }
> +
> + .dynsym : {
> + *(.dynsym)
> + }
This is not enough to avoid the binutils issue I have mentioned in the original
patch. The issue is present after applying this series.
The following example comes from the qemu_mips target compiled with the ELDK 5.3
toolchain:
> $ mips-linux-objdump --disassemble u-boot | grep bfc005[67]
> bfc00560: 00000000 nop
> bfc00564: bfc31f74 cache 0x3,8052(s8) <--- __rel_dyn_end
The offset of __rel_dyn_end:
0x0bfc31f74 - 0xbfc00000 = 0x31f74 = 204660
> bfc00568: bfc30804 cache 0x3,2052(s8)
> bfc0056c: bfc30804 cache 0x3,2052(s8)
> bfc00570: bfc2fa70 cache 0x2,-1424(s8)
> bfc00574: 000001df 0x1df
> bfc00578 <in_ram>:
> bfc00578: 8d0bfffc lw t3,-4(t0)
> bfc0057c: 8d0cfff8 lw t4,-8(t0)
> $ ls -l u-boot.bin
> -rw-r--r-- 1 juhosg root 204284 Feb 11 11:29 u-boot.bin
204660 - 204284 = 376 bytes are missing from the final u-boot.bin.
-Gabor
More information about the U-Boot
mailing list