Assembly .foo:{*(.*)}在链接器脚本中是什么意思?

Assembly .foo:{*(.*)}在链接器脚本中是什么意思?,assembly,linker-scripts,Assembly,Linker Scripts,我正在编写一个512字节的可引导程序,我必须在512字节程序映像的最后2个字节中粘贴0xAA55。所以我做到了。现在,我的链接器脚本应该非常简单。我只是好奇这个语法是什么意思 .foo : { *(.*) } 有人给我举了个例子。没有.foo节,在此之前,我将程序计数器更改为 . = 0x1000 //To account for the elf header which I will strip later 所以在这个指令被执行之后 .foo : { *(.*) } 这有什么用 它将所有

我正在编写一个512字节的可引导程序,我必须在512字节程序映像的最后2个字节中粘贴0xAA55。所以我做到了。现在,我的链接器脚本应该非常简单。我只是好奇这个语法是什么意思

.foo : { *(.*) }
有人给我举了个例子。没有.foo节,在此之前,我将程序计数器更改为

. = 0x1000 //To account for the elf header which I will strip later
所以在这个指令被执行之后

.foo : { *(.*) }

这有什么用

它将所有对象文件(第一个
*
)中尚未分配给任何先前定义的节的所有代码、数据、bss、rodata等(第二个
*
)存储在节
.foo
中。

我从未使用过链接器脚本,但在谷歌上搜索了两分钟,这表明该行指示链接器将所有部分合并为一个,名为
.foo