[update] Updated the Cortex-A of linker scripts for the new version of GCC(4.7)。

This commit is contained in:
zhouji 2022-04-19 18:28:26 +08:00 committed by guo
parent 60c96fbc12
commit 77900ab420
12 changed files with 41 additions and 29 deletions

View File

@ -4,7 +4,7 @@ OUTPUT_ARCH(arm)
SECTIONS SECTIONS
{ {
. = 0x80100000; . = 0x80100000;
__text_start = .; __text_start = .;
.text : .text :
{ {
@ -45,8 +45,9 @@ SECTIONS
.ctors : .ctors :
{ {
PROVIDE(__ctors_start__ = .); PROVIDE(__ctors_start__ = .);
KEEP(*(SORT(.ctors.*))) /* new GCC version uses .init_array */
KEEP(*(.ctors)) KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__ctors_end__ = .); PROVIDE(__ctors_end__ = .);
} }

View File

@ -16,7 +16,7 @@ SECTIONS
__rt_utest_tc_tab_start = .; __rt_utest_tc_tab_start = .;
KEEP(*(UtestTcTab)) KEEP(*(UtestTcTab))
__rt_utest_tc_tab_end = .; __rt_utest_tc_tab_end = .;
/* section information for finsh shell */ /* section information for finsh shell */
. = ALIGN(4); . = ALIGN(4);
__fsymtab_start = .; __fsymtab_start = .;
@ -59,8 +59,9 @@ SECTIONS
.ctors : .ctors :
{ {
PROVIDE(__ctors_start__ = .); PROVIDE(__ctors_start__ = .);
KEEP(*(SORT(.ctors.*))) /* new GCC version uses .init_array */
KEEP(*(.ctors)) KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__ctors_end__ = .); PROVIDE(__ctors_end__ = .);
} }

View File

@ -20,7 +20,7 @@ SECTIONS
__vsymtab_start = .; __vsymtab_start = .;
KEEP(*(VSymTab)) KEEP(*(VSymTab))
__vsymtab_end = .; __vsymtab_end = .;
. = ALIGN(4); . = ALIGN(4);
/* section information for modules */ /* section information for modules */
. = ALIGN(4); . = ALIGN(4);
@ -44,8 +44,9 @@ SECTIONS
.ctors : .ctors :
{ {
PROVIDE(__ctors_start__ = .); PROVIDE(__ctors_start__ = .);
KEEP(*(SORT(.ctors.*))) /* new GCC version uses .init_array */
KEEP(*(.ctors)) KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__ctors_end__ = .); PROVIDE(__ctors_end__ = .);
} }

View File

@ -88,8 +88,9 @@ SECTIONS
.ctors : .ctors :
{ {
PROVIDE(__ctors_start__ = .); PROVIDE(__ctors_start__ = .);
KEEP(*(SORT(.ctors.*))) /* new GCC version uses .init_array */
KEEP(*(.ctors)) KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__ctors_end__ = .); PROVIDE(__ctors_end__ = .);
} }

View File

@ -75,8 +75,9 @@ SECTIONS
.ctors : .ctors :
{ {
PROVIDE(__ctors_start__ = .); PROVIDE(__ctors_start__ = .);
KEEP(*(SORT(.ctors.*))) /* new GCC version uses .init_array */
KEEP(*(.ctors)) KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__ctors_end__ = .); PROVIDE(__ctors_end__ = .);
} }

View File

@ -75,8 +75,9 @@ SECTIONS
.ctors : .ctors :
{ {
PROVIDE(__ctors_start__ = .); PROVIDE(__ctors_start__ = .);
KEEP(*(SORT(.ctors.*))) /* new GCC version uses .init_array */
KEEP(*(.ctors)) KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__ctors_end__ = .); PROVIDE(__ctors_end__ = .);
} }

View File

@ -77,8 +77,9 @@ SECTIONS
.ctors : .ctors :
{ {
PROVIDE(__ctors_start__ = .); PROVIDE(__ctors_start__ = .);
KEEP(*(SORT(.ctors.*))) /* new GCC version uses .init_array */
KEEP(*(.ctors)) KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__ctors_end__ = .); PROVIDE(__ctors_end__ = .);
} }

View File

@ -85,8 +85,9 @@ SECTIONS
.ctors : .ctors :
{ {
PROVIDE(__ctors_start__ = .); PROVIDE(__ctors_start__ = .);
KEEP(*(SORT(.ctors.*))) /* new GCC version uses .init_array */
KEEP(*(.ctors)) KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__ctors_end__ = .); PROVIDE(__ctors_end__ = .);
} }

View File

@ -77,8 +77,9 @@ SECTIONS
.ctors : .ctors :
{ {
PROVIDE(__ctors_start__ = .); PROVIDE(__ctors_start__ = .);
KEEP(*(SORT(.ctors.*))) /* new GCC version uses .init_array */
KEEP(*(.ctors)) KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__ctors_end__ = .); PROVIDE(__ctors_end__ = .);
} }

View File

@ -63,8 +63,9 @@ SECTIONS
.ctors : .ctors :
{ {
PROVIDE(__ctors_start__ = .); PROVIDE(__ctors_start__ = .);
KEEP(*(SORT(.ctors.*))) /* new GCC version uses .init_array */
KEEP(*(.ctors)) KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__ctors_end__ = .); PROVIDE(__ctors_end__ = .);
} > CODE } > CODE

View File

@ -79,8 +79,9 @@ SECTIONS
.ctors : .ctors :
{ {
PROVIDE(__ctors_start__ = .); PROVIDE(__ctors_start__ = .);
KEEP(*(SORT(.ctors.*))) /* new GCC version uses .init_array */
KEEP(*(.ctors)) KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__ctors_end__ = .); PROVIDE(__ctors_end__ = .);
} }

View File

@ -14,7 +14,7 @@ OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm) OUTPUT_ARCH(arm)
SECTIONS SECTIONS
{ {
.vectors : .vectors :
{ {
KEEP (*(.vectors)) KEEP (*(.vectors))
*(.boot) *(.boot)
@ -32,7 +32,7 @@ SECTIONS
__rt_utest_tc_tab_start = .; __rt_utest_tc_tab_start = .;
KEEP(*(UtestTcTab)) KEEP(*(UtestTcTab))
__rt_utest_tc_tab_end = .; __rt_utest_tc_tab_end = .;
/* section information for finsh shell */ /* section information for finsh shell */
. = ALIGN(4); . = ALIGN(4);
__fsymtab_start = .; __fsymtab_start = .;
@ -80,8 +80,9 @@ SECTIONS
.ctors : .ctors :
{ {
PROVIDE(__ctors_start__ = .); PROVIDE(__ctors_start__ = .);
KEEP(*(SORT(.ctors.*))) /* new GCC version uses .init_array */
KEEP(*(.ctors)) KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE(__ctors_end__ = .); PROVIDE(__ctors_end__ = .);
} > psu_r5_ddr_0_MEM_0 } > psu_r5_ddr_0_MEM_0