0x9*_*x90 2 c linux macros kernel ld
从这里是什么.,并*在交流宏意味着什么?
583 #define INITCALLS \
584 *(.initcallearly.init) \
585 VMLINUX_SYMBOL(__early_initcall_end) = .; \
586 *(.initcall0.init) \
587 *(.initcall0s.init) \
588 *(.initcall1.init) \
589 *(.initcall1s.init) \
590 *(.initcall2.init) \
591 *(.initcall2s.init) \
592 *(.initcall3.init) \
593 *(.initcall3s.init) \
594 *(.initcall4.init) \
595 *(.initcall4s.init) \
596 *(.initcall5.init) \
597 *(.initcall5s.init) \
598 *(.initcallrootfs.init) \
599 *(.initcall6.init) \
600 *(.initcall6s.init) \
601 *(.initcall7.init) \
602 *(.initcall7s.init)
603
Run Code Online (Sandbox Code Playgroud)
它是一个链接器脚本.部分合并和放置由链接器完成.程序员可以通过链接描述文件控制各部分的合并方式以及它们在内存中的位置.你提到的文件正是这样做的.
.(点)指的是链接部分,使用通配符*而不是单独指定包含相同命名链接部分的多个文件名.
请参阅:http://sources.redhat.com/binutils/docs-2.10/ld_3.html