exec_in_big_real_mode() uses inline asm that has labels. Clang decides that it can inline this function, which causes the assembler to complain about duplicate symbols. Mark the function as "noinline" to prevent this. Signed-off-by: Bill Wendling <morbo@xxxxxxxxxx> --- x86/realmode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x86/realmode.c b/x86/realmode.c index b4fa603..56bd238 100644 --- a/x86/realmode.c +++ b/x86/realmode.c @@ -178,7 +178,7 @@ static inline void init_inregs(struct regs *regs) inregs.esp = (unsigned long)&tmp_stack.top; } -static void exec_in_big_real_mode(struct insn_desc *insn) +static void __attribute__((noinline)) exec_in_big_real_mode(struct insn_desc *insn) { unsigned long tmp; static struct regs save; -- 2.33.0.rc2.250.ged5fa647cd-goog