Apparently the binutils 2.20 assembler can't handle the '&&' operator in
the UNWIND_HINT_REGS macro.  Rearrange the macro to do without it.

This fixes the following error:

  arch/x86/entry/entry_64.S: Assembler messages:
  arch/x86/entry/entry_64.S:521: Error: non-constant expression in ".if" 
statement
  arch/x86/entry/entry_64.S:521: Error: non-constant expression in ".if" 
statement
  arch/x86/entry/entry_64.S:521: Error: non-constant expression in ".if" 
statement
  arch/x86/entry/entry_64.S:521: Error: non-constant expression in ".if" 
statement
  arch/x86/entry/entry_64.S:521: Error: non-constant expression in ".if" 
statement
  arch/x86/entry/entry_64.S:521: Error: non-constant expression in ".if" 
statement
  arch/x86/entry/entry_64.S:521: Error: non-constant expression in ".if" 
statement
  arch/x86/entry/entry_64.S:521: Error: non-constant expression in ".if" 
statement
  arch/x86/entry/entry_64.S:521: Error: non-constant expression in ".if" 
statement

Reported-by: Andrew Morton <[email protected]>
Fixes: 39358a033b2e ("objtool, x86: Add facility for asm code to provide unwind 
hints")
Signed-off-by: Josh Poimboeuf <[email protected]>
---
 arch/x86/include/asm/unwind_hints.h | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/arch/x86/include/asm/unwind_hints.h 
b/arch/x86/include/asm/unwind_hints.h
index 5e02b11c9b86..bae46fc6b9de 100644
--- a/arch/x86/include/asm/unwind_hints.h
+++ b/arch/x86/include/asm/unwind_hints.h
@@ -44,10 +44,12 @@
 .endm
 
 .macro UNWIND_HINT_REGS base=%rsp offset=0 indirect=0 extra=1 iret=0
-       .if \base == %rsp && \indirect
-               .set sp_reg, ORC_REG_SP_INDIRECT
-       .elseif \base == %rsp
-               .set sp_reg, ORC_REG_SP
+       .if \base == %rsp
+               .if \indirect
+                       .set sp_reg, ORC_REG_SP_INDIRECT
+               .else
+                       .set sp_reg, ORC_REG_SP
+               .endif
        .elseif \base == %rbp
                .set sp_reg, ORC_REG_BP
        .elseif \base == %rdi
-- 
2.13.3

Reply via email to