[U-Boot] [PATCH v2 1/1] efi_loader: fix build error for freestanding.o

Since commit f51a226436a87 ("efi_loader: provide freestanding library") in parallel builds errors
lib/efi_selftest/../efi_loader/efi_freestanding.o: file not recognized: File truncated
occur. Obviously make cannot correctly sequence parallel builds with a dependency like ../efi_loader/efi_freestanding.o.
Fixes: f51a226436a87 ("efi_loader: provide freestanding library") Signed-off-by: Heinrich Schuchardt xypron.glpk@gmx.de --- v2 use #include instead of symbolic link as suggested by Andy --- lib/efi_selftest/efi_freestanding.c | 11 +++++++++++ scripts/Makefile.lib | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 lib/efi_selftest/efi_freestanding.c
diff --git a/lib/efi_selftest/efi_freestanding.c b/lib/efi_selftest/efi_freestanding.c new file mode 100644 index 00000000000..4b6c27e99fb --- /dev/null +++ b/lib/efi_selftest/efi_freestanding.c @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Library for freestanding binary + * + * Copyright 2019, Heinrich Schuchardt xypron.glpk@gmx.de + * + * GCC requires that freestanding programs provide memcpy(), memmove(), + * memset(), and memcmp(). + */ + +#include "../efi_loader/efi_freestanding.c" diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index ec5c41ec561..70de9bb13a6 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -390,7 +390,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_loader/efi_freestanding.o +$(obj)/%_efi.so: $(obj)/%.o $(obj)/efi_crt0.o $(obj)/efi_reloc.o $(obj)/efi_freestanding.o $(call cmd,efi_ld)
# ACPI

On Thu, Mar 14, 2019 at 09:13:34PM +0100, Heinrich Schuchardt wrote:
Since commit f51a226436a87 ("efi_loader: provide freestanding library") in parallel builds errors
lib/efi_selftest/../efi_loader/efi_freestanding.o: file not recognized: File truncated
occur. Obviously make cannot correctly sequence parallel builds with a dependency like ../efi_loader/efi_freestanding.o.
Fixes: f51a226436a87 ("efi_loader: provide freestanding library") Signed-off-by: Heinrich Schuchardt xypron.glpk@gmx.de
Looking around, using #include is the way we've solved this kind of problem elsewhere too, so: Reviewed-by: Tom Rini trini@konsulko.com
And please put together a PR soon, I've hit this problem a few times locally today :) Thanks!

On Thu, Mar 14, 2019 at 09:13:34PM +0100, Heinrich Schuchardt wrote:
Since commit f51a226436a87 ("efi_loader: provide freestanding library") in parallel builds errors
lib/efi_selftest/../efi_loader/efi_freestanding.o: file not recognized: File truncated
occur. Obviously make cannot correctly sequence parallel builds with a dependency like ../efi_loader/efi_freestanding.o.
Reviewed-by: Andy Shevchenko andriy.shevchenko@linux.intel.com
Fixes: f51a226436a87 ("efi_loader: provide freestanding library") Signed-off-by: Heinrich Schuchardt xypron.glpk@gmx.de
v2 use #include instead of symbolic link as suggested by Andy
lib/efi_selftest/efi_freestanding.c | 11 +++++++++++ scripts/Makefile.lib | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 lib/efi_selftest/efi_freestanding.c
diff --git a/lib/efi_selftest/efi_freestanding.c b/lib/efi_selftest/efi_freestanding.c new file mode 100644 index 00000000000..4b6c27e99fb --- /dev/null +++ b/lib/efi_selftest/efi_freestanding.c @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: GPL-2.0+ +/*
- Library for freestanding binary
- Copyright 2019, Heinrich Schuchardt xypron.glpk@gmx.de
- GCC requires that freestanding programs provide memcpy(), memmove(),
- memset(), and memcmp().
- */
+#include "../efi_loader/efi_freestanding.c" diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index ec5c41ec561..70de9bb13a6 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -390,7 +390,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_loader/efi_freestanding.o +$(obj)/%_efi.so: $(obj)/%.o $(obj)/efi_crt0.o $(obj)/efi_reloc.o $(obj)/efi_freestanding.o $(call cmd,efi_ld)
# ACPI
2.20.1
participants (3)
-
Andy Shevchenko
-
Heinrich Schuchardt
-
Tom Rini