mirror of
https://github.com/openwrt/openwrt.git
synced 2026-10-12 06:57:57 +04:00
The compressed LoongArch kernel (vmlinuz.efi) differs between builds in different directories. The code and data of vmlinux are identical, but its GNU build ID is not: the debug information of vmlinux holds a single absolute path, the include directory of the compiler, e.g. /builder/shared-workdir/build/staging_dir/toolchain-loongarch64_generic_gcc-14.4.0_musl/lib/gcc/loongarch64-openwrt-linux-musl/14.4.0/include asm/loongarch.h includes the compiler's larchintrin.h, so core files like arch/loongarch/kernel/cpu-probe.c refer to it. The prefix maps of the kernel cover the build and the staging directory, but not the toolchain directory. The build ID hashes all of vmlinux, so it depends on the build directory, and with it the compressed kernel. Map the toolchain directory as well, like the staging directory. On loongarch64/generic, vmlinux built without the map holds this one absolute path, like the published one; built with it, no absolute path is left, while .text, .rodata and .data stay byte-identical. Link: https://github.com/openwrt/openwrt/pull/25648 Signed-off-by: Paul Spooren <mail@aparcar.org>