美文网首页
Linux内核代码里的GNU C扩展

Linux内核代码里的GNU C扩展

作者: 紫軒遊_夢 | 来源:发表于2018-12-07 10:50 被阅读0次

    #define __init __attibute__ ((__section__ (“. Init.text”)))

    __attribute__为内核使用的GNU C扩展,这就意味着能够编译内核的唯一编译器是GNU C

    __section也是GNU C的一个属性。

    编译器将函数放在.text段,变量放在.data段或者.bss段。

    此部分与可执行文件相关。可执行文件由荷娜连接在一起的对象文件组成。对象文件包含许多段,如文本/数据/init数据/bass等。这些对象文件都是由于一个成为连接器脚本的文件链接并装入。此脚本将输入文件的个各段映射到输出文件中。详细见vmlinux.lds文件里的initcall.init部分。

    GNU C的这些拓展对代码优化/目标代码布局,安全检查等方便提供了很强的支持。

    相关文章

      网友评论

          本文标题:Linux内核代码里的GNU C扩展

          本文链接:https://www.haomeiwen.com/subject/qyazcqtx.html