Skip to content
Snippets Groups Projects
Commit 09d81184 authored by Albert ARIBAUD's avatar Albert ARIBAUD
Browse files

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: default avatarAlbert ARIBAUD <albert.u.boot@aribaud.net>
Tested-by: default avatarLubomir Popov <lpopov@mm-sol.com>
Tested-by: default avatarJeroen Hofstee <jeroen@myspectrum.nl>
Reviewed-by: default avatarBenoît Thébaudeau <benoit.thebaudeau@advansee.com>
parent c37980c3
No related branches found
No related tags found
No related merge requests found
Showing
with 9 additions and 82 deletions
...@@ -57,11 +57,6 @@ SECTIONS ...@@ -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 ...@@ -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 ...@@ -62,11 +62,6 @@ SECTIONS
__rel_dyn_end = .; __rel_dyn_end = .;
} }
.dynsym : {
__dynsym_start = .;
*(.dynsym)
}
_end = .; _end = .;
/* /*
...@@ -88,6 +83,7 @@ SECTIONS ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -65,11 +65,6 @@ SECTIONS
__rel_dyn_end = .; __rel_dyn_end = .;
} }
.dynsym : {
__dynsym_start = .;
*(.dynsym)
}
_end = .; _end = .;
/* /*
...@@ -101,6 +96,7 @@ SECTIONS ...@@ -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: ...@@ -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: ...@@ -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: ...@@ -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 ...@@ -70,11 +70,6 @@ SECTIONS
__rel_dyn_end = .; __rel_dyn_end = .;
} }
.dynsym : {
__dynsym_start = .;
*(.dynsym)
}
_end = .; _end = .;
/* /*
...@@ -96,6 +91,7 @@ SECTIONS ...@@ -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 ...@@ -70,11 +70,6 @@ SECTIONS
__rel_dyn_end = .; __rel_dyn_end = .;
} }
.dynsym : {
__dynsym_start = .;
*(.dynsym)
}
_end = .; _end = .;
/* /*
...@@ -96,6 +91,7 @@ SECTIONS ...@@ -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 ...@@ -70,11 +70,6 @@ SECTIONS
__rel_dyn_end = .; __rel_dyn_end = .;
} }
.dynsym : {
__dynsym_start = .;
*(.dynsym)
}
_end = .; _end = .;
/* /*
...@@ -96,6 +91,7 @@ SECTIONS ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -70,11 +70,6 @@ SECTIONS
__rel_dyn_end = .; __rel_dyn_end = .;
} }
.dynsym : {
__dynsym_start = .;
*(.dynsym)
}
_end = .; _end = .;
/* /*
...@@ -96,6 +91,7 @@ SECTIONS ...@@ -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 ...@@ -73,11 +73,6 @@ SECTIONS
__rel_dyn_end = .; __rel_dyn_end = .;
} }
.dynsym : {
__dynsym_start = .;
*(.dynsym)
}
_end = .; _end = .;
/* /*
...@@ -100,6 +95,7 @@ SECTIONS ...@@ -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 ...@@ -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 ...@@ -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); ...@@ -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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment