From 5d4b8fa2b8583cc1b42995318bfac35a49a2e23c Mon Sep 17 00:00:00 2001 From: huangzhihua Date: Mon, 7 May 2018 21:55:00 +0800 Subject: [PATCH] [bsp][imxrt1052]update ctors/dtors sections to fix link error with RT_USING_CPLUSPLUS --- .../Libraries/gcc/MIMXRT1052xxxxx_flexspi_nor.ld | 12 ++++++++---- .../Libraries/gcc/MIMXRT1052xxxxx_ram.ld | 12 ++++++++---- .../Libraries/gcc/MIMXRT1052xxxxx_sdram.ld | 12 ++++++++---- .../Libraries/gcc/MIMXRT1052xxxxx_sdram_txt.ld | 12 ++++++++---- 4 files changed, 32 insertions(+), 16 deletions(-) diff --git a/bsp/imxrt1052-evk/Libraries/gcc/MIMXRT1052xxxxx_flexspi_nor.ld b/bsp/imxrt1052-evk/Libraries/gcc/MIMXRT1052xxxxx_flexspi_nor.ld index e459198fc2..b0178bdcdd 100644 --- a/bsp/imxrt1052-evk/Libraries/gcc/MIMXRT1052xxxxx_flexspi_nor.ld +++ b/bsp/imxrt1052-evk/Libraries/gcc/MIMXRT1052xxxxx_flexspi_nor.ld @@ -139,7 +139,8 @@ SECTIONS .ctors : { - __CTOR_LIST__ = .; + PROVIDE(__ctors_start__ = .); + /* __CTOR_LIST__ = .; */ /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it @@ -158,18 +159,21 @@ SECTIONS KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) - __CTOR_END__ = .; + /* __CTOR_END__ = .; */ + PROVIDE(__ctors_end__ = .); } > m_text .dtors : { - __DTOR_LIST__ = .; + PROVIDE(__dtors_start__ = .); + /* __DTOR_LIST__ = .; */ KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) - __DTOR_END__ = .; + /* __DTOR_END__ = .; */ + PROVIDE(__dtors_end__ = .); } > m_text .preinit_array : diff --git a/bsp/imxrt1052-evk/Libraries/gcc/MIMXRT1052xxxxx_ram.ld b/bsp/imxrt1052-evk/Libraries/gcc/MIMXRT1052xxxxx_ram.ld index ab9693eed8..9077f044ed 100644 --- a/bsp/imxrt1052-evk/Libraries/gcc/MIMXRT1052xxxxx_ram.ld +++ b/bsp/imxrt1052-evk/Libraries/gcc/MIMXRT1052xxxxx_ram.ld @@ -126,7 +126,8 @@ SECTIONS .ctors : { - __CTOR_LIST__ = .; + PROVIDE(__ctors_start__ = .); + /* __CTOR_LIST__ = .; */ /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it @@ -145,18 +146,21 @@ SECTIONS KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) - __CTOR_END__ = .; + /* __CTOR_END__ = .; */ + PROVIDE(__ctors_end__ = .); } > m_text .dtors : { - __DTOR_LIST__ = .; + PROVIDE(__dtors_start__ = .); + /* __DTOR_LIST__ = .; */ KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) - __DTOR_END__ = .; + /* __DTOR_END__ = .; */ + PROVIDE(__dtors_end__ = .); } > m_text .preinit_array : diff --git a/bsp/imxrt1052-evk/Libraries/gcc/MIMXRT1052xxxxx_sdram.ld b/bsp/imxrt1052-evk/Libraries/gcc/MIMXRT1052xxxxx_sdram.ld index f0faea5245..100e6ed9f2 100644 --- a/bsp/imxrt1052-evk/Libraries/gcc/MIMXRT1052xxxxx_sdram.ld +++ b/bsp/imxrt1052-evk/Libraries/gcc/MIMXRT1052xxxxx_sdram.ld @@ -104,7 +104,8 @@ SECTIONS .ctors : { - __CTOR_LIST__ = .; + PROVIDE(__ctors_start__ = .); + /* __CTOR_LIST__ = .; */ /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it @@ -123,18 +124,21 @@ SECTIONS KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) - __CTOR_END__ = .; + /* __CTOR_END__ = .; */ + PROVIDE(__ctors_end__ = .); } > m_text .dtors : { - __DTOR_LIST__ = .; + PROVIDE(__dtors_start__ = .); + /* __DTOR_LIST__ = .; */ KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) - __DTOR_END__ = .; + /* __DTOR_END__ = .; */ + PROVIDE(__dtors_end__ = .); } > m_text .preinit_array : diff --git a/bsp/imxrt1052-evk/Libraries/gcc/MIMXRT1052xxxxx_sdram_txt.ld b/bsp/imxrt1052-evk/Libraries/gcc/MIMXRT1052xxxxx_sdram_txt.ld index 58c6ea217e..9206f67501 100644 --- a/bsp/imxrt1052-evk/Libraries/gcc/MIMXRT1052xxxxx_sdram_txt.ld +++ b/bsp/imxrt1052-evk/Libraries/gcc/MIMXRT1052xxxxx_sdram_txt.ld @@ -104,7 +104,8 @@ SECTIONS .ctors : { - __CTOR_LIST__ = .; + PROVIDE(__ctors_start__ = .); + /* __CTOR_LIST__ = .; */ /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it @@ -123,18 +124,21 @@ SECTIONS KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) - __CTOR_END__ = .; + /* __CTOR_END__ = .; */ + PROVIDE(__ctors_end__ = .); } > m_text .dtors : { - __DTOR_LIST__ = .; + PROVIDE(__dtors_start__ = .); + /* __DTOR_LIST__ = .; */ KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) - __DTOR_END__ = .; + /* __DTOR_END__ = .; */ + PROVIDE(__dtors_end__ = .); } > m_text .preinit_array :