首页 > 解决方案 > Linux内核代码中的“.data..init_task”部分是什么?

问题描述

我正在探索 Linux Kernel 代码并遇到了这行代码:

#define __init_task_data __attribute__((__section__(".data..init_task"))).

我知道这样的事情:

int x __attribute__((__section__("section"))) = 10;

是 gcc 的一个属性,它将 x 的符号放入已编译过程映像的“部分”部分。但是,当我尝试将“.data..init_task”指定为部分时,我的变量将被放入 .data 部分。这是我的代码:

int apple __attribute__((__section__(".data..init_task"))) = 10;

编译:

gcc test.c

拆解:

objdump -D a.out

我的变量“apple”出现在 .data 部分下,没有部分“.data..init_task”让我很困惑。

标签: clinuxgcclinux-kernel

解决方案


推荐阅读