mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-09 03:21:51 +00:00
remove all references to .dynsym
Discard all .dynsym sections from linker scripts Remove all __dynsym_start definitions from linker scripts Remove all __dynsym_start references from the codebase Note: this touches include/asm-generic/sections.h, which is not ARM-specific, but actual uses of __dynsym_start are only in ARM, so this patch can safely go through the ARM repository. Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net> Tested-by: Lubomir Popov <lpopov@mm-sol.com> Tested-by: Jeroen Hofstee <jeroen@myspectrum.nl> Reviewed-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
This commit is contained in:
parent
c37980c31a
commit
09d81184e1
16 changed files with 9 additions and 82 deletions
|
@ -57,11 +57,6 @@ SECTIONS
|
||||||
__rel_dyn_end = .;
|
__rel_dyn_end = .;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dynsym : {
|
|
||||||
__dynsym_start = .;
|
|
||||||
*(.dynsym)
|
|
||||||
}
|
|
||||||
|
|
||||||
.bss : {
|
.bss : {
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
__bss_start = .;
|
__bss_start = .;
|
||||||
|
|
|
@ -57,11 +57,6 @@ SECTIONS
|
||||||
__rel_dyn_end = .;
|
__rel_dyn_end = .;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dynsym : {
|
|
||||||
__dynsym_start = .;
|
|
||||||
*(.dynsym)
|
|
||||||
}
|
|
||||||
|
|
||||||
.bss : {
|
.bss : {
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
__bss_start = .;
|
__bss_start = .;
|
||||||
|
|
|
@ -62,11 +62,6 @@ SECTIONS
|
||||||
__rel_dyn_end = .;
|
__rel_dyn_end = .;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dynsym : {
|
|
||||||
__dynsym_start = .;
|
|
||||||
*(.dynsym)
|
|
||||||
}
|
|
||||||
|
|
||||||
_end = .;
|
_end = .;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -88,6 +83,7 @@ SECTIONS
|
||||||
KEEP(*(.__bss_end));
|
KEEP(*(.__bss_end));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/DISCARD/ : { *(.dynsym) }
|
||||||
/DISCARD/ : { *(.dynstr*) }
|
/DISCARD/ : { *(.dynstr*) }
|
||||||
/DISCARD/ : { *(.dynamic*) }
|
/DISCARD/ : { *(.dynamic*) }
|
||||||
/DISCARD/ : { *(.plt*) }
|
/DISCARD/ : { *(.plt*) }
|
||||||
|
|
|
@ -58,11 +58,6 @@ SECTIONS
|
||||||
__rel_dyn_end = .;
|
__rel_dyn_end = .;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dynsym : {
|
|
||||||
__dynsym_start = .;
|
|
||||||
*(.dynsym)
|
|
||||||
}
|
|
||||||
|
|
||||||
_end = .;
|
_end = .;
|
||||||
|
|
||||||
.bss __rel_dyn_start (OVERLAY) : {
|
.bss __rel_dyn_start (OVERLAY) : {
|
||||||
|
@ -72,6 +67,7 @@ SECTIONS
|
||||||
__bss_end = .;
|
__bss_end = .;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/DISCARD/ : { *(.dynsym) }
|
||||||
/DISCARD/ : { *(.dynstr*) }
|
/DISCARD/ : { *(.dynstr*) }
|
||||||
/DISCARD/ : { *(.dynamic*) }
|
/DISCARD/ : { *(.dynamic*) }
|
||||||
/DISCARD/ : { *(.plt*) }
|
/DISCARD/ : { *(.plt*) }
|
||||||
|
|
|
@ -65,11 +65,6 @@ SECTIONS
|
||||||
__rel_dyn_end = .;
|
__rel_dyn_end = .;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dynsym : {
|
|
||||||
__dynsym_start = .;
|
|
||||||
*(.dynsym)
|
|
||||||
}
|
|
||||||
|
|
||||||
_end = .;
|
_end = .;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -101,6 +96,7 @@ SECTIONS
|
||||||
KEEP(*(.__bss_end));
|
KEEP(*(.__bss_end));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/DISCARD/ : { *(.dynsym) }
|
||||||
/DISCARD/ : { *(.dynstr*) }
|
/DISCARD/ : { *(.dynstr*) }
|
||||||
/DISCARD/ : { *(.dynamic*) }
|
/DISCARD/ : { *(.dynamic*) }
|
||||||
/DISCARD/ : { *(.plt*) }
|
/DISCARD/ : { *(.plt*) }
|
||||||
|
|
|
@ -56,8 +56,6 @@ copy_loop:
|
||||||
/*
|
/*
|
||||||
* fix .rel.dyn relocations
|
* fix .rel.dyn relocations
|
||||||
*/
|
*/
|
||||||
ldr r10, _dynsym_start_ofs /* r10 <- __dynsym_start local ofs */
|
|
||||||
add r10, r10, r7 /* r10 <- SRC &__dynsym_start */
|
|
||||||
ldr r2, _rel_dyn_start_ofs /* r2 <- __rel_dyn_start local ofs */
|
ldr r2, _rel_dyn_start_ofs /* r2 <- __rel_dyn_start local ofs */
|
||||||
add r2, r2, r7 /* r2 <- SRC &__rel_dyn_start */
|
add r2, r2, r7 /* r2 <- SRC &__rel_dyn_start */
|
||||||
ldr r3, _rel_dyn_end_ofs /* r3 <- __rel_dyn_end local ofs */
|
ldr r3, _rel_dyn_end_ofs /* r3 <- __rel_dyn_end local ofs */
|
||||||
|
@ -69,17 +67,8 @@ fixloop:
|
||||||
and r7, r1, #0xff
|
and r7, r1, #0xff
|
||||||
cmp r7, #23 /* relative fixup? */
|
cmp r7, #23 /* relative fixup? */
|
||||||
beq fixrel
|
beq fixrel
|
||||||
cmp r7, #2 /* absolute fixup? */
|
|
||||||
beq fixabs
|
|
||||||
/* ignore unknown type of fixup */
|
/* ignore unknown type of fixup */
|
||||||
b fixnext
|
b fixnext
|
||||||
fixabs:
|
|
||||||
/* absolute fix: set location to (offset) symbol value */
|
|
||||||
mov r1, r1, LSR #4 /* r1 <- symbol index in .dynsym */
|
|
||||||
add r1, r10, r1 /* r1 <- address of symbol in table */
|
|
||||||
ldr r1, [r1, #4] /* r1 <- symbol value */
|
|
||||||
add r1, r1, r9 /* r1 <- relocated sym addr */
|
|
||||||
b fixnext
|
|
||||||
fixrel:
|
fixrel:
|
||||||
/* relative fix: increase location by offset */
|
/* relative fix: increase location by offset */
|
||||||
ldr r1, [r0]
|
ldr r1, [r0]
|
||||||
|
@ -106,7 +95,5 @@ _rel_dyn_start_ofs:
|
||||||
.word __rel_dyn_start - relocate_code
|
.word __rel_dyn_start - relocate_code
|
||||||
_rel_dyn_end_ofs:
|
_rel_dyn_end_ofs:
|
||||||
.word __rel_dyn_end - relocate_code
|
.word __rel_dyn_end - relocate_code
|
||||||
_dynsym_start_ofs:
|
|
||||||
.word __dynsym_start - relocate_code
|
|
||||||
|
|
||||||
ENDPROC(relocate_code)
|
ENDPROC(relocate_code)
|
||||||
|
|
|
@ -70,11 +70,6 @@ SECTIONS
|
||||||
__rel_dyn_end = .;
|
__rel_dyn_end = .;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dynsym : {
|
|
||||||
__dynsym_start = .;
|
|
||||||
*(.dynsym)
|
|
||||||
}
|
|
||||||
|
|
||||||
_end = .;
|
_end = .;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -96,6 +91,7 @@ SECTIONS
|
||||||
KEEP(*(.__bss_end));
|
KEEP(*(.__bss_end));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/DISCARD/ : { *(.dynsym) }
|
||||||
/DISCARD/ : { *(.dynstr*) }
|
/DISCARD/ : { *(.dynstr*) }
|
||||||
/DISCARD/ : { *(.dynamic*) }
|
/DISCARD/ : { *(.dynamic*) }
|
||||||
/DISCARD/ : { *(.plt*) }
|
/DISCARD/ : { *(.plt*) }
|
||||||
|
|
|
@ -70,11 +70,6 @@ SECTIONS
|
||||||
__rel_dyn_end = .;
|
__rel_dyn_end = .;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dynsym : {
|
|
||||||
__dynsym_start = .;
|
|
||||||
*(.dynsym)
|
|
||||||
}
|
|
||||||
|
|
||||||
_end = .;
|
_end = .;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -96,6 +91,7 @@ SECTIONS
|
||||||
KEEP(*(.__bss_end));
|
KEEP(*(.__bss_end));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/DISCARD/ : { *(.dynsym) }
|
||||||
/DISCARD/ : { *(.dynstr*) }
|
/DISCARD/ : { *(.dynstr*) }
|
||||||
/DISCARD/ : { *(.dynamic*) }
|
/DISCARD/ : { *(.dynamic*) }
|
||||||
/DISCARD/ : { *(.plt*) }
|
/DISCARD/ : { *(.plt*) }
|
||||||
|
|
|
@ -70,11 +70,6 @@ SECTIONS
|
||||||
__rel_dyn_end = .;
|
__rel_dyn_end = .;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dynsym : {
|
|
||||||
__dynsym_start = .;
|
|
||||||
*(.dynsym)
|
|
||||||
}
|
|
||||||
|
|
||||||
_end = .;
|
_end = .;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -96,6 +91,7 @@ SECTIONS
|
||||||
KEEP(*(.__bss_end));
|
KEEP(*(.__bss_end));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/DISCARD/ : { *(.dynsym) }
|
||||||
/DISCARD/ : { *(.dynstr*) }
|
/DISCARD/ : { *(.dynstr*) }
|
||||||
/DISCARD/ : { *(.dynamic*) }
|
/DISCARD/ : { *(.dynamic*) }
|
||||||
/DISCARD/ : { *(.plt*) }
|
/DISCARD/ : { *(.plt*) }
|
||||||
|
|
|
@ -54,11 +54,6 @@ SECTIONS
|
||||||
__rel_dyn_end = .;
|
__rel_dyn_end = .;
|
||||||
} >.sram
|
} >.sram
|
||||||
|
|
||||||
.dynsym : {
|
|
||||||
__dynsym_start = .;
|
|
||||||
*(.dynsym)
|
|
||||||
} >.sram
|
|
||||||
|
|
||||||
.bss :
|
.bss :
|
||||||
{
|
{
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
|
|
|
@ -55,11 +55,6 @@ SECTIONS
|
||||||
__rel_dyn_end = .;
|
__rel_dyn_end = .;
|
||||||
} >.sram
|
} >.sram
|
||||||
|
|
||||||
.dynsym : {
|
|
||||||
__dynsym_start = .;
|
|
||||||
*(.dynsym)
|
|
||||||
} >.sram
|
|
||||||
|
|
||||||
.bss :
|
.bss :
|
||||||
{
|
{
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
|
|
|
@ -61,7 +61,6 @@ SECTIONS
|
||||||
__image_copy_end = .;
|
__image_copy_end = .;
|
||||||
__rel_dyn_start = .;
|
__rel_dyn_start = .;
|
||||||
__rel_dyn_end = .;
|
__rel_dyn_end = .;
|
||||||
__dynsym_start = .;
|
|
||||||
|
|
||||||
__got_start = .;
|
__got_start = .;
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
|
|
|
@ -70,11 +70,6 @@ SECTIONS
|
||||||
__rel_dyn_end = .;
|
__rel_dyn_end = .;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dynsym : {
|
|
||||||
__dynsym_start = .;
|
|
||||||
*(.dynsym)
|
|
||||||
}
|
|
||||||
|
|
||||||
_end = .;
|
_end = .;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -96,6 +91,7 @@ SECTIONS
|
||||||
KEEP(*(.__bss_end));
|
KEEP(*(.__bss_end));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/DISCARD/ : { *(.dynsym) }
|
||||||
/DISCARD/ : { *(.dynstr*) }
|
/DISCARD/ : { *(.dynstr*) }
|
||||||
/DISCARD/ : { *(.dynamic*) }
|
/DISCARD/ : { *(.dynamic*) }
|
||||||
/DISCARD/ : { *(.plt*) }
|
/DISCARD/ : { *(.plt*) }
|
||||||
|
|
|
@ -73,11 +73,6 @@ SECTIONS
|
||||||
__rel_dyn_end = .;
|
__rel_dyn_end = .;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dynsym : {
|
|
||||||
__dynsym_start = .;
|
|
||||||
*(.dynsym)
|
|
||||||
}
|
|
||||||
|
|
||||||
_end = .;
|
_end = .;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -100,6 +95,7 @@ SECTIONS
|
||||||
}
|
}
|
||||||
|
|
||||||
/DISCARD/ : { *(.bss*) }
|
/DISCARD/ : { *(.bss*) }
|
||||||
|
/DISCARD/ : { *(.dynsym) }
|
||||||
/DISCARD/ : { *(.dynstr*) }
|
/DISCARD/ : { *(.dynstr*) }
|
||||||
/DISCARD/ : { *(.dynsym*) }
|
/DISCARD/ : { *(.dynsym*) }
|
||||||
/DISCARD/ : { *(.dynamic*) }
|
/DISCARD/ : { *(.dynamic*) }
|
||||||
|
|
|
@ -67,11 +67,6 @@ SECTIONS
|
||||||
__rel_dyn_end = .;
|
__rel_dyn_end = .;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dynsym : {
|
|
||||||
__dynsym_start = .;
|
|
||||||
*(.dynsym)
|
|
||||||
}
|
|
||||||
|
|
||||||
. = ALIGN(0x800);
|
. = ALIGN(0x800);
|
||||||
|
|
||||||
_end = .;
|
_end = .;
|
||||||
|
@ -84,6 +79,7 @@ SECTIONS
|
||||||
}
|
}
|
||||||
|
|
||||||
/DISCARD/ : { *(.bss*) }
|
/DISCARD/ : { *(.bss*) }
|
||||||
|
/DISCARD/ : { *(.dynsym) }
|
||||||
/DISCARD/ : { *(.dynstr*) }
|
/DISCARD/ : { *(.dynstr*) }
|
||||||
/DISCARD/ : { *(.dynsym*) }
|
/DISCARD/ : { *(.dynsym*) }
|
||||||
/DISCARD/ : { *(.dynamic*) }
|
/DISCARD/ : { *(.dynamic*) }
|
||||||
|
|
|
@ -90,9 +90,6 @@ extern void _start(void);
|
||||||
extern ulong _rel_dyn_start_ofs;
|
extern ulong _rel_dyn_start_ofs;
|
||||||
extern ulong _rel_dyn_end_ofs;
|
extern ulong _rel_dyn_end_ofs;
|
||||||
|
|
||||||
/* Start/end of the relocation symbol table, as an offset from _start */
|
|
||||||
extern ulong _dynsym_start_ofs;
|
|
||||||
|
|
||||||
/* End of the region to be relocated, as an offset form _start */
|
/* End of the region to be relocated, as an offset form _start */
|
||||||
extern ulong _image_copy_end_ofs;
|
extern ulong _image_copy_end_ofs;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue