do_ring3() 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/umip.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x86/umip.c b/x86/umip.c index c5700b3..5ae6f44 100644 --- a/x86/umip.c +++ b/x86/umip.c @@ -114,7 +114,7 @@ static void test_umip_gp(const char *msg) /* The ugly mode switching code */ -static int do_ring3(void (*fn)(const char *), const char *arg) +static int __attribute__((noinline)) do_ring3(void (*fn)(const char *), const char *arg) { static unsigned char user_stack[4096]; int ret; -- 2.33.0.rc2.250.ged5fa647cd-goog