Что такое раздел ".data..init_task" в коде ядра Linux? - PullRequest
0 голосов
/ 05 июля 2018

Я изучаю код ядра Linux и наткнулся на эту строку кода:

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

Я знаю, что-то вроде:

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

- это атрибут gcc, который помещает символ x в раздел "section" скомпилированного образа процесса. Однако, когда я пытаюсь указать «.data..init_task» в качестве раздела, моя переменная помещается в раздел .data. Вот мой код:

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

Составлено с:

gcc test.c

Разобрано с помощью:

objdump -D a.out

Моя переменная "apple" появляется под разделом .data, там нет раздела ".data..init_task", что поставило меня в тупик.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...