Skip to contentSkip to conversation

arm: Replace ASSEMBLY with ASSEMBLER in uapi headers

PATCH Superseded Nick Huang 2 participants 3 messages Feb 18 – Feb 27 Arm (32-bit)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore

Nick Huang

author
#0 lore raw

PATCH 1/1 arm: Replace ASSEMBLY with ASSEMBLER in uapi headers

ASSEMBLY is defined only by the kernel Makefile and thus not suitable for uapi headers unless userspace Makefiles also define it. Switch to ASSEMBLER, which the compiler sets automatically when compiling assembly. Reference: commit 639f08fc20c92c2cc373b2b4d065185daa9633e3

---
 arch/arm/include/uapi/asm/ptrace.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/include/uapi/asm/ptrace.h +2 -2
index 8896c23cc..f28cbd318 100644
@@ -119,7 +119,7 @@
 #define PT_DATA_ADDR		0x10004
 #define PT_TEXT_END_ADDR	0x10008
 
-#ifndef __ASSEMBLY__
+#ifndef __ASSEMBLER__ 
 
 /*
  * This struct defines the way the registers are stored on the
@@ -158,6 +158,6 @@ struct pt_regs {
 #define ARM_VFPREGS_SIZE ( 32 * 8 /*fpregs*/ + 4 /*fpscr*/ )
 
 
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLER__  */
 
 #endif /* _UAPI__ASM_ARM_PTRACE_H */
Signature · 1 line
2.43.0
#1 lore raw
Quoted 4 lines · Nick Huang

ASSEMBLY is defined only by the kernel Makefile and thus not suitable for uapi headers unless userspace Makefiles also define it. Switch to ASSEMBLER, which the compiler sets automatically when compiling assembly. Reference: commit 639f08fc20c92c2cc373b2b4d065185daa9633e3

While not a regression, as this used not to work anyway with ASSEMBLY,
the use of ASSEMBLER requires sufficiently new a compiler and in principle the userland may have old tools installed for whatever reason. So perhaps #error is in order if the compiler is not recent enough, for a complete fix?

FWIW GCC 2.95.x didn't yet have it, it landed ultimately with GCC 3.0.
Do we care? For instance the GNU C library still does for its installed headers.

Maciej

author
#2 lore raw

Re: [PATCH] arm: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers

Quoted 11 lines

While not a regression, as this used not to work anyway with ASSEMBLY,
the use of ASSEMBLER requires sufficiently new a compiler and in principle the userland may have old tools installed for whatever reason. So perhaps #error is in order if the compiler is not recent enough, for a complete fix?

FWIW GCC 2.95.x didn't yet have it, it landed ultimately with GCC 3.0. Do we care? For instance the GNU C library still does for its installed
headers.

Maciej

Thanks, Maciej — good point about older toolchains. I'll send v2 of the patch that adds a compile-time check and an #error when the
compiler is too old to provide ASSEMBLER, making the failure explicit.

--
Regards,
Nick Huang