Skip to content

Commit e21885b

Browse files
cuiziweizwxiaoxiang781216
authored andcommitted
nuttx/boards:Uniform initialization format for init_array.
(1) Keep the `.init_array` and `.ctors` symbols and sort them according to their initialization priority. (2) Exclude symbols ending with crtend.* and crtbegin.* to support c++ application.if we not exclude crtend.* crtbegin.* frame_dummy will be added when enable any c++ application with global variables, this symbol execution is problematic, removing it does not affect the application. Signed-off-by: cuiziwei <[email protected]>
1 parent 87ebdb8 commit e21885b

File tree

406 files changed

+582
-429
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

406 files changed

+582
-429
lines changed

binfmt/libelf/gnu-elf.ld

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,8 @@ SECTIONS
7373
.ctors :
7474
{
7575
_sctors = . ;
76-
*(.ctors) /* Old ABI: Unallocated */
77-
*(.init_array) /* New ABI: Allocated */
78-
*(SORT(.init_array.*))
76+
KEEP(*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
77+
KEEP(*(.init_array EXCLUDE_FILE(*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o) .ctors))
7978
_ectors = . ;
8079
}
8180

boards/arm/a1x/pcduino-a10/scripts/sdram.ld

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ SECTIONS
5555
{
5656
_sinit = ABSOLUTE(.);
5757
KEEP(*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
58-
KEEP(*(.init_array .ctors))
58+
KEEP(*(.init_array EXCLUDE_FILE(*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o) .ctors))
5959
_einit = ABSOLUTE(.);
6060
} > sdram
6161

boards/arm/am335x/beaglebone-black/scripts/sdram.ld

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ SECTIONS
6060
{
6161
_sinit = ABSOLUTE(.);
6262
KEEP(*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
63-
KEEP(*(.init_array .ctors))
63+
KEEP(*(.init_array EXCLUDE_FILE(*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o) .ctors))
6464
_einit = ABSOLUTE(.);
6565
} > ddr
6666

boards/arm/at32/at32f437-mini/scripts/kernel-space.ld

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ SECTIONS
4444

4545
.init_section : {
4646
_sinit = ABSOLUTE(.);
47-
*(.init_array .init_array.*)
47+
KEEP(*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
48+
KEEP(*(.init_array EXCLUDE_FILE(*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o) .ctors))
4849
_einit = ABSOLUTE(.);
4950
} > kflash
5051

boards/arm/at32/at32f437-mini/scripts/ld.script

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,8 @@ SECTIONS
6161

6262
.init_section : ALIGN(4) {
6363
_sinit = ABSOLUTE(.);
64-
KEEP(*(.init_array .init_array.*))
64+
KEEP(*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
65+
KEEP(*(.init_array EXCLUDE_FILE(*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o) .ctors))
6566
_einit = ABSOLUTE(.);
6667
} > flash
6768

boards/arm/at32/at32f437-mini/scripts/user-space.ld

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ SECTIONS
4646

4747
.init_section : {
4848
_sinit = ABSOLUTE(.);
49-
*(.init_array .init_array.*)
49+
KEEP(*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
50+
KEEP(*(.init_array EXCLUDE_FILE(*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o) .ctors))
5051
_einit = ABSOLUTE(.);
5152
} > uflash
5253

boards/arm/cxd56xx/spresense/scripts/ramconfig-new.ld

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ SECTIONS
9494
.init_section : {
9595
_sinit = ABSOLUTE(.);
9696
KEEP(*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
97-
KEEP(*(.init_array .ctors))
97+
KEEP(*(.init_array EXCLUDE_FILE(*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o) .ctors))
9898
_einit = ABSOLUTE(.);
9999
} > ram
100100

boards/arm/cxd56xx/spresense/scripts/ramconfig.ld

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ SECTIONS
9494
.init_section : {
9595
_sinit = ABSOLUTE(.);
9696
KEEP(*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
97-
KEEP(*(.init_array .ctors))
97+
KEEP(*(.init_array EXCLUDE_FILE(*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o) .ctors))
9898
_einit = ABSOLUTE(.);
9999
} > ram
100100

boards/arm/efm32/efm32-g8xx-stk/scripts/efm32-g8xx-stk.ld

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ SECTIONS
4949
.init_section : {
5050
_sinit = ABSOLUTE(.);
5151
KEEP(*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
52-
KEEP(*(.init_array .ctors))
52+
KEEP(*(.init_array EXCLUDE_FILE(*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o) .ctors))
5353
_einit = ABSOLUTE(.);
5454
} > flash
5555

boards/arm/efm32/efm32gg-stk3700/scripts/ld.script

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ SECTIONS
4949
.init_section : ALIGN(4) {
5050
_sinit = ABSOLUTE(.);
5151
KEEP(*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
52-
KEEP(*(.init_array .ctors))
52+
KEEP(*(.init_array EXCLUDE_FILE(*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o) .ctors))
5353
_einit = ABSOLUTE(.);
5454
} > flash
5555

0 commit comments

Comments
 (0)