summaryrefslogtreecommitdiff
path: root/arch/x86
diff options
context:
space:
mode:
authorBin Meng <bmeng.cn@gmail.com>2021-07-07 10:36:26 +0300
committerTom Rini <trini@konsulko.com>2021-07-07 17:17:54 +0300
commitcfa5189811e29e4a24ed41a814e2feb41e79b52e (patch)
tree966ea0e8e42138528ca9595b4b4de4de42b54ef4 /arch/x86
parentcb80ff20f2c8392f19248418f9a19a0474661860 (diff)
downloadu-boot-cfa5189811e29e4a24ed41a814e2feb41e79b52e.tar.xz
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 <bmeng.cn@gmail.com>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/lib/bios.c2
1 files changed, 2 insertions, 0 deletions
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);