aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeinrich Schuchardt <xypron.glpk@gmx.de>2019-01-20 08:20:31 +0100
committerAlexander Graf <agraf@suse.de>2019-02-13 09:40:06 +0100
commit2013c6850e169bfd5ef662a5fb49fdba2860c4f1 (patch)
treebab7ecbcc9e23fad3811c5d48fbbeb17eb625bce
parentf51a226436a874ad4a9fda48dfab169155a48d49 (diff)
downloadu-boot-2013c6850e169bfd5ef662a5fb49fdba2860c4f1.zip
u-boot-2013c6850e169bfd5ef662a5fb49fdba2860c4f1.tar.gz
u-boot-2013c6850e169bfd5ef662a5fb49fdba2860c4f1.tar.bz2
efi_loader: use freestanding library for efi apps
GCC requires that freestanding programs provide memcpy(), memmove(), memset(), and memcmp(). Add the library functions when building a *.efi files. The EFI selftests might use other compilation flags. So use a symbolic link to provide lib/efi_selftest/efi_freestanding.c and compile it separately. Reported-by: Alexander Graf <agraf@suse.de> Fixes: 5be444d14b38 ("efi_loader: consistent build flags for EFI applications") Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
l---------lib/efi_selftest/efi_freestanding.c1
-rw-r--r--scripts/Makefile.lib2
2 files changed, 2 insertions, 1 deletions
diff --git a/lib/efi_selftest/efi_freestanding.c b/lib/efi_selftest/efi_freestanding.c
new file mode 120000
index 0000000..4b7edd5
--- /dev/null
+++ b/lib/efi_selftest/efi_freestanding.c
@@ -0,0 +1 @@
+../efi_loader/efi_freestanding.c \ No newline at end of file
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index a5b57fc..4facb76 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -389,7 +389,7 @@ $(obj)/efi_reloc.o: $(srctree)/arch/$(ARCH)/lib/$(EFI_RELOC:.o=.c) $(recordmcoun
$(call cmd,force_checksrc)
$(call if_changed_rule,cc_o_c)
-$(obj)/%_efi.so: $(obj)/%.o $(obj)/efi_crt0.o $(obj)/efi_reloc.o
+$(obj)/%_efi.so: $(obj)/%.o $(obj)/efi_crt0.o $(obj)/efi_reloc.o $(obj)/efi_freestanding.o
$(call cmd,efi_ld)
# ACPI