Re: [PATCH v2 0/2] riscv: Replace __ASSEMBLY__ with __ASSEMBLER__ in header files

Alexandre Ghiti
2025-07-27T13:29:49Z

Hi Thomas,

On 6/6/25 09:09, Thomas Huth wrote:
> 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__.
>
> 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.
>
> The x86 and parisc patches already got merged via their specific
> architecture tree:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=24a295e4ef1ca8
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8a141be3233af7
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cccaea1d66e94b
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e2b6a188625a2b
>
> So I assume the riscv patches should also go via the riscv tree.
>
> v2:
> - Split the riscv patches from the global series
> (see https://lore.kernel.org/all/20250314071013.1575167-1-thuth@redhat.com/)
> - Rebased the patches on linux-next and fixed the conflicts
> and new occurances of __ASSEMBLY__
>
> Thomas Huth (2):
> riscv: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers
> riscv: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers
>
> arch/riscv/include/asm/alternative-macros.h | 12 ++++++------
> arch/riscv/include/asm/alternative.h | 2 +-
> arch/riscv/include/asm/asm-extable.h | 6 +++---
> arch/riscv/include/asm/asm.h | 10 +++++-----
> arch/riscv/include/asm/assembler.h | 2 +-
> arch/riscv/include/asm/barrier.h | 4 ++--
> arch/riscv/include/asm/cache.h | 4 ++--
> arch/riscv/include/asm/cpu_ops_sbi.h | 2 +-
> arch/riscv/include/asm/csr.h | 4 ++--
> arch/riscv/include/asm/current.h | 4 ++--
> arch/riscv/include/asm/errata_list.h | 6 +++---
> arch/riscv/include/asm/ftrace.h | 6 +++---
> arch/riscv/include/asm/gpr-num.h | 6 +++---
> arch/riscv/include/asm/image.h | 4 ++--
> arch/riscv/include/asm/insn-def.h | 8 ++++----
> arch/riscv/include/asm/jump_label.h | 4 ++--
> arch/riscv/include/asm/kasan.h | 2 +-
> arch/riscv/include/asm/kgdb.h | 4 ++--
> arch/riscv/include/asm/mmu.h | 4 ++--
> arch/riscv/include/asm/page.h | 4 ++--
> arch/riscv/include/asm/pgtable.h | 4 ++--
> arch/riscv/include/asm/processor.h | 4 ++--
> arch/riscv/include/asm/ptrace.h | 4 ++--
> arch/riscv/include/asm/scs.h | 4 ++--
> arch/riscv/include/asm/set_memory.h | 4 ++--
> arch/riscv/include/asm/thread_info.h | 4 ++--
> arch/riscv/include/asm/vdso.h | 4 ++--
> arch/riscv/include/asm/vdso/getrandom.h | 4 ++--
> arch/riscv/include/asm/vdso/gettimeofday.h | 4 ++--
> arch/riscv/include/asm/vdso/processor.h | 4 ++--
> arch/riscv/include/asm/vdso/vsyscall.h | 4 ++--
> arch/riscv/include/uapi/asm/kvm.h | 2 +-
> arch/riscv/include/uapi/asm/ptrace.h | 4 ++--
> arch/riscv/include/uapi/asm/sigcontext.h | 4 ++--
> tools/arch/riscv/include/asm/csr.h | 6 +++---
> tools/arch/riscv/include/asm/vdso/processor.h | 4 ++--
> 36 files changed, 81 insertions(+), 81 deletions(-)

Applied for 6.17,

Thanks,

Alex