添加自定义的section
程序员文章站
2022-06-03 13:53:58
...
一、编译的程序(o so exe ko等等)都是elf格式进行排列的
elf文件分析情况:https://blog.csdn.net/edonlii/article/details/8779075
二、添加自己的section
#define SECTION_START(_type,_name) \
static const struct mydyh_desc __mydyh_desc_##_type \
__attribute__((used, __section__(".dyh.info.init"))) = { \
.nr = MY_DYH_##_type, \
.name = _name,
#define SECTION_END \
};
怎样才能获取到section里面的数据
extern struct mydyh_desc __dyh_info_begin[], __dyh_info_end[];
这两个变量在链接脚本里面定义
如何寻找链接脚本,每个编译器会自带链接脚本,需要删除lds文件里面的一些说明信息,否则编译会出错
ld --verbose > section.lds
编译代码
gcc section.c -T section.lds -o section
demo程序:https://github.com/dyh-git/section_custom
参考书籍:《程序员的自我修养—链接、装载与库》
上一篇: 详解vue项目构建与实战