armbian-build/lib/functions
Igor Velkov a0123f5d7a fix(kernel-headers): preserve build-time autoconf.h across postinst olddefconfig (#9425)
При упаковке linux-headers скомпилированные бинарники из scripts/ удаляются,
так как они собраны под хост сборки, а не под целевую машину (типичный случай
кросс-сборки). Поэтому postinst при установке пакета пересобирает их нативно,
предварительно запустив `make olddefconfig`.

Однако olddefconfig не только подготавливает окружение — он заново вычисляет
конфигурацию ядра, проверяя тулчейн, доступный на целевом хосте при установке.
Если инструменты, использовавшиеся при сборке ядра, на целевой машине отсутствуют
или имеют другую версию, olddefconfig молча отключает соответствующие CONFIG_*
опции (например, CONFIG_CC_IS_CLANG, CONFIG_LTO_CLANG, CONFIG_DEBUG_INFO_BTF).

В результате установленный пакет заголовков описывает не то ядро, которое
реально собрано и работает, а то, которое можно было бы собрать на данном хосте.

Это затрагивает:
- include/generated/autoconf.h (используется препроцессором C)
- include/config/auto.conf + маркер-файлы include/config/ (используются
  make-правилами kbuild)
- include/generated/rustc_cfg (используется Rust-сборками)

Все эти файлы — артефакты сборки и должны описывать скомпилированное ядро,
а не возможности хоста установки.

Исправление: при упаковке сохраняем сайдкар-тарбол с build-time версиями
include/config/ и include/generated/{autoconf.h,rustc_cfg}; восстанавливаем
его в postinst в самом конце, после всех make-шагов.

Fixes: https://github.com/armbian/build/issues/9425

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 22:29:08 +01:00
..
artifacts (#9400 P3a) Replace useless cat with input redirection (#9404) 2026-02-18 09:28:14 +01:00
bsp chore: update copyright years to 2026 2025-12-25 12:03:34 +01:00
cli docker: improve auto-pull cronjob with opt-in flag and cleanup 2026-02-01 00:22:54 +01:00
compilation fix(kernel-headers): preserve build-time autoconf.h across postinst olddefconfig (#9425) 2026-02-28 22:29:08 +01:00
configuration change-tracking: also track UBOOT_COMPILER & KERNEL_COMPILER 2026-01-21 01:39:50 +01:00
general Properly handle git submodules when GIT_FIXED_WORKDIR is set 2026-02-23 00:51:03 +01:00
host OrangePi-RV2: add support for RISCV64 compile-to-binaries. 2026-02-19 22:10:34 -05:00
image (#9400 P3a) Replace useless cat with input redirection (#9404) 2026-02-18 09:28:14 +01:00
logging framework run_host_x86_binary_logged - unset QEMU_CPU 2026-02-18 15:03:08 -05:00
main chore: update copyright years to 2026 2025-12-25 12:03:34 +01:00
rootfs rootfs: enable loong64 in qemu binfmt registration 2026-01-22 14:32:05 +01:00