On 5/11/25 12:52, Heinrich Schuchardt wrote:
On 5/8/25 20:30, Adriano Cordova wrote:
Link .efi applications using libgcc

Signed-off-by: Adriano Cordova <adriano.cord...@canonical.com>
---

changes in v2:
     - Address the root of the problem. In v1 I was modifying
       printx in initrddump.efi not to generate __lshrdi3 instructions,
       but a better fix is to provide those instructions with libgcc

  scripts/Makefile.lib | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 83fd5ff6c31..3a86cf375c3 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -497,7 +497,7 @@ KBUILD_EFILDFLAGS = -nostdlib -zexecstack - znocombreloc -znorelro
  KBUILD_EFILDFLAGS += $(call ld-option,--no-warn-rwx-segments)
  quiet_cmd_efi_ld = LD      $@
  cmd_efi_ld = $(LD) $(KBUILD_EFILDFLAGS) -L $(srctree) -T $(EFI_LDS_PATH) \
-        -shared -Bsymbolic -s $^ -o $@
+        -shared -Bsymbolic -s $^ $(PLATFORM_LIBS) -o $@
  EFI_LDS_PATH = arch/$(ARCH)/lib/$(EFI_LDS)

Building with this series fails:

    sandbox:  +   sandbox_noinst
+ld.bfd: cannot find -lrt: No such file or directory
+ld.bfd: cannot find -lSDL2: No such file or directory
+make[3]: *** [scripts/Makefile.lib:512: lib/efi_loader/ helloworld_efi.so] Error 1
+make[2]: *** [scripts/Makefile.build:398: lib/efi_loader] Error 2
+make[1]: *** [Makefile:1919: lib] Error 2
+make: *** [Makefile:177: sub-make] Error 2

     0    0    1 /1              sandbox_noinst

See https://source.denx.de/u-boot/custodians/u-boot-efi/-/jobs/1131665/raw

Best regards

Heinrich

Using PLATFORM_LIBGCC instead of PLATFORM_LIBS resolves the problem.

PLATFORM_LIBGCC should match your intention to link in libgcc according to our prior communication. I will adjust the patch accordingly.

Best regards

Heinrich

Reply via email to