From: Thomas Huth <thuth@redhat.com>
To: Arnd Bergmann <arnd@arndb.de>,
Nathan Chancellor <nathan@kernel.org>,
Nicolas Schier <nsc@kernel.org>, Paul Walmsley <pjw@kernel.org>,
Palmer Dabbelt <palmer@dabbelt.com>,
Albert Ou <aou@eecs.berkeley.edu>
Cc: soc@lists.linux.dev, linux-kernel@vger.kernel.org,
linux-kbuild@vger.kernel.org,
"Thomas Weißschuh" <linux@weissschuh.net>,
"Alexandre Ghiti" <alex@ghiti.fr>,
"Nick Desaulniers" <ndesaulniers@google.com>,
"Bill Wendling" <morbo@google.com>,
"Justin Stitt" <justinstitt@google.com>,
linux-riscv@lists.infradead.org, llvm@lists.linux.dev
Subject: [PATCH v5 00/13] treewide: Replace __ASSEMBLY__ with __ASSEMBLER__ in header files
Date: Fri, 23 Oct 2026 08:48:37 +0200 [thread overview]
Message-ID: <20261023064908.66707-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 (and
also other compilers like Tiny-C or PCC) define the macro __ASSEMBLER__
automatically already when compiling assembly code, too, 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 makes sense to standardize
on the macro that gets defined by the compiler, so this patch series
changes all occurrences of __ASSEMBLY__ into __ASSEMBLER__ and
finally removes the -D__ASSEMBLY__ from the Makefiles.
I split the patches per architecture / maintained subsystem to ease
the review, and I also split the uapi headers from the normal ones in
case we ever decide that uapi needs to be treated differently from the
normal headers here and the patches would need to get reverted.
v5:
- To ease the review, I split some huge patches into smaller patches
when there was a separate entry for the files in the MAINTAINERS file
- Dropped the patches that were already merged
- Rebased the patches to the current master branch and fixed new
occurrences of __ASSEMBLY__
Thomas Huth (13):
of: fdt: Replace __ASSEMBLY__ with __ASSEMBLER__ in of_fdt.h header
file
smccc: Replace __ASSEMBLY__ with __ASSEMBLER__
ARM: PXA: Replace __ASSEMBLY__ with __ASSEMBLER__
ARM: BCM7XXX: Replace __ASSEMBLY__ with __ASSEMBLER__
arm: Replace __ASSEMBLY__ with __ASSEMBLER__ in ptrace uapi header
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
asm-generic: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers
uapi: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers
asm-generic: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-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/alpha/boot/compressed/Makefile | 2 +-
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/kexec.h | 4 ++--
arch/arm/include/asm/kgdb.h | 4 ++--
arch/arm/include/asm/linkage.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 | 8 ++++----
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/vfp.h | 2 +-
arch/arm/include/asm/virt.h | 4 ++--
arch/arm/include/uapi/asm/ptrace.h | 4 ++--
.../mach-footbridge/include/mach/hardware.h | 2 +-
arch/arm/mach-pxa/irqs.h | 2 +-
arch/arm/mach-pxa/pxa-regs.h | 2 +-
arch/arm/mach-sa1100/include/mach/bitfield.h | 2 +-
arch/arm/mach-sa1100/include/mach/hardware.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/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/int-ll64.h | 6 +++---
include/asm-generic/rwonce.h | 4 ++--
include/asm-generic/signal.h | 4 ++--
include/linux/amba/serial.h | 4 ++--
include/linux/annotate.h | 18 +++++++++---------
include/linux/arm-smccc.h | 10 +++++-----
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/linkage.h | 6 +++---
include/linux/mem_encrypt.h | 4 ++--
include/linux/of_fdt.h | 4 ++--
include/linux/pe.h | 4 ++--
include/linux/platform_data/emif_plat.h | 4 ++--
include/linux/ti-emif-sram.h | 2 +-
include/linux/types.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/types.h | 4 ++--
scripts/Makefile.build | 2 +-
scripts/gfp-translate | 2 +-
scripts/headers_install.sh | 1 -
.../tests/cmd_graph/test_savedcmd_parser.py | 2 +-
tools/include/asm-generic/barrier.h | 4 ++--
tools/include/asm/alternative.h | 2 +-
tools/include/linux/cfi_types.h | 6 +++---
tools/include/linux/compiler.h | 4 ++--
tools/include/uapi/linux/const.h | 4 ++--
.../testing/selftests/kvm/lib/riscv/handlers.S | 4 ----
.../testing/selftests/vDSO/vgetrandom-chacha.S | 2 --
123 files changed, 229 insertions(+), 237 deletions(-)
--
2.56.0
next reply other threads:[~2026-10-23 6:49 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-23 6:48 Thomas Huth [this message]
2026-10-23 6:48 ` [PATCH v5 01/13] of: fdt: Replace __ASSEMBLY__ with __ASSEMBLER__ in of_fdt.h header file Thomas Huth
2026-10-23 6:48 ` [PATCH v5 02/13] smccc: Replace __ASSEMBLY__ with __ASSEMBLER__ Thomas Huth
2026-10-23 6:48 ` [PATCH v5 03/13] ARM: PXA: " Thomas Huth
2026-10-23 6:48 ` [PATCH v5 04/13] ARM: BCM7XXX: " Thomas Huth
2026-10-23 6:48 ` [PATCH v5 05/13] arm: Replace __ASSEMBLY__ with __ASSEMBLER__ in ptrace uapi header Thomas Huth
2026-10-23 6:48 ` [PATCH v5 06/13] arm: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers Thomas Huth
2026-10-23 6:48 ` [PATCH v5 07/13] hexagon: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers Thomas Huth
2026-10-23 6:48 ` [PATCH v5 08/13] hexagon: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers Thomas Huth
2026-10-23 6:48 ` [PATCH v5 09/13] asm-generic: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers Thomas Huth
2026-10-23 6:48 ` [PATCH v5 10/13] uapi: " Thomas Huth
2026-10-23 6:48 ` [PATCH v5 11/13] asm-generic: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers Thomas Huth
2026-10-23 6:48 ` [PATCH v5 12/13] include: " Thomas Huth
2026-10-23 15:33 ` Bart Van Assche
2026-10-23 6:48 ` [PATCH v5 13/13] treewide: Stop defining __ASSEMBLY__ for assembler files Thomas Huth
2026-10-23 15:47 ` [PATCH v5 00/13] treewide: Replace __ASSEMBLY__ with __ASSEMBLER__ in header files Thomas Weißschuh
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=20261023064908.66707-1-thuth@redhat.com \
--to=thuth@redhat.com \
--cc=alex@ghiti.fr \
--cc=aou@eecs.berkeley.edu \
--cc=arnd@arndb.de \
--cc=justinstitt@google.com \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux@weissschuh.net \
--cc=llvm@lists.linux.dev \
--cc=morbo@google.com \
--cc=nathan@kernel.org \
--cc=ndesaulniers@google.com \
--cc=nsc@kernel.org \
--cc=palmer@dabbelt.com \
--cc=pjw@kernel.org \
--cc=soc@lists.linux.dev \
/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