2016-10-20 23:09:32 +08:00
|
|
|
#ifdef CONFIG_CPLUSPLUS
|
|
|
|
SECTION_PROLOGUE(_CTOR_SECTION_NAME,,)
|
|
|
|
{
|
|
|
|
/*
|
|
|
|
* The compiler fills the constructor pointers table below,
|
|
|
|
* hence symbol __CTOR_LIST__ must be aligned on 4 byte
|
|
|
|
* boundary. To align with the C++ standard, the first elment
|
|
|
|
* of the array contains the number of actual constructors. The
|
|
|
|
* last element is NULL.
|
|
|
|
*/
|
|
|
|
. = ALIGN(4);
|
|
|
|
__CTOR_LIST__ = .;
|
|
|
|
LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
|
|
|
|
KEEP(*(SORT_BY_NAME(".ctors*")))
|
|
|
|
LONG(0)
|
|
|
|
__CTOR_END__ = .;
|
|
|
|
} GROUP_LINK_IN(ROMABLE_REGION)
|
|
|
|
|
|
|
|
SECTION_PROLOGUE(init_array, (OPTIONAL),)
|
|
|
|
{
|
|
|
|
. = ALIGN(4);
|
|
|
|
__init_array_start = .;
|
|
|
|
KEEP(*(SORT_BY_NAME(".init_array*")))
|
|
|
|
__init_array_end = .;
|
|
|
|
} GROUP_LINK_IN(ROMABLE_REGION)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
SECTION_PROLOGUE (devconfig, (OPTIONAL),)
|
|
|
|
{
|
|
|
|
__devconfig_start = .;
|
|
|
|
*(".devconfig.*")
|
|
|
|
KEEP(*(SORT_BY_NAME(".devconfig*")))
|
|
|
|
__devconfig_end = .;
|
|
|
|
} GROUP_LINK_IN(ROMABLE_REGION)
|
|
|
|
|
2016-10-25 16:02:05 +08:00
|
|
|
SECTION_PROLOGUE(net_l2, (OPTIONAL),)
|
2016-06-16 19:50:38 +08:00
|
|
|
{
|
|
|
|
__net_l2_start = .;
|
|
|
|
*(".net_l2.init")
|
|
|
|
KEEP(*(SORT_BY_NAME(".net_l2.init*")))
|
|
|
|
__net_l2_end = .;
|
|
|
|
} GROUP_LINK_IN(ROMABLE_REGION)
|