From: Thomas Huth <thuth@redhat.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-kbuild@vger.kernel.org, Thomas Huth <thuth@redhat.com>
Subject: [PATCH v5 0/8] Replace __ASSEMBLY__ with __ASSEMBLER__ in header files
Date: Thu, 9 Apr 2026 11:47:00 +0200 [thread overview]
Message-ID: <20260409094708.1687376-1-thuth@redhat.com> (raw)
The kernel Makefiles define the __ASSEMBLY__ macro to provide
a way to use headers in both, assembly and C source code.
However, all the supported versions of the GCC and Clang compilers
also define the macro __ASSEMBLER__ automatically already when compiling
assembly code, so some kernel headers are using __ASSEMBLER__ instead.
With regards to userspace code, this seems also to be constant source
of confusion, see for example these links here:
https://lore.kernel.org/kvm/20250222014526.2302653-1-seanjc@google.com/
https://stackoverflow.com/questions/28924355/gcc-assembler-preprocessor-not-compatible-with-standard-headers
https://forums.raspberrypi.com/viewtopic.php?p=1652944#p1653834
https://github.com/riscv-software-src/opensbi/issues/199
To avoid confusion in the future, it would make sense to standardize
on the macro that gets defined by the compiler, so this patch series
changes all occurances of __ASSEMBLY__ into __ASSEMBLER__ and
finally removes the -D__ASSEMBLY__ from the Makefiles.
I split the patches per architecture to ease the review, and I also
split the uapi headers from the normal ones in case we decide that
uapi needs to be treated differently from the normal headers here.
Most patches for the individual architectures have already been merged
through the corresponding architecture trees (big thanks to the main-
tainers!), so this series here now just consists of the remaining
patches.
v5:
- More patches have been merged through architecture trees, dropped
them now from this series here.
- Fixed some more occurances of __ASSEMBLY__ in new code.
v4:
- Most patches from the original series got already merged via the
tree of the individual architectures, so the amount of patches here
has been greatly reduced
- Rebased patches on top of linux-next, fixed conflicts and new
occurances
Thomas Huth (8):
arm: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers
arm: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers
hexagon: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers
hexagon: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers
kselftest/riscv: Replace __ASSEMBLY__ with __ASSEMBLER__
uapi: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers
include: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers
treewide: Stop defining __ASSEMBLY__ for assembler files
Documentation/dev-tools/checkuapi.rst | 2 +-
Makefile | 2 +-
arch/arm/include/asm/arch_gicv3.h | 4 ++--
arch/arm/include/asm/assembler.h | 2 +-
arch/arm/include/asm/barrier.h | 4 ++--
arch/arm/include/asm/cache.h | 2 +-
arch/arm/include/asm/cp15.h | 4 ++--
arch/arm/include/asm/cputype.h | 4 ++--
arch/arm/include/asm/current.h | 4 ++--
arch/arm/include/asm/delay.h | 4 ++--
arch/arm/include/asm/domain.h | 8 ++++----
arch/arm/include/asm/fpstate.h | 2 +-
arch/arm/include/asm/ftrace.h | 6 +++---
arch/arm/include/asm/hardware/cache-b15-rac.h | 2 +-
arch/arm/include/asm/hardware/cache-l2x0.h | 4 ++--
arch/arm/include/asm/hardware/dec21285.h | 2 +-
arch/arm/include/asm/hardware/ioc.h | 2 +-
arch/arm/include/asm/hardware/iomd.h | 4 ++--
arch/arm/include/asm/hardware/memc.h | 2 +-
arch/arm/include/asm/hwcap.h | 2 +-
arch/arm/include/asm/irq.h | 2 +-
arch/arm/include/asm/jump_label.h | 4 ++--
arch/arm/include/asm/kexec.h | 4 ++--
arch/arm/include/asm/kgdb.h | 4 ++--
arch/arm/include/asm/mach/arch.h | 2 +-
arch/arm/include/asm/mcpm.h | 4 ++--
arch/arm/include/asm/memory.h | 4 ++--
arch/arm/include/asm/mpu.h | 4 ++--
arch/arm/include/asm/opcodes.h | 12 ++++++------
arch/arm/include/asm/page.h | 4 ++--
arch/arm/include/asm/pgtable-2level.h | 4 ++--
arch/arm/include/asm/pgtable-3level.h | 4 ++--
arch/arm/include/asm/pgtable-nommu.h | 4 ++--
arch/arm/include/asm/pgtable.h | 10 +++++-----
arch/arm/include/asm/probes.h | 4 ++--
arch/arm/include/asm/proc-fns.h | 4 ++--
arch/arm/include/asm/ptrace.h | 4 ++--
arch/arm/include/asm/system_info.h | 4 ++--
arch/arm/include/asm/system_misc.h | 4 ++--
arch/arm/include/asm/thread_info.h | 2 +-
arch/arm/include/asm/thread_notify.h | 2 +-
arch/arm/include/asm/tlbflush.h | 10 +++++-----
arch/arm/include/asm/tls.h | 4 ++--
arch/arm/include/asm/unified.h | 6 +++---
arch/arm/include/asm/unwind.h | 4 ++--
arch/arm/include/asm/v7m.h | 4 ++--
arch/arm/include/asm/vdso.h | 4 ++--
arch/arm/include/asm/vdso/cp15.h | 4 ++--
arch/arm/include/asm/vdso/gettimeofday.h | 4 ++--
arch/arm/include/asm/vdso/processor.h | 4 ++--
arch/arm/include/asm/vdso/vsyscall.h | 4 ++--
arch/arm/include/asm/vfp.h | 2 +-
arch/arm/include/asm/virt.h | 4 ++--
arch/arm/include/uapi/asm/ptrace.h | 4 ++--
arch/arm/mach-at91/pm.h | 2 +-
arch/arm/mach-exynos/smc.h | 4 ++--
.../mach-footbridge/include/mach/hardware.h | 2 +-
arch/arm/mach-imx/hardware.h | 2 +-
arch/arm/mach-imx/mxc.h | 2 +-
arch/arm/mach-omap2/control.h | 8 ++++----
arch/arm/mach-omap2/soc.h | 4 ++--
arch/arm/mach-omap2/sram.h | 4 ++--
arch/arm/mach-pxa/irqs.h | 2 +-
arch/arm/mach-pxa/pxa-regs.h | 2 +-
arch/arm/mach-s3c/map-base.h | 2 +-
arch/arm/mach-sa1100/include/mach/bitfield.h | 2 +-
arch/arm/mach-sa1100/include/mach/hardware.h | 2 +-
arch/arm/mach-tegra/reset.h | 2 +-
arch/arm/mach-tegra/sleep.h | 2 +-
arch/arm/tools/gen-mach-types | 2 +-
arch/arm64/kernel/vdso32/Makefile | 1 -
arch/hexagon/include/asm/hexagon_vm.h | 4 ++--
arch/hexagon/include/asm/mem-layout.h | 6 +++---
arch/hexagon/include/asm/page.h | 4 ++--
arch/hexagon/include/asm/processor.h | 4 ++--
arch/hexagon/include/asm/thread_info.h | 12 ++++++------
arch/hexagon/include/uapi/asm/registers.h | 4 ++--
arch/loongarch/vdso/Makefile | 2 +-
arch/mips/boot/compressed/Makefile | 2 +-
arch/mips/vdso/Makefile | 2 +-
arch/powerpc/boot/Makefile | 2 +-
arch/powerpc/platforms/cell/spufs/Makefile | 2 +-
arch/s390/Makefile | 2 +-
arch/x86/boot/Makefile | 2 +-
arch/x86/boot/compressed/Makefile | 2 +-
arch/x86/realmode/rm/Makefile | 2 +-
arch/xtensa/kernel/Makefile | 2 +-
drivers/firmware/efi/libstub/Makefile | 2 +-
drivers/memory/emif.h | 4 ++--
drivers/net/wan/Makefile | 2 +-
include/asm-generic/barrier.h | 4 ++--
include/asm-generic/bug.h | 4 ++--
include/asm-generic/current.h | 2 +-
include/asm-generic/error-injection.h | 2 +-
include/asm-generic/fixmap.h | 4 ++--
include/asm-generic/getorder.h | 4 ++--
include/asm-generic/int-ll64.h | 6 +++---
include/asm-generic/kprobes.h | 4 ++--
include/asm-generic/memory_model.h | 4 ++--
include/asm-generic/mmu.h | 2 +-
include/asm-generic/pgtable-nop4d.h | 4 ++--
include/asm-generic/pgtable-nopmd.h | 4 ++--
include/asm-generic/pgtable-nopud.h | 4 ++--
include/asm-generic/rwonce.h | 4 ++--
include/asm-generic/signal.h | 4 ++--
include/asm-generic/vdso/vsyscall.h | 4 ++--
include/linux/amba/serial.h | 4 ++--
include/linux/annotate.h | 18 +++++++++---------
include/linux/arm-smccc.h | 10 +++++-----
include/linux/bitmap.h | 4 ++--
include/linux/bits.h | 6 +++---
include/linux/cfi_types.h | 6 +++---
include/linux/compiler.h | 4 ++--
include/linux/compiler_types.h | 8 ++++----
include/linux/edd.h | 4 ++--
include/linux/err.h | 2 +-
include/linux/export.h | 2 +-
include/linux/init.h | 6 +++---
include/linux/ioport.h | 4 ++--
include/linux/irqchip/arm-gic-v3.h | 2 +-
include/linux/irqchip/arm-gic.h | 4 ++--
include/linux/jump_label.h | 10 +++++-----
include/linux/kexec.h | 2 +-
include/linux/linkage.h | 6 +++---
include/linux/mem_encrypt.h | 4 ++--
include/linux/mmzone.h | 4 ++--
include/linux/objtool.h | 8 ++++----
include/linux/objtool_types.h | 4 ++--
include/linux/of_fdt.h | 4 ++--
include/linux/pe.h | 4 ++--
include/linux/percpu-defs.h | 4 ++--
include/linux/pfn.h | 2 +-
include/linux/pgtable.h | 4 ++--
include/linux/platform_data/emif_plat.h | 4 ++--
include/linux/serial_s3c.h | 4 ++--
include/linux/static_call_types.h | 4 ++--
include/linux/ti-emif-sram.h | 2 +-
include/linux/types.h | 4 ++--
include/soc/imx/cpu.h | 2 +-
include/soc/tegra/flowctrl.h | 4 ++--
include/soc/tegra/fuse.h | 4 ++--
include/uapi/asm-generic/int-l64.h | 4 ++--
include/uapi/asm-generic/int-ll64.h | 4 ++--
include/uapi/asm-generic/signal-defs.h | 2 +-
include/uapi/asm-generic/signal.h | 4 ++--
include/uapi/linux/a.out.h | 4 ++--
include/uapi/linux/const.h | 4 ++--
include/uapi/linux/edd.h | 4 ++--
include/uapi/linux/hdlc/ioctl.h | 4 ++--
include/uapi/linux/sched.h | 2 +-
include/uapi/linux/types.h | 4 ++--
include/vdso/datapage.h | 6 +++---
include/vdso/helpers.h | 4 ++--
include/vdso/processor.h | 4 ++--
include/vdso/vsyscall.h | 4 ++--
include/xen/arm/interface.h | 2 +-
include/xen/interface/xen-mca.h | 4 ++--
include/xen/interface/xen.h | 8 ++++----
scripts/Makefile.build | 2 +-
scripts/gfp-translate | 2 +-
tools/include/asm-generic/barrier.h | 4 ++--
tools/include/asm/alternative.h | 2 +-
tools/include/linux/bits.h | 6 +++---
tools/include/linux/cfi_types.h | 6 +++---
tools/include/linux/compiler.h | 4 ++--
tools/include/linux/objtool_types.h | 4 ++--
tools/include/linux/static_call_types.h | 4 ++--
tools/include/uapi/linux/const.h | 4 ++--
.../trace/beauty/include/uapi/linux/sched.h | 2 +-
.../testing/selftests/kvm/lib/riscv/handlers.S | 4 ----
.../testing/selftests/riscv/cfi/cfi_rv_test.h | 2 +-
.../testing/selftests/vDSO/vgetrandom-chacha.S | 2 --
172 files changed, 329 insertions(+), 336 deletions(-)
--
2.53.0
next reply other threads:[~2026-04-09 9:47 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-09 9:47 Thomas Huth [this message]
2026-04-09 9:47 ` [PATCH v5 1/8] arm: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers Thomas Huth
2026-04-09 9:47 ` [PATCH v5 2/8] arm: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers Thomas Huth
2026-04-09 9:47 ` [PATCH v5 3/8] hexagon: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers Thomas Huth
2026-04-09 9:47 ` [PATCH v5 4/8] hexagon: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers Thomas Huth
2026-04-09 9:47 ` [PATCH v5 5/8] kselftest/riscv: Replace __ASSEMBLY__ with __ASSEMBLER__ Thomas Huth
2026-04-09 9:47 ` [PATCH v5 6/8] uapi: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers Thomas Huth
2026-04-09 9:47 ` [PATCH v5 7/8] include: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers Thomas Huth
2026-04-09 9:47 ` [PATCH v5 8/8] treewide: Stop defining __ASSEMBLY__ for assembler files Thomas Huth
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260409094708.1687376-1-thuth@redhat.com \
--to=thuth@redhat.com \
--cc=arnd@arndb.de \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox