From: Bin Meng Date: Wed, 7 Jul 2021 07:36:26 +0000 (+0800) Subject: x86: Drop _X86EMU_env definition when CONFIG_BIOSEMU is used X-Git-Url: http://git.dujemihanovic.xyz/html/%7B%7B%20%28.OutputFormats.Get?a=commitdiff_plain;h=cfa5189811e29e4a24ed41a814e2feb41e79b52e;p=u-boot.git x86: Drop _X86EMU_env definition when CONFIG_BIOSEMU is used With x86 we can execute an option ROM either natively or using the x86 emulator (if enabled with CONFIG_BIOSEMU). Both of these share the _X86EMU_env variable, with the native code using it to hold register state during interrupt processing. At present, in 32-bit U-Boot, the variable is declared twice, once in common code and once in code only compiled with CONFIG_BIOSEMU. With GCC 11 this causes a 'multiple definitions' error on boards with CONFIG_BIOSEMU. Drop the emulator definition when CONFIG_BIOSEMU is used. Signed-off-by: Bin Meng --- diff --git a/arch/x86/lib/bios.c b/arch/x86/lib/bios.c index fbdc3b04e3..98cc05de2e 100644 --- a/arch/x86/lib/bios.c +++ b/arch/x86/lib/bios.c @@ -23,7 +23,9 @@ static int (*int_handler[256])(void); /* to have a common register file for interrupt handlers */ +#ifndef CONFIG_BIOSEMU X86EMU_sysEnv _X86EMU_env; +#endif asmlinkage void (*realmode_call)(u32 addr, u32 eax, u32 ebx, u32 ecx, u32 edx, u32 esi, u32 edi);