Bug 56331 - Не собирается поддержка ACPI на aarch64
Summary: Не собирается поддержка ACPI на aarch64
Status: REOPENED
Alias: None
Product: Sisyphus
Classification: Development
Component: kernel-image-6.12 (show other bugs)
Version: unstable
Hardware: aarch64 Linux
: P5 normal
Assignee: Vitaly Chikunov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-10-09 16:52 MSK by Sergey V Turchin
Modified: 2025-10-27 10:37 MSK (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sergey V Turchin 2025-10-09 16:52:06 MSK
У меня на https://packages.altlinux.org/ru/tasks/396203/ не собирается модуль ядра на aarch64.
Локально всё собирается.

При конфигурации сборки выполняются 2 теста:

Тест1:
#include <linux/acpi.h>
void conftest_acpi_walk_namespace(void) {
     acpi_walk_namespace(0, NULL, 0, NULL, NULL, NULL, NULL);
}

Тест2:
#include <linux/acpi.h>
void conftest_acpi_walk_namespace(void) {
     acpi_walk_namespace(0, NULL, 0, NULL, NULL, NULL);
}

Локально успешно собирается Тест1 и дальше идёт сборка модуля.
В сборочнице не собираются оба, из-за чего в код добавляют:
#error acpi_walk_namespace() conftest failed!
, с чем сборка по ссылке падает.
Comment 1 Sergey V Turchin 2025-10-09 16:52:33 MSK
> Локально всё собирается.
На aarch64 проверял.
Comment 2 Anton Farygin 2025-10-09 16:55:04 MSK
попробуй тесты запускать через vm-run
Comment 3 Gleb F-Malinovskiy 2025-10-09 17:27:54 MSK
А где ссылка на таск, в котором видно, как именно не собирается тест? Иначе нужно обращаться к ясновидящим, не знаю что ещё посоветовать.
Comment 4 Sergey V Turchin 2025-10-10 09:39:56 MSK
(Ответ для Gleb F-Malinovskiy на комментарий #3)
> А где ссылка на таск, в котором видно, как именно не собирается тест?
https://packages.altlinux.org/ru/tasks/396203/
Просто так вывести нельзя, т.к. вывод используется в качестве результата.
Сохранил вывод для каждого теста в файлы conftest??????.c.txt .
Искать по слову acpi_walk_namespace.
Comment 5 Sergey V Turchin 2025-10-10 10:23:20 MSK
Ошибся, переделал. Ошибки сборки конкретного теста в файле conftest*.c_.txt
Comment 6 Gleb F-Malinovskiy 2025-10-10 19:38:15 MSK
(In reply to Sergey V Turchin from comment #5)
> Ошибся, переделал. Ошибки сборки конкретного теста в файле conftest*.c_.txt
Так, и где на этот файл посмотреть?

Можно, пожалуйста, прислать готовый багрепорт а не заставлять других делать багрепорт за вас? Я не буду этого делать, буду ждать когда будет багрепорт.
Comment 7 Sergey V Turchin 2025-10-13 09:18:36 MSK
(Ответ для Gleb F-Malinovskiy на комментарий #6)
> (In reply to Sergey V Turchin from comment #5)
> > Ошибся, переделал. Ошибки сборки конкретного теста в файле conftest*.c_.txt
> Так, и где на этот файл посмотреть?
Там, где воспроизводится, т.е. на сборочнице.

> Можно, пожалуйста, прислать готовый багрепорт а не заставлять других делать
> багрепорт за вас?
Дайте доступ на сборочницу -- сделаю.

> Я не буду этого делать, буду ждать когда будет багрепорт.
А кто будет из тех, у кого есть доступ к багу?
Comment 8 Sergey V Turchin 2025-10-24 16:26:21 MSK
Оказалось, я не те kernel-source локально собирал. У меня воспроизвелось.
Comment 9 Sergey V Turchin 2025-10-24 16:26:49 MSK
In file included from /usr/src/linux-6.12.55-6.12/arch/arm64/include/asm/acpi.h:13,
                 from /usr/src/linux-6.12.55-6.12/include/acpi/acpi_io.h:7,
                 from /usr/src/linux-6.12.55-6.12/include/linux/acpi.h:39,
                 from conftest24148.c:13:
/usr/src/linux-6.12.55-6.12/include/linux/efi.h: In function 'efi_get_secureboot_mode':
/usr/src/linux-6.12.55-6.12/include/linux/efi.h:1155:26: error: passing argument 1 of 'get_var' from incompatible pointer type [-Wincompatible-pointer-types]
 1155 |         status = get_var(L"SecureBoot", &EFI_GLOBAL_VARIABLE_GUID, NULL, &size,
      |                          ^~~~~~~~~~~~~
      |                          |
      |                          unsigned int *
Comment 10 Sergey V Turchin 2025-10-24 16:27:51 MSK
/usr/src/linux-6.12.55-6.12/include/linux/efi.h

static inline
enum efi_secureboot_mode efi_get_secureboot_mode(efi_get_variable_t *get_var)
{
        u8 secboot, setupmode = 0;
        efi_status_t status;
        unsigned long size;

        size = sizeof(secboot);
        status = get_var(L"SecureBoot", &EFI_GLOBAL_VARIABLE_GUID, NULL, &size,
                         &secboot);
Comment 11 Gleb F-Malinovskiy 2025-10-24 16:36:17 MSK
Этот баг -- явный пример попытки переложить со своей головы на чужую и желание не решать и не разбираться в проблеме.

"Сборочница виновата, что у меня неизвестно какой код, который я вам не покажу не компилируется с диагностикой, которую я вам тоже не покажу" это не багрепорт, а пустая сознательная трата времени других людей. Не делайте так больше, пожалуйста.
Comment 12 Sergey V Turchin 2025-10-24 17:00:15 MSK
(Ответ для Gleb F-Malinovskiy на комментарий #11)
> "Сборочница виновата, что у меня неизвестно какой код, который я вам не
> покажу не компилируется с диагностикой, которую я вам тоже не покажу
Я полагал, что у меня не воспроизводится.
Я дал вам всё.
У меня нет возможности залезть на сборочницу.
Comment 13 Sergey V Turchin 2025-10-24 17:00:48 MSK
А по существу то что? Я не понимаю, в чём проблема.
Comment 14 Gleb F-Malinovskiy 2025-10-24 17:03:11 MSK
По существу -- баг если и есть, то не в сборочнице.
Comment 15 Sergey V Turchin 2025-10-24 17:06:45 MSK
(Ответ для Gleb F-Malinovskiy на комментарий #11)
> Не делайте так больше, пожалуйста.
Накосячил, извиняюсь. Полагал, что больше ничего не в силах сделать.
Я ж даже пропатчил специально, чтоб дебаг в файлы сохранялся.
Comment 16 Sergey V Turchin 2025-10-24 17:07:56 MSK
(Ответ для Gleb F-Malinovskiy на комментарий #14)
> По существу -- баг если и есть, то не в сборочнице.
Я не против, что не в сборочнице. Как мне определить, где? Или хоть что-то определить?
Comment 17 Sergey V Turchin 2025-10-24 17:08:45 MSK
Флаги

cc -O2 -D__KERNEL__ -DKBUILD_BASENAME="#conftest46990" -DKBUILD_MODNAME="#conftest46990" -nostdinc -isystem /usr/lib64/gcc/aarch64-alt-linux/14/include -Wno-implicit-function-declaration -Wno-strict-prototypes -I/usr/src/linux-6.12.55-6.12/include/asm-arm64/mach-default -I/usr/src/linux-6.12.55-6.12/arch/arm64/include/asm/mach-default -include /usr/src/linux-6.12.55-6.12/include/generated/autoconf.h -I/usr/src/linux-6.12.55-6.12/include -I/usr/src/linux-6.12.55-6.12/include/uapi -I/usr/src/linux-6.12.55-6.12/include/xen -I/usr/src/linux-6.12.55-6.12/include/generated/uapi -I/usr/src/linux-6.12.55-6.12/arch/arm64/include -I/usr/src/linux-6.12.55-6.12/arch/arm64/include/uapi -I/usr/src/linux-6.12.55-6.12/arch/arm64/include/generated -I/usr/src/linux-6.12.55-6.12/arch/arm64/include/generated/uapi -std=gnu17 -I/home/zerg/RPM/BUILD/kernel-modules-nvidia-6.12-580.82.09/kernel-source-nvidia-47025602/common/inc -I/home/zerg/RPM/BUILD/kernel-modules-nvidia-6.12-580.82.09/kernel-source-nvidia-47025602 -Wall -MD   -Wno-cast-qual -Wno-error -Wno-format-extra-args -D__KERNEL__ -DMODULE -DNVRM -DNV_VERSION_STRING=\"470.256.02\" -Wno-unused-function -Wuninitialized -fno-strict-aliasing -mstrict-align -mgeneral-regs-only -march=armv8-a -DNV_UVM_ENABLE -Werror=undef -DNV_SPECTRE_V2=0 -DNV_KERNEL_INTERFACE_LAYER -I/home/zerg/RPM/BUILD/kernel-modules-nvidia-6.12-580.82.09/kernel-source-nvidia-47025602/common/inc -I/home/zerg/RPM/BUILD/kernel-modules-nvidia-6.12-580.82.09/kernel-source-nvidia-47025602 -Wall -MD   -Wno-cast-qual -Wno-error -Wno-format-extra-args -D__KERNEL__ -DMODULE -DNVRM -DNV_VERSION_STRING=\"470.256.02\" -Wno-unused-function -Wuninitialized -fno-strict-aliasing -mstrict-align -mgeneral-regs-only -march=armv8-a -DNV_UVM_ENABLE -Werror=undef -DNV_SPECTRE_V2=0 -DNV_KERNEL_INTERFACE_LAYER -fno-stack-clash-protection -fcf-protection=none -fno-pie
Comment 18 Sergey V Turchin 2025-10-24 17:13:07 MSK
Тогда ядро
Comment 19 Vitaly Chikunov 2025-10-24 19:32:37 MSK
(In reply to Sergey V Turchin from comment #0)
> Тест1:
> #include <linux/acpi.h>
> void conftest_acpi_walk_namespace(void) {
>      acpi_walk_namespace(0, NULL, 0, NULL, NULL, NULL, NULL);
> }

В 6.12 у acpi_walk_namespace 7 аргументов. Определение этой функции не менялось минимум с 2014. Функция определена в nsxfeval.c, который безусловно входит в код acpi, при этом acpi включен при включенном CONFIG_ACPI, который у нас включен на всех архитектурах.

 Sisyphus/kernel-image-6.12-6.12.55-alt1.aarch64:CONFIG_ACPI=y
 Sisyphus/kernel-image-6.12-6.12.55-alt1.i586:CONFIG_ACPI=y
 Sisyphus/kernel-image-6.12-6.12.55-alt1.x86_64:CONFIG_ACPI=y

> Локально успешно собирается Тест1 и дальше идёт сборка модуля.
> В сборочнице не собираются оба, из-за чего в код добавляют:
> #error acpi_walk_namespace() conftest failed!
> , с чем сборка по ссылке падает.

Какая ошибка при сборке Тест1?
Comment 20 Vitaly Chikunov 2025-10-24 20:07:19 MSK
Чтоб это увидеть, может будет достаточно добавить V=1 в make modules (может нет). Я попробовал собрать задание 396203 - сборка не начинается, видимо, ему не хватает  каких-то подпакетов.

  E: Couldn't find package kernel-source-nvidia-5808209

А там только nvidia_glx_src_470.256.02.git=470.256-alt258
Comment 21 Sergey V Turchin 2025-10-27 10:37:23 MSK
(Ответ для Vitaly Chikunov на комментарий #20)
> Чтоб это увидеть, может будет достаточно добавить V=1 в make modules (может
> нет)
Не. Там тесты для настройки сборки. У них вывод перенаправлен. Пришлось
https://git.altlinux.org/tasks/396203/gears/70/git?p=git;a=blob;f=alt-conftest-output.patch

> . Я попробовал собрать задание 396203 - сборка не начинается, видимо,
> ему не хватает  каких-то подпакетов.
>   E: Couldn't find package kernel-source-nvidia-5808209
kernel-modules-nvidia устарел. Ща передобавлю и запущу.