Skip to content

Commit ee08567

Browse files
Tropix126max-niederman
authored andcommitted
update linkerscript to include unwinding-related sections
1 parent 8632a35 commit ee08567

File tree

1 file changed

+42
-12
lines changed

1 file changed

+42
-12
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,40 @@
11
OUTPUT_FORMAT("elf32-littlearm")
22

3-
ENTRY(_start)
3+
ENTRY(_boot)
44

55
__user_ram_start = 0x03800000;
66
__user_ram_length = 0x04800000;
77
__user_ram_end = __user_ram_start + __user_ram_length;
88

9-
MEMORY {
10-
USER_RAM : ORIGIN = __user_ram_start, LENGTH = __user_ram_length
11-
}
9+
__code_signature_length = 0x20;
1210

1311
__stack_length = 0x400000;
1412
__heap_end = __user_ram_end - __stack_length;
1513

14+
__eh_frame_hdr_start = SIZEOF(.eh_frame_hdr) > 0 ? ADDR(.eh_frame_hdr) : 0;
15+
__eh_frame_hdr_end = SIZEOF(.eh_frame_hdr) > 0 ? . : 0;
16+
17+
MEMORY {
18+
USER_RAM : ORIGIN = __user_ram_start, LENGTH = __user_ram_length
19+
}
20+
1621
SECTIONS {
17-
.text : {
18-
__text_start = .;
22+
.code_signature : {
1923
KEEP(*(.code_signature))
20-
. = __text_start + 0x20;
24+
. = __user_ram_start + __code_signature_length;
25+
} > USER_RAM
26+
27+
.text : {
2128
*(.boot)
2229
*(.text .text.*)
23-
} > USER_RAM = 0
30+
} > USER_RAM
2431

25-
.rodata1 : {
26-
*(.rodata1 .rodata1.*)
32+
.rodata : {
33+
*(.rodata .rodata.*)
2734
} > USER_RAM
2835

2936
.data : {
3037
*(.data .data.*)
31-
*(.data1 .data1.*)
3238
} > USER_RAM
3339

3440
.bss : {
@@ -37,6 +43,30 @@ SECTIONS {
3743
__bss_end = .;
3844
} > USER_RAM
3945

46+
/* The unwind tables enabled by "default-uwtable" in the target file live here. */
47+
/* __eh_frame_start and similar symbols are used by libunwind. */
48+
.eh_frame_hdr : {
49+
KEEP(*(.eh_frame_hdr))
50+
} > USER_RAM
51+
52+
.eh_frame : {
53+
__eh_frame_start = .;
54+
KEEP(*(.eh_frame))
55+
__eh_frame_end = .;
56+
} > USER_RAM
57+
58+
.ARM.exidx : {
59+
__exidx_start = .;
60+
*(.ARM.exidx*)
61+
__exidx_end = .;
62+
} > USER_RAM
63+
64+
.ARM.extab : {
65+
__extab_start = .;
66+
*(.ARM.extab*)
67+
__extab_end = .;
68+
} > USER_RAM
69+
4070
.heap (NOLOAD) : ALIGN(4) {
4171
__heap_start = .;
4272
. = __heap_end;
@@ -49,6 +79,6 @@ SECTIONS {
4979
} > USER_RAM
5080

5181
/DISCARD/ : {
52-
*(.ARM.exidx)
82+
*(.ARM.attributes*)
5383
}
5484
}

0 commit comments

Comments
 (0)