From 01c07bfe113aa2369bbff34c8f845108a2273e1f Mon Sep 17 00:00:00 2001 From: Alexander Potapenko Date: Fri, 28 Nov 2025 13:29:28 +0100 Subject: executor: apply optnone to guest_handle_nested_vmentry_intel() Florent Revest reported ThinLTO builds failing with the following error: :2:1: error: symbol 'after_vmentry_label' is already defined after_vmentry_label: ^ error: cannot compile inline asm , which turned out to be caused by the compiler not respecting `noinline`. Adding __attribute__((optnone)) (or optimize("O0") on GCC) fixes the issue. --- executor/common_kvm_syzos.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'executor/common_kvm_syzos.h') diff --git a/executor/common_kvm_syzos.h b/executor/common_kvm_syzos.h index 5fe513ab1..923284efe 100644 --- a/executor/common_kvm_syzos.h +++ b/executor/common_kvm_syzos.h @@ -35,10 +35,19 @@ #define __addrspace_guest #endif +// Disable optimizations for a particular function. +#if defined(__clang__) +#define __optnone __attribute__((optnone)) +#elif defined(__GNUC__) +#define __optnone __attribute__((optimize("O0"))) +#else +#define __optnone +#endif + // Host will map the code in this section into the guest address space. #define GUEST_CODE __attribute__((section("guest"))) __no_stack_protector __addrspace_guest // Start/end of the guest section. extern char *__start_guest, *__stop_guest; -#endif // EXECUTOR_COMMON_KVM_SYZOS_H \ No newline at end of file +#endif // EXECUTOR_COMMON_KVM_SYZOS_H -- cgit mrf-deployment