Merge pull request #1412 from rtoslab/master

[bsp][imxrt1052]update ctors/dtors sections to fix link error with RT_USING_CPLUSPLUS
This commit is contained in:
Bernard Xiong 2018-05-08 09:48:28 +08:00 committed by GitHub
commit f56647c08b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 32 additions and 16 deletions

View File

@ -139,7 +139,8 @@ SECTIONS
.ctors : .ctors :
{ {
__CTOR_LIST__ = .; PROVIDE(__ctors_start__ = .);
/* __CTOR_LIST__ = .; */
/* gcc uses crtbegin.o to find the start of /* gcc uses crtbegin.o to find the start of
the constructors, so we make sure it is the constructors, so we make sure it is
first. Because this is a wildcard, it first. Because this is a wildcard, it
@ -158,18 +159,21 @@ SECTIONS
KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)) KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors))
KEEP (*(SORT(.ctors.*))) KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors)) KEEP (*(.ctors))
__CTOR_END__ = .; /* __CTOR_END__ = .; */
PROVIDE(__ctors_end__ = .);
} > m_text } > m_text
.dtors : .dtors :
{ {
__DTOR_LIST__ = .; PROVIDE(__dtors_start__ = .);
/* __DTOR_LIST__ = .; */
KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin.o(.dtors))
KEEP (*crtbegin?.o(.dtors)) KEEP (*crtbegin?.o(.dtors))
KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)) KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors))
KEEP (*(SORT(.dtors.*))) KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors)) KEEP (*(.dtors))
__DTOR_END__ = .; /* __DTOR_END__ = .; */
PROVIDE(__dtors_end__ = .);
} > m_text } > m_text
.preinit_array : .preinit_array :

View File

@ -126,7 +126,8 @@ SECTIONS
.ctors : .ctors :
{ {
__CTOR_LIST__ = .; PROVIDE(__ctors_start__ = .);
/* __CTOR_LIST__ = .; */
/* gcc uses crtbegin.o to find the start of /* gcc uses crtbegin.o to find the start of
the constructors, so we make sure it is the constructors, so we make sure it is
first. Because this is a wildcard, it first. Because this is a wildcard, it
@ -145,18 +146,21 @@ SECTIONS
KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)) KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors))
KEEP (*(SORT(.ctors.*))) KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors)) KEEP (*(.ctors))
__CTOR_END__ = .; /* __CTOR_END__ = .; */
PROVIDE(__ctors_end__ = .);
} > m_text } > m_text
.dtors : .dtors :
{ {
__DTOR_LIST__ = .; PROVIDE(__dtors_start__ = .);
/* __DTOR_LIST__ = .; */
KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin.o(.dtors))
KEEP (*crtbegin?.o(.dtors)) KEEP (*crtbegin?.o(.dtors))
KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)) KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors))
KEEP (*(SORT(.dtors.*))) KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors)) KEEP (*(.dtors))
__DTOR_END__ = .; /* __DTOR_END__ = .; */
PROVIDE(__dtors_end__ = .);
} > m_text } > m_text
.preinit_array : .preinit_array :

View File

@ -104,7 +104,8 @@ SECTIONS
.ctors : .ctors :
{ {
__CTOR_LIST__ = .; PROVIDE(__ctors_start__ = .);
/* __CTOR_LIST__ = .; */
/* gcc uses crtbegin.o to find the start of /* gcc uses crtbegin.o to find the start of
the constructors, so we make sure it is the constructors, so we make sure it is
first. Because this is a wildcard, it first. Because this is a wildcard, it
@ -123,18 +124,21 @@ SECTIONS
KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)) KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors))
KEEP (*(SORT(.ctors.*))) KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors)) KEEP (*(.ctors))
__CTOR_END__ = .; /* __CTOR_END__ = .; */
PROVIDE(__ctors_end__ = .);
} > m_text } > m_text
.dtors : .dtors :
{ {
__DTOR_LIST__ = .; PROVIDE(__dtors_start__ = .);
/* __DTOR_LIST__ = .; */
KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin.o(.dtors))
KEEP (*crtbegin?.o(.dtors)) KEEP (*crtbegin?.o(.dtors))
KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)) KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors))
KEEP (*(SORT(.dtors.*))) KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors)) KEEP (*(.dtors))
__DTOR_END__ = .; /* __DTOR_END__ = .; */
PROVIDE(__dtors_end__ = .);
} > m_text } > m_text
.preinit_array : .preinit_array :

View File

@ -104,7 +104,8 @@ SECTIONS
.ctors : .ctors :
{ {
__CTOR_LIST__ = .; PROVIDE(__ctors_start__ = .);
/* __CTOR_LIST__ = .; */
/* gcc uses crtbegin.o to find the start of /* gcc uses crtbegin.o to find the start of
the constructors, so we make sure it is the constructors, so we make sure it is
first. Because this is a wildcard, it first. Because this is a wildcard, it
@ -123,18 +124,21 @@ SECTIONS
KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)) KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors))
KEEP (*(SORT(.ctors.*))) KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors)) KEEP (*(.ctors))
__CTOR_END__ = .; /* __CTOR_END__ = .; */
PROVIDE(__ctors_end__ = .);
} > m_text } > m_text
.dtors : .dtors :
{ {
__DTOR_LIST__ = .; PROVIDE(__dtors_start__ = .);
/* __DTOR_LIST__ = .; */
KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin.o(.dtors))
KEEP (*crtbegin?.o(.dtors)) KEEP (*crtbegin?.o(.dtors))
KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)) KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors))
KEEP (*(SORT(.dtors.*))) KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors)) KEEP (*(.dtors))
__DTOR_END__ = .; /* __DTOR_END__ = .; */
PROVIDE(__dtors_end__ = .);
} > m_text } > m_text
.preinit_array : .preinit_array :