Ошибка времени компиляции при сборке Linux Kernel 4.18 - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь отключить встраивание при компиляции ядра Linux 4.18.

Для этого я обновил Makefile в соответствии с: https://elinux.org/Kernel_dynamic_memory_analysis#Obtaining_accurate_call_sites_.28or_The_painstaking_task_of_wrestling_against_gcc.29

Но во время компиляции я получаю следующую ошибку:

ошибка: вызов '__compiletime_assert_1094' объявлен с ошибкой атрибута: ошибка BUILD_BUG_ON: p4d_large (* p4d)

Как я могу избавиться от ошибки при отключении встраивания во время ядрастроить?

1 Ответ

0 голосов
/ 26 октября 2018

BUILD_BUG_ON() требует постоянного выражения.Иногда к нему передаются вызовы встроенных функций.GCC способен оптимизировать некоторые встроенные функции до константных выражений, заставляя его работать.Отключение встраивания предотвратит это, сломав сборку.(В некоторых случаях это также проблема для Clang, который выполняет семантический анализ перед встраиванием.)

Возможно, вам придется изменить немного кода, чтобы иметь возможность собрать ядро ​​с отключенным встраиванием.Страница, на которую вы ссылаетесь, довольно старая;по-видимому, тогда это не было проблемой.

...