Re: [PATCH 1/1] powerpc: use __clang__ instead of CONFIG_CC_IS_CLANG
From: Michal Suchánek <hidden>
Date: 2025-02-18 07:54:06
Also in:
lkml
Hello, how does this happen? On Tue, Feb 18, 2025 at 12:48:01PM +0800, Shung-Hsi Yu wrote:
Due to include chain (below), powerpc's asm-compat.h is part of UAPI, thus it should use the __clang__ macro to directly detect whether Clang is used rather then relying on the kernel config setting. The later is unreliable because the userspace tools that uses UAPI may be compile with a different compiler than the one used for the kernel, leading to incorrect constrain selection (see link for an example of such). include/uapi/linux/ptrace.h arch/powerpc/include/asm/ptrace.h
There is arch/powerpc/include/uapi/asm/ptrace.h and if the installed header is used this is what should be included. That does no include other asm headers. Thanks Michal
quoted hunk ↗ jump to hunk
arch/powerpc/include/asm/paca.h arch/powerpc/include/asm/atomic.h arch/powerpc/include/asm/asm-compat.h Link: https://github.com/iovisor/bcc/issues/5172 Signed-off-by: Shung-Hsi Yu <redacted> --- arch/powerpc/include/asm/asm-compat.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/arch/powerpc/include/asm/asm-compat.h b/arch/powerpc/include/asm/asm-compat.h index f48e644900a2..34f8740909a9 100644 --- a/arch/powerpc/include/asm/asm-compat.h +++ b/arch/powerpc/include/asm/asm-compat.h@@ -37,7 +37,7 @@ #define STDX_BE stringify_in_c(stdbrx) #endif -#ifdef CONFIG_CC_IS_CLANG +#ifdef __clang__ #define DS_FORM_CONSTRAINT "Z<>" #else #define DS_FORM_CONSTRAINT "YZ<>"-- 2.48.1