]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
arch: Add the macro COMPILE_OFFSETS to all the asm-offsets.c
authorMenglong Dong <menglong8.dong@gmail.com>
Wed, 17 Sep 2025 06:09:13 +0000 (14:09 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 2 Nov 2025 13:15:22 +0000 (22:15 +0900)
commitcc89ac0ca52306a61db7c2d289bb9cdf1f397714
tree43e5a79d6ea2480c1078f04a8538af5dc5942ca3
parent8297de569e56efa365ae6022d70ad3513e2a73b0
arch: Add the macro COMPILE_OFFSETS to all the asm-offsets.c

[ Upstream commit 35561bab768977c9e05f1f1a9bc00134c85f3e28 ]

The include/generated/asm-offsets.h is generated in Kbuild during
compiling from arch/SRCARCH/kernel/asm-offsets.c. When we want to
generate another similar offset header file, circular dependency can
happen.

For example, we want to generate a offset file include/generated/test.h,
which is included in include/sched/sched.h. If we generate asm-offsets.h
first, it will fail, as include/sched/sched.h is included in asm-offsets.c
and include/generated/test.h doesn't exist; If we generate test.h first,
it can't success neither, as include/generated/asm-offsets.h is included
by it.

In x86_64, the macro COMPILE_OFFSETS is used to avoid such circular
dependency. We can generate asm-offsets.h first, and if the
COMPILE_OFFSETS is defined, we don't include the "generated/test.h".

And we define the macro COMPILE_OFFSETS for all the asm-offsets.c for this
purpose.

Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
20 files changed:
arch/alpha/kernel/asm-offsets.c
arch/arc/kernel/asm-offsets.c
arch/arm/kernel/asm-offsets.c
arch/arm64/kernel/asm-offsets.c
arch/csky/kernel/asm-offsets.c
arch/hexagon/kernel/asm-offsets.c
arch/loongarch/kernel/asm-offsets.c
arch/m68k/kernel/asm-offsets.c
arch/microblaze/kernel/asm-offsets.c
arch/mips/kernel/asm-offsets.c
arch/nios2/kernel/asm-offsets.c
arch/openrisc/kernel/asm-offsets.c
arch/parisc/kernel/asm-offsets.c
arch/powerpc/kernel/asm-offsets.c
arch/riscv/kernel/asm-offsets.c
arch/s390/kernel/asm-offsets.c
arch/sh/kernel/asm-offsets.c
arch/sparc/kernel/asm-offsets.c
arch/um/kernel/asm-offsets.c
arch/xtensa/kernel/asm-offsets.c