Makes sense to me. Reviewed-by: H. Peter Anvin <hpa@xxxxxxxxx> On May 13, 2021 4:44:51 AM PDT, Ingo Molnar <mingo@xxxxxxxxxx> wrote: > >* H. Peter Anvin <hpa@xxxxxxxxx> wrote: > >> Needed some head scratching, but then... >> >> It makes sense for the cross-build: it's building for the host, and a > >> non-x86 machine isn't doing to have a register named "%rsp". > >Oh, indeed, sfr is building on powerpc64 I think? > >> So this needs to be protected from non-kernel use either via >__KERNEL__ >> or by factoring the basic macros out into a separate file. > >So something like the below? > >The exception table stuff is definitely kernel-only. The others could, >in >principle, be used by tooling as well. > >Thanks, > > Ingo > >=======================> >From: Ingo Molnar <mingo@xxxxxxxxxx> >Date: Thu, 13 May 2021 13:41:41 +0200 >Subject: [PATCH] x86/asm: Make <asm/asm.h> valid on cross-builds as >well > >Stephen Rothwell reported that the objtool cross-build breaks on >non-x86 hosts: > >> tools/arch/x86/include/asm/asm.h:185:24: error: invalid register name >for 'current_stack_pointer' > > 185 | register unsigned long current_stack_pointer asm(_ASM_SP); > > | ^~~~~~~~~~~~~~~~~~~~~ > >The PowerPC host obviously doesn't know much about x86 register names. > >Protect the kernel-specific bits of <asm/asm.h>, so that it can be >included by tooling and cross-built. > >Reported-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> >Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx> >--- > arch/x86/include/asm/asm.h | 4 ++++ > tools/arch/x86/include/asm/asm.h | 4 ++++ > 2 files changed, 8 insertions(+) > >diff --git a/arch/x86/include/asm/asm.h b/arch/x86/include/asm/asm.h >index 507a37a46027..3ad3da9a7d97 100644 >--- a/arch/x86/include/asm/asm.h >+++ b/arch/x86/include/asm/asm.h >@@ -120,6 +120,8 @@ > # define CC_OUT(c) [_cc_ ## c] "=qm" > #endif > >+#ifdef __KERNEL__ >+ > /* Exception table entry */ > #ifdef __ASSEMBLY__ > # define _ASM_EXTABLE_HANDLE(from, to, handler) \ >@@ -186,4 +188,6 @@ register unsigned long current_stack_pointer >asm(_ASM_SP); > #define ASM_CALL_CONSTRAINT "+r" (current_stack_pointer) > #endif /* __ASSEMBLY__ */ > >+#endif /* __KERNEL__ */ >+ > #endif /* _ASM_X86_ASM_H */ >diff --git a/tools/arch/x86/include/asm/asm.h >b/tools/arch/x86/include/asm/asm.h >index 507a37a46027..3ad3da9a7d97 100644 >--- a/tools/arch/x86/include/asm/asm.h >+++ b/tools/arch/x86/include/asm/asm.h >@@ -120,6 +120,8 @@ > # define CC_OUT(c) [_cc_ ## c] "=qm" > #endif > >+#ifdef __KERNEL__ >+ > /* Exception table entry */ > #ifdef __ASSEMBLY__ > # define _ASM_EXTABLE_HANDLE(from, to, handler) \ >@@ -186,4 +188,6 @@ register unsigned long current_stack_pointer >asm(_ASM_SP); > #define ASM_CALL_CONSTRAINT "+r" (current_stack_pointer) > #endif /* __ASSEMBLY__ */ > >+#endif /* __KERNEL__ */ >+ > #endif /* _ASM_X86_ASM_H */ -- Sent from my Android device with K-9 Mail. Please excuse my brevity.