File tree 23 files changed +128
-147
lines changed
23 files changed +128
-147
lines changed Original file line number Diff line number Diff line change @@ -6,25 +6,23 @@ SECTIONS {
6
6
. = BOOT_BASE;
7
7
.text : {
8
8
loader_start = .;
9
- *(BOOTSTRAP);
10
- *(.text);
9
+ KEEP( *(BOOTSTRAP) );
10
+ *(.text .text.* );
11
11
}
12
12
. = BOOT_BASE + 0x8000;
13
13
.data : {
14
14
*(BOOTPT); /* bootstrap page table */
15
15
*(BOOTSTACK); /* bootstrap stack */
16
- *(.data); /* initialized data */
17
- *(.rodata);
18
- *(.rodata.*);
19
- *(.sdata);
20
- *(.reginfo);
21
- *(.sbss);
22
- *(.scommon);
23
- *(.bss); /* uninitialized static variables */
16
+ *(.data .data.*); /* initialized data */
17
+ *(.rodata .rodata.*);
18
+ *(.sdata .sdata.*);
19
+ *(.sbss .sbss.*);
20
+ *(.scommon .scommon.*);
21
+ *(.bss .bss.*); /* uninitialized static variables */
24
22
*(COMMON); /* global variables */
25
23
loader_end = .;
26
24
payload_start = .;
27
- *(.payload);
25
+ KEEP( *(.payload) );
28
26
payload_end = .;
29
27
}
30
28
Original file line number Diff line number Diff line change @@ -6,8 +6,8 @@ SECTIONS {
6
6
. = 0x0;
7
7
.text : {
8
8
HIDDEN(loader_start = .);
9
- *(BOOTSTRAP);
10
- *(.text);
9
+ KEEP( *(BOOTSTRAP) );
10
+ *(.text .text.* );
11
11
}
12
12
.dynamic : { *(.dynamic); }
13
13
.rela.got : { *(.rela.got); }
@@ -16,14 +16,14 @@ SECTIONS {
16
16
.dynstr : { *(.dynstr); }
17
17
. = 0x8000;
18
18
.data : {
19
- *(.data*); /* initialized data */
20
- *(.rodata*);
21
- *(.bss); /* uninitialized static variables */
19
+ *(.data .data. *); /* initialized data */
20
+ *(.rodata .rodata. *);
21
+ *(.bss .bss.* ); /* uninitialized static variables */
22
22
*(COMMON); /* global variables */
23
- *(.got .got.plt );
23
+ *(.got .got.* );
24
24
HIDDEN(loader_end = .);
25
25
HIDDEN(payload_start = .);
26
- *(.payload);
26
+ KEEP( *(.payload) );
27
27
HIDDEN(payload_end = .);
28
28
}
29
29
Original file line number Diff line number Diff line change @@ -4,22 +4,20 @@ ENTRY(start)
4
4
SECTIONS {
5
5
.boot 0x4400000: AT (0x4400000) {
6
6
loader_start = .;
7
- *(BOOTSTRAP);
8
- *(.text);
9
- *(.text.*);
10
- *(.sdata);
11
- *(.sdata2);
12
- *(.sbss);
13
- *(.rodata);
14
- *(.rodata.*);
7
+ KEEP(*(BOOTSTRAP));
8
+ *(.text .text.*);
9
+ *(.sdata .sdata.*);
10
+ *(.sdata2 .sdata2.*);
11
+ *(.sbss .sbss.*);
12
+ *(.rodata .rodata.*);
15
13
*(.data .data.*); /* initialized data */
16
14
__gp = . ;
17
15
*(.got .got.*);
18
- *(.bss); /* uninitialized static variables */
16
+ *(.bss .bss.* ); /* uninitialized static variables */
19
17
*(COMMON);
20
18
loader_end = .;
21
19
payload_start = .;
22
- *(.payload);
20
+ KEEP( *(.payload) );
23
21
payload_end = .;
24
22
}
25
23
Original file line number Diff line number Diff line change @@ -8,22 +8,21 @@ SECTIONS {
8
8
#endif
9
9
.text : {
10
10
loader_start = .;
11
- *(BOOTSTRAP);
12
- *(.text);
11
+ KEEP( *(BOOTSTRAP) );
12
+ *(.text .text.* );
13
13
}
14
14
.data : {
15
- *(.data); /* initialized data */
16
- *(.rodata);
17
- *(.rodata.*);
18
- *(.sdata);
15
+ *(.data .data.*); /* initialized data */
16
+ *(.rodata .rodata.*);
17
+ *(.sdata .sdata.*);
19
18
*(.reginfo);
20
- *(.sbss);
21
- *(.scommon);
22
- *(.bss); /* uninitialized static variables */
19
+ *(.sbss .sbss.* );
20
+ *(.scommon .scommon.* );
21
+ *(.bss .bss.* ); /* uninitialized static variables */
23
22
*(COMMON); /* global variables */
24
23
loader_end = .;
25
24
payload_start = .;
26
- *(.payload);
25
+ KEEP( *(.payload) );
27
26
payload_end = .;
28
27
}
29
28
Original file line number Diff line number Diff line change @@ -4,23 +4,20 @@ SECTIONS {
4
4
. = 0x08000000;
5
5
.text : {
6
6
loader_start = .;
7
- *(BOOTSTRAP);
8
- *(.text);
9
- *(.text.*);
7
+ KEEP(*(BOOTSTRAP));
8
+ *(.text .text.*);
10
9
}
11
10
.data : {
12
- *(.data); /* initialized data */
13
- *(.rodata);
14
- *(.rodata.*);
15
- *(.sdata);
16
- *(.reginfo);
17
- *(.sbss);
18
- *(.scommon);
19
- *(.bss); /* uninitialized static variables */
11
+ *(.data .data.*); /* initialized data */
12
+ *(.rodata .rodata.*);
13
+ *(.sdata .sdata.*);
14
+ *(.sbss .sbss.*);
15
+ *(.scommon .scommon.*);
16
+ *(.bss .bss.*); /* uninitialized static variables */
20
17
*(COMMON); /* global variables */
21
18
loader_end = .;
22
19
payload_start = .;
23
- *(.payload);
20
+ KEEP( *(.payload) );
24
21
payload_end = .;
25
22
}
26
23
Original file line number Diff line number Diff line change @@ -7,8 +7,8 @@ SECTIONS {
7
7
8
8
.text : {
9
9
loader_start = .;
10
- *(BOOTSTRAP);
11
- *(.text);
10
+ KEEP( *(BOOTSTRAP) );
11
+ *(.text .text.* );
12
12
}
13
13
14
14
. = ALIGN(0x1000);
@@ -26,18 +26,16 @@ SECTIONS {
26
26
. = ALIGN(0x1000);
27
27
28
28
.data : {
29
- *(.data); /* initialized data */
30
- *(.rodata);
31
- *(.rodata.*);
32
- *(.sdata);
33
- *(.reginfo);
34
- *(.sbss);
35
- *(.scommon);
36
- *(.bss); /* uninitialized static variables */
29
+ *(.data .data.*); /* initialized data */
30
+ *(.rodata .rodata.*);
31
+ *(.sdata .sdata.*);
32
+ *(.sbss .sbss.*);
33
+ *(.scommon .scommon.*);
34
+ *(.bss .bss.*); /* uninitialized static variables */
37
35
*(COMMON); /* global variables */
38
36
loader_end = .;
39
37
payload_start = .;
40
- *(.payload);
38
+ KEEP( *(.payload) );
41
39
payload_end = .;
42
40
}
43
41
Original file line number Diff line number Diff line change @@ -4,20 +4,18 @@ SECTIONS {
4
4
. = 0x4000;
5
5
.boot : {
6
6
loader_start = .;
7
- *(BOOTSTRAP);
8
- *(.text.*);
7
+ KEEP( *(BOOTSTRAP) );
8
+ *(.text .text .*);
9
9
10
- *(.data); /* initialized data */
11
- *(.rodata);
12
- *(.rodata.*);
13
- *(.sdata);
14
- *(.reginfo);
15
- *(.sbss);
16
- *(.bss); /* uninitialized static variables */
10
+ *(.data .data.*); /* initialized data */
11
+ *(.rodata .rodata.*);
12
+ *(.sdata .sdata.*);
13
+ *(.sbss .sbss.*);
14
+ *(.bss .bss.*); /* uninitialized static variables */
17
15
*(COMMON); /* global variables */
18
16
loader_end = .;
19
17
payload_start = .;
20
- *(.payload);
18
+ KEEP( *(.payload) );
21
19
payload_end = .;
22
20
}
23
21
Original file line number Diff line number Diff line change @@ -97,7 +97,6 @@ if BUILD
97
97
' -nostdlib' ,
98
98
' -Wl,--nmagic' ,
99
99
' -T' , meson .current_build_dir()/ ' _link.ld' ,
100
- ' -Wl,--no-gc-sections' ,
101
100
]
102
101
103
102
if cc.get_id() == ' clang'
Original file line number Diff line number Diff line change @@ -2,24 +2,23 @@ SECTIONS {
2
2
.text : {
3
3
kernel_load_address = .;
4
4
ktext_start = .;
5
- *(.text);
5
+ *(.text .text.* );
6
6
ktext_end = .;
7
7
}
8
8
.data : {
9
9
kdata_start = .;
10
- *(.data); /* initialized data */
11
- *(.bss); /* uninitialized static variables */
10
+ *(.data .data.* ); /* initialized data */
11
+ *(.bss .bss.* ); /* uninitialized static variables */
12
12
*(COMMON); /* global variables */
13
13
14
14
*(.rodata .rodata.*);
15
15
*(.eh_frame .eh_frame.*); /* stack unwinding data */
16
16
*(.eh_frame_hdr .eh_frame_hdr.*);
17
- *(.sdata);
18
- *(.reginfo);
17
+ *(.sdata .sdata.*);
19
18
}
20
19
.sbss : {
21
- *(.sbss);
22
- *(.scommon);
20
+ *(.sbss .sbss.* );
21
+ *(.scommon .scommon.* );
23
22
}
24
23
25
24
kdata_end = .;
Original file line number Diff line number Diff line change @@ -16,9 +16,9 @@ SECTIONS {
16
16
17
17
.unmapped (BOOT_OFFSET + SIZEOF_HEADERS): AT (BOOT_OFFSET + SIZEOF_HEADERS) {
18
18
unmapped_start = .;
19
- *(K_TEXT_START);
20
- *(K_DATA_START);
21
- *(K_INI_PTLS);
19
+ KEEP( *(K_TEXT_START) );
20
+ KEEP( *(K_DATA_START) );
21
+ KEEP( *(K_INI_PTLS) );
22
22
unmapped_end = .;
23
23
}
24
24
@@ -28,14 +28,14 @@ SECTIONS {
28
28
ktext_end = .;
29
29
30
30
kdata_start = .;
31
- *(.data); /* initialized data */
31
+ *(.data .data.* ); /* initialized data */
32
32
*(.rodata .rodata.*);
33
- *(.eh_frame .eh_frame.*); /* stack unwinding data */
33
+ *(.eh_frame .eh_frame.*); /* stack unwinding data */
34
34
*(.eh_frame_hdr .eh_frame_hdr.*);
35
35
*(COMMON); /* global variables */
36
36
37
37
/* bss can't be omitted from the ELF image. */
38
- *(.bss); /* uninitialized static variables */
38
+ *(.bss .bss.* ); /* uninitialized static variables */
39
39
kdata_end = .;
40
40
}
41
41
Original file line number Diff line number Diff line change @@ -27,24 +27,23 @@ SECTIONS {
27
27
. = . + SIZEOF_HEADERS;
28
28
.text : {
29
29
ktext_start = .;
30
- *(.text);
30
+ *(.text .text.* );
31
31
ktext_end = .;
32
32
}
33
33
.data : {
34
34
kdata_start = .;
35
- *(.data); /* initialized data */
36
- *(.bss); /* uninitialized static variables */
35
+ *(.data .data.* ); /* initialized data */
36
+ *(.bss .bss.* ); /* uninitialized static variables */
37
37
*(COMMON); /* global variables */
38
38
39
39
*(.rodata .rodata.*);
40
40
*(.eh_frame .eh_frame.*); /* stack unwinding data */
41
41
*(.eh_frame_hdr .eh_frame_hdr.*);
42
- *(.sdata);
43
- *(.reginfo);
42
+ *(.sdata .sdata.*);
44
43
}
45
44
.sbss : {
46
- *(.sbss);
47
- *(.scommon);
45
+ *(.sbss .sbss.* );
46
+ *(.scommon .scommon.* );
48
47
}
49
48
50
49
kdata_end = .;
Original file line number Diff line number Diff line change @@ -21,14 +21,14 @@ SECTIONS {
21
21
.image (LOAD_ADDRESS_V + SIZEOF_HEADERS) : AT (LOAD_ADDRESS_P + SIZEOF_HEADERS) {
22
22
. = ALIGN(16);
23
23
ktext_start = .;
24
- *(K_TEXT_START)
24
+ KEEP( *(K_TEXT_START) )
25
25
*(.text .text.*);
26
26
ktext_end = .;
27
27
28
28
kdata_start = .;
29
- *(K_DATA_START)
30
- *(.data); /* initialized data */
31
- *(.bss); /* uninitialized static variables */
29
+ KEEP( *(K_DATA_START) )
30
+ *(.data .data.* ); /* initialized data */
31
+ *(.bss .bss.* ); /* uninitialized static variables */
32
32
*(COMMON); /* global variables */
33
33
34
34
*(.rodata .rodata.*);
Original file line number Diff line number Diff line change @@ -16,8 +16,8 @@ SECTIONS {
16
16
17
17
.unmapped (BOOT_OFFSET + SIZEOF_HEADERS): AT (BOOT_OFFSET + SIZEOF_HEADERS) {
18
18
unmapped_start = .;
19
- *(K_TEXT_START);
20
- *(K_DATA_START);
19
+ KEEP( *(K_TEXT_START) );
20
+ KEEP( *(K_DATA_START) );
21
21
unmapped_end = .;
22
22
}
23
23
@@ -27,14 +27,14 @@ SECTIONS {
27
27
ktext_end = .;
28
28
29
29
kdata_start = .;
30
- *(.data); /* initialized data */
30
+ *(.data .data.* ); /* initialized data */
31
31
*(.rodata .rodata.*);
32
32
*(.eh_frame .eh_frame.*); /* stack unwinding data */
33
33
*(.eh_frame_hdr .eh_frame_hdr.*);
34
34
*(COMMON); /* global variables */
35
35
36
36
/* bss can't be omitted from the ELF image. */
37
- *(.bss); /* uninitialized static variables */
37
+ *(.bss .bss.* ); /* uninitialized static variables */
38
38
kdata_end = .;
39
39
}
40
40
You can’t perform that action at this time.
0 commit comments