[PATCH] x86: Drop _X86EMU_env definition when CONFIG_BIOSEMU is used
    Bin Meng 
    bmeng.cn at gmail.com
       
    Wed Jul  7 09:36:26 CEST 2021
    
    
  
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 <bmeng.cn at gmail.com>
---
 arch/x86/lib/bios.c | 2 ++
 1 file changed, 2 insertions(+)
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);
-- 
2.25.1
    
    
More information about the U-Boot
mailing list