summaryrefslogtreecommitdiff
path: root/lib/efi
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2021-11-03 21:09:08 -0600
committerHeinrich Schuchardt <xypron.glpk@gmx.de>2021-11-07 18:36:55 +0100
commit9c297a3dab2dc830a6abe54039d57612a0ac6918 (patch)
treed0679ff57c96f4164b170c07b071d64016ef12d9 /lib/efi
parente16c47fa3d2e051a0035191d473549589bd34fc4 (diff)
x86: Don't duplicate global_ptr in 64-bit EFI app
This variable is already defined by the EFI code. Drop the duplicate definition when building a 64-bit EFI app. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Diffstat (limited to 'lib/efi')
-rw-r--r--lib/efi/efi.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/efi/efi.c b/lib/efi/efi.c
index 0c16a5fdd3..69e52e4574 100644
--- a/lib/efi/efi.c
+++ b/lib/efi/efi.c
@@ -18,6 +18,15 @@
#include <efi_api.h>
/*
+ * Global declaration of gd.
+ *
+ * As we write to it before relocation we have to make sure it is not put into
+ * a .bss section which may overlap a .rela section. Initialization forces it
+ * into a .data section which cannot overlap any .rela section.
+ */
+struct global_data *global_data_ptr = (struct global_data *)~0;
+
+/*
* Unfortunately we cannot access any code outside what is built especially
* for the stub. lib/string.c is already being built for the U-Boot payload
* so it uses the wrong compiler flags. Add our own memset() here.