链接描述文件:我可以在多个部分中指定 (*COMMON) 吗?
Linker Scripts: Can I specify (*COMMON) in more than one section?
如果我的链接描述文件中有两个部分,.bss 和 .newsect,我可以像下面那样在两个部分中包含 (*COMMON) 吗?为什么或为什么不?
.bss :
{
/* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
*(.bss*)
*(COMMON)
. = ALIGN(4);
_ebss = .; /* define a global symbol at bss end */
__bss_end__ = _ebss;
} >RAM_D1
.newsect :
{
/* This is used by the startup in order to initialize the .bss section */
_snewsect = .; /* define a global symbol at bss start */
__newsect_start__ = _snewsect;
*(.newsect)
*(.newsect*)
*(COMMON)
. = ALIGN(4);
_enewsect = .; /* define a global symbol at bss end */
__newsect_end__ = _enewsect;
} >RAM_D1
这不会造成任何伤害,但是所有匹配的输入部分在您第一次指定它们时已经分配给输出部分,因此第二次将不会匹配任何内容并且什么也不做。
如果我的链接描述文件中有两个部分,.bss 和 .newsect,我可以像下面那样在两个部分中包含 (*COMMON) 吗?为什么或为什么不?
.bss :
{
/* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
*(.bss*)
*(COMMON)
. = ALIGN(4);
_ebss = .; /* define a global symbol at bss end */
__bss_end__ = _ebss;
} >RAM_D1
.newsect :
{
/* This is used by the startup in order to initialize the .bss section */
_snewsect = .; /* define a global symbol at bss start */
__newsect_start__ = _snewsect;
*(.newsect)
*(.newsect*)
*(COMMON)
. = ALIGN(4);
_enewsect = .; /* define a global symbol at bss end */
__newsect_end__ = _enewsect;
} >RAM_D1
这不会造成任何伤害,但是所有匹配的输入部分在您第一次指定它们时已经分配给输出部分,因此第二次将不会匹配任何内容并且什么也不做。