Subject: Re: linux-next: build failure after merge of the tip tree

From: Ingo Molnar <[email-masked]>
Date: Thu, 13 May 2021 12:51:47 +0200

* Stephen Rothwell <[email-masked]> wrote:

> Hi all,
> 
> After merging the tip tree, today's linux-next build (x86_64 allmodconfig)
> failed like this:
> 
> In file included from tools/arch/x86/include/asm/nops.h:5,
>                  from arch/x86/decode.c:15:
> 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);
>       |                        ^~~~~~~~~~~~~~~~~~~~~
> 
> Caused by commit
> 
>   eef23e72b78b ("x86/asm: Use _ASM_BYTES() in <asm/nops.h>")
> 
> I have used the tip tree from next-20210512 for today.

Hm, this must be some cross-build artifact or toolchain version dependency 
- as plain native build of x86-64 allmodconfig builds just fine:

    CC       arch/x86/decode.o
    LD       arch/x86/objtool-in.o

I tried with gcc-8, but that didn't trigger it.

I suppose the workaround below would make it build - but that's not a real 
solution.

hpa, any ideas?

Thanks,

	Ingo

diff --git a/tools/arch/x86/include/asm/asm.h b/tools/arch/x86/include/asm/asm.h
index 507a37a46027..ada5482c024a 100644
--- a/tools/arch/x86/include/asm/asm.h
+++ b/tools/arch/x86/include/asm/asm.h
@@ -176,14 +176,6 @@
 
 /* For C file, we already have NOKPROBE_SYMBOL macro */
 
-/*
- * This output constraint should be used for any inline asm which has a "call"
- * instruction.  Otherwise the asm may be inserted before the frame pointer
- * gets set up by the containing function.  If you forget to do this, objtool
- * may print a "call without frame pointer save/setup" warning.
- */
-register unsigned long current_stack_pointer asm(_ASM_SP);
-#define ASM_CALL_CONSTRAINT "+r" (current_stack_pointer)
 #endif /* __ASSEMBLY__ */
 
 #endif /* _ASM_X86_ASM_H */