Skip to content

Commit f992f5b

Browse files
committed
fully disable dynamic linking for kernels
1 parent b21ea24 commit f992f5b

File tree

2 files changed

+56
-0
lines changed

2 files changed

+56
-0
lines changed

kernel/scripts/link32.ld

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,34 @@ ENTRY(_start)
1010
SECTIONS
1111
{
1212
. = STARTUP_ADDR;
13+
/DISCARD/ : {
14+
*(.interp)
15+
*(.dynsym)
16+
*(.dynstr)
17+
*(.gnu.version)
18+
*(.gnu.version_d)
19+
*(.gnu.version_r)
20+
*(.rela.dyn)
21+
*(.rela.init)
22+
*(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
23+
*(.rela.fini)
24+
*(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
25+
*(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*)
26+
*(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
27+
*(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
28+
*(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
29+
*(.rela.ctors)
30+
*(.rela.dtors)
31+
*(.rela.got)
32+
*(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
33+
*(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
34+
*(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
35+
*(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
36+
*(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
37+
*(.rela.iplt)
38+
*(.rela.plt)
39+
*(.dynamic)
40+
}
1341
.interp : { *(.interp) }
1442
.note.gnu.build-id : { *(.note.gnu.build-id) }
1543
.hash : { *(.hash) }

kernel/scripts/link64.ld

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,34 @@ ENTRY(_start)
1010
SECTIONS
1111
{
1212
. = STARTUP_ADDR;
13+
/DISCARD/ : {
14+
*(.interp)
15+
*(.dynsym)
16+
*(.dynstr)
17+
*(.gnu.version)
18+
*(.gnu.version_d)
19+
*(.gnu.version_r)
20+
*(.rela.dyn)
21+
*(.rela.init)
22+
*(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
23+
*(.rela.fini)
24+
*(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
25+
*(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*)
26+
*(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
27+
*(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
28+
*(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
29+
*(.rela.ctors)
30+
*(.rela.dtors)
31+
*(.rela.got)
32+
*(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
33+
*(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
34+
*(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
35+
*(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
36+
*(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
37+
*(.rela.iplt)
38+
*(.rela.plt)
39+
*(.dynamic)
40+
}
1341
.interp : { *(.interp) }
1442
.note.gnu.build-id : { *(.note.gnu.build-id) }
1543
.hash : { *(.hash) }

0 commit comments

Comments
 (0)