All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mikko Rapeli <mikko.rapeli@linaro.org>
To: u-boot@lists.denx.de
Cc: Adriano Cordova <adrianox@gmail.com>, Fabio Estevam <festevam@gmail.com>
Subject: Re: [PATCH v2] Makefile scripts/Makefile.lib: fix *_efi.so dependency to PLATFORM_LIBGCC
Date: Thu, 17 Jul 2025 13:50:48 +0300	[thread overview]
Message-ID: <aHjViKMwnaCIAn3N@nuoska> (raw)
In-Reply-To: <20250711065149.350463-1-mikko.rapeli@linaro.org>

Hi,

Yocto side testing shows that this patch does not fix the race
and missing lib.a:

https://lists.openembedded.org/g/openembedded-core/message/220519

Builds failure logs:

https://autobuilder.yoctoproject.org/valkyrie/api/v2/logs/2984138/raw_inline

|   arm-poky-linux-gnueabi-gcc  --sysroot=/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-3774036/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/recipe-sysroot  -ffile-prefix-map=/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-3774036/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07=/usr/src/debug/u-boot/2025.07  -ffile-prefix-map=/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-3774036/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/build=/usr/src/debug/u-boot/2025.07  -ffile-prefix-map=/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-3774036/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/recipe-sysroot=  -ffile-prefix-map=/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-3774036/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/recipe-sysroot-native=  -Wp,-MD,lib/efi_loader/.testapp.o.d -nostdinc -isystem /srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-3774036/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/recipe-sysroot-native/usr/bin/arm-poky-linux-gnueabi/../../lib/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/15.1.0/include -Iinclude  -I/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-3774036/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07/include     -I/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-3774036/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07/arch/arm/include -include /srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-3774036/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07/include/linux/kconfig.h -I/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-3774036/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07/dts/upstream/include   -I/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-3774036/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07/lib/efi_loader -Ilib/efi_loader -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -std=gnu11 -fshort-wchar -fno-strict-aliasing -fno-PIE -Os -fno-stack-protector -fno-delete-null-pointer-checks -Wno-pointer-sign -Wno-stringop-truncation -Wno-zero-length-bounds -Wno-array-bounds -Wno-stringop-overflow -Wno-maybe-uninitialized -fmacro-prefix-map=/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-3774036/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07/= -gdwarf-4 -fstack-usage -Wno-format-nonliteral -Wno-address-of-packed-member -Wno-unused-but-set-variable -Werror=date-time -Wno-packed-not-aligned -D__ARM__ -Wa,-mimplicit-it=always -mthumb -mthumb-interwork -mabi=aapcs-linux -mword-relocations -mno-unaligned-access -fno-common -msoft-float -mgeneral-regs-only -pipe -march=armv7-a -D__LINUX_ARM_ARCH__=7 -mtune=generic-armv7-a  -I/srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-3774036/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07/arch/arm/mach-omap2/include -fpic -fshort-wchar -Os -ffreestanding    -DKBUILD_BASENAME='"testapp"'  -DKBUILD_MODNAME='"testapp"' -c -o lib/efi_loader/testapp.o /srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-3774036/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07/lib/efi_loader/testapp.c
|    rm -f lib/efi_loader/built-in.o; arm-poky-linux-gnueabi-ar cDPrsT lib/efi_loader/built-in.o lib/efi_loader/efi_bootmgr.o lib/efi_loader/efi_bootbin.o lib/efi_loader/efi_boottime.o lib/efi_loader/efi_helper.o lib/efi_loader/efi_console.o lib/efi_loader/efi_device_path.o lib/efi_loader/efi_device_path_to_text.o lib/efi_loader/efi_device_path_utilities.o lib/efi_loader/efi_dt_fixup.o lib/efi_loader/efi_fdt.o lib/efi_loader/efi_file.o lib/efi_loader/efi_hii.o lib/efi_loader/efi_hii_config.o lib/efi_loader/efi_image_loader.o lib/efi_loader/efi_load_options.o lib/efi_loader/efi_memory.o lib/efi_loader/efi_root_node.o lib/efi_loader/efi_runtime.o lib/efi_loader/efi_setup.o lib/efi_loader/efi_string.o lib/efi_loader/efi_unicode_collation.o lib/efi_loader/efi_var_common.o lib/efi_loader/efi_var_mem.o lib/efi_loader/efi_variable.o lib/efi_loader/efi_var_file.o lib/efi_loader/efi_watchdog.o lib/efi_loader/efi_disk.o lib/efi_loader/efi_net.o lib/efi_loader/efi_smbios.o lib/efi_loader/efi_load_initrd.o lib/efi_loader/efi_conformance.o
|   arm-poky-linux-gnueabi-ld.bfd -nostdlib -zexecstack -znocombreloc -znorelro --no-warn-rwx-segments -L /srv/pokybuild/yocto-worker/oe-selftest-fedora/build/build-st-3774036/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07 -T arch/arm/lib/elf_arm_efi.lds -shared -Bsymbolic -s lib/efi_loader/helloworld.o lib/efi_loader/efi_crt0.o lib/efi_loader/efi_reloc.o lib/efi_loader/efi_freestanding.o arch/arm/lib/lib.a -o lib/efi_loader/helloworld_efi.so
| arm-poky-linux-gnueabi-ld.bfd: cannot find arch/arm/lib/lib.a: No such file or directory
| make[3]: *** [scripts/Makefile.lib:512: lib/efi_loader/helloworld_efi.so] Error 1

https://autobuilder.yoctoproject.org/valkyrie/api/v2/logs/2984135/raw_inline

| make -f /srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-3683036/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07/scripts/Makefile.build obj=lib/efi_loader
|   arm-poky-linux-gnueabi-ld.bfd -nostdlib -zexecstack -znocombreloc -znorelro --no-warn-rwx-segments -L /srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-3683036/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07 -T arch/arm/lib/elf_arm_efi.lds -shared -Bsymbolic -s lib/efi_loader/helloworld.o lib/efi_loader/efi_crt0.o lib/efi_loader/efi_reloc.o lib/efi_loader/efi_freestanding.o arch/arm/lib/lib.a -o lib/efi_loader/helloworld_efi.so
| arm-poky-linux-gnueabi-ld.bfd: cannot find arch/arm/lib/lib.a: No such file or directory
| make[3]: *** [scripts/Makefile.lib:512: lib/efi_loader/helloworld_efi.so] Error 1
| make[2]: *** [/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-3683036/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07/scripts/Makefile.build:398: lib/efi_loader] Error 2
| make[1]: *** [/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-3683036/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07/Makefile:1920: lib] Error 2
| make[1]: Leaving directory '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-3683036/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/build'
| make: Leaving directory '/srv/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-3683036/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07'
| make: *** [Makefile:177: sub-make] Error 2

https://autobuilder.yoctoproject.org/valkyrie/api/v2/logs/2984171/raw_inline

|   arm-poky-linux-gnueabi-gcc  --sysroot=/srv/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1802970/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/recipe-sysroot  -ffile-prefix-map=/srv/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1802970/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07=/usr/src/debug/u-boot/2025.07  -ffile-prefix-map=/srv/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1802970/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/build=/usr/src/debug/u-boot/2025.07  -ffile-prefix-map=/srv/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1802970/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/recipe-sysroot=  -ffile-prefix-map=/srv/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1802970/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/recipe-sysroot-native=  -Wp,-MD,lib/efi_loader/.testapp.o.d -nostdinc -isystem /srv/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1802970/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/recipe-sysroot-native/usr/bin/arm-poky-linux-gnueabi/../../lib/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/15.1.0/include -Iinclude  -I/srv/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1802970/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07/include     -I/srv/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1802970/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07/arch/arm/include -include /srv/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1802970/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07/include/linux/kconfig.h -I/srv/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1802970/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07/dts/upstream/include   -I/srv/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1802970/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07/lib/efi_loader -Ilib/efi_loader -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -std=gnu11 -fshort-wchar -fno-strict-aliasing -fno-PIE -Os -fno-stack-protector -fno-delete-null-pointer-checks -Wno-pointer-sign -Wno-stringop-truncation -Wno-zero-length-bounds -Wno-array-bounds -Wno-stringop-overflow -Wno-maybe-uninitialized -fmacro-prefix-map=/srv/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1802970/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07/= -gdwarf-4 -fstack-usage -Wno-format-nonliteral -Wno-address-of-packed-member -Wno-unused-but-set-variable -Werror=date-time -Wno-packed-not-aligned -D__ARM__ -Wa,-mimplicit-it=always -mthumb -mthumb-interwork -mabi=aapcs-linux -mword-relocations -mno-unaligned-access -fno-common -msoft-float -mgeneral-regs-only -pipe -march=armv7-a -D__LINUX_ARM_ARCH__=7 -mtune=generic-armv7-a  -I/srv/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1802970/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07/arch/arm/mach-omap2/include -fpic -fshort-wchar -Os -ffreestanding    -DKBUILD_BASENAME='"testapp"'  -DKBUILD_MODNAME='"testapp"' -c -o lib/efi_loader/testapp.o /srv/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1802970/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07/lib/efi_loader/testapp.c
|    rm -f lib/efi_loader/built-in.o; arm-poky-linux-gnueabi-ar cDPrsT lib/efi_loader/built-in.o lib/efi_loader/efi_bootmgr.o lib/efi_loader/efi_bootbin.o lib/efi_loader/efi_boottime.o lib/efi_loader/efi_helper.o lib/efi_loader/efi_console.o lib/efi_loader/efi_device_path.o lib/efi_loader/efi_device_path_to_text.o lib/efi_loader/efi_device_path_utilities.o lib/efi_loader/efi_dt_fixup.o lib/efi_loader/efi_fdt.o lib/efi_loader/efi_file.o lib/efi_loader/efi_hii.o lib/efi_loader/efi_hii_config.o lib/efi_loader/efi_image_loader.o lib/efi_loader/efi_load_options.o lib/efi_loader/efi_memory.o lib/efi_loader/efi_root_node.o lib/efi_loader/efi_runtime.o lib/efi_loader/efi_setup.o lib/efi_loader/efi_string.o lib/efi_loader/efi_unicode_collation.o lib/efi_loader/efi_var_common.o lib/efi_loader/efi_var_mem.o lib/efi_loader/efi_variable.o lib/efi_loader/efi_var_file.o lib/efi_loader/efi_watchdog.o lib/efi_loader/efi_disk.o lib/efi_loader/efi_net.o lib/efi_loader/efi_smbios.o lib/efi_loader/efi_load_initrd.o lib/efi_loader/efi_conformance.o
|   arm-poky-linux-gnueabi-ld.bfd -nostdlib -zexecstack -znocombreloc -znorelro --no-warn-rwx-segments -L /srv/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1802970/tmp/work/qemuarm-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07 -T arch/arm/lib/elf_arm_efi.lds -shared -Bsymbolic -s lib/efi_loader/helloworld.o lib/efi_loader/efi_crt0.o lib/efi_loader/efi_reloc.o lib/efi_loader/efi_freestanding.o arch/arm/lib/lib.a -o lib/efi_loader/helloworld_efi.so
| arm-poky-linux-gnueabi-ld.bfd: cannot find arch/arm/lib/lib.a: No such file or directory
| make[3]: *** [scripts/Makefile.lib:512: lib/efi_loader/helloworld_efi.so] Error 1

In all cases, lib/efi_loader/helloworld_efi.so is getting linked but lib.a was
not built before it. u-boot config is "am57xx_evm_defconfig".

Some other dependencies are not correct then.

Cheers,

-Mikko

On Fri, Jul 11, 2025 at 09:51:49AM +0300, Mikko Rapeli wrote:
> When PLATFORM_LIBGCC was added to linker command it was not
> added to the dependency of the .so and other rules. Thus a build can
> try to link *_efi.so files before lib.a from PLATFORM_LIBGCC is available.
> This was seen in yocto autobuilder builds with u-boot 2025.07
> update, see https://lists.openembedded.org/g/openembedded-core/message/220004
> 
> https://autobuilder.yoctoproject.org/valkyrie/api/v2/logs/2914600/raw_inline
> 
> |    rm -f lib/efi_loader/built-in.o; arm-poky-linux-gnueabi-ar cDPrsT lib/efi_loader/built-in.o lib/efi_loader/efi_bootmgr.o lib/efi_loader/efi_bootbin.o lib/efi_loader/efi_boottime.o lib/efi_loader/efi_helper.o lib/efi_loader/efi_console.o lib/efi_loader/efi_device_path.o lib/efi_loader/efi_device_path_to_text.o lib/efi_loader/efi_device_path_utilities.o lib/efi_loader/efi_dt_fixup.o lib/efi_loader/efi_fdt.o lib/efi_loader/efi_file.o lib/efi_loader/efi_hii.o lib/efi_loader/efi_hii_config.o lib/efi_loader/efi_image_loader.o lib/efi_loader/efi_load_options.o lib/efi_loader/efi_memory.o lib/efi_loader/efi_root_node.o lib/efi_loader/efi_runtime.o lib/efi_loader/efi_setup.o lib/efi_loader/efi_string.o lib/efi_loader/efi_unicode_collation.o lib/efi_loader/efi_var_common.o lib/efi_loader/efi_var_mem.o lib/efi_loader/efi_variable.o lib/efi_loader/efi_var_file.o lib/efi_loader/efi_watchdog.o lib/efi_loader/efi_disk.o lib/efi_loader/efi_net.o lib/efi_loader/efi_smbios.o lib/efi_loader/efi_load_initrd.o lib/efi_loader/efi_conformance.o
> |   arm-poky-linux-gnueabi-ld.bfd -nostdlib -zexecstack -znocombreloc -znorelro --no-warn-rwx-segments -L /srv/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-3119200/tmp/work/beaglebone_yocto-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07 -T arch/arm/lib/elf_arm_efi.lds -shared -Bsymbolic -s lib/efi_loader/helloworld.o lib/efi_loader/efi_crt0.o lib/efi_loader/efi_reloc.o lib/efi_loader/efi_freestanding.o arch/arm/lib/lib.a -o lib/efi_loader/helloworld_efi.so
> | arm-poky-linux-gnueabi-ld.bfd: cannot find arch/arm/lib/lib.a: No such file or directory
> | make[3]: *** [scripts/Makefile.lib:512: lib/efi_loader/helloworld_efi.so] Error 1
> 
> The issue is hard to reproduce but this change can artificially trigger it:
> 
>   --- a/scripts/Makefile.build
>   +++ b/scripts/Makefile.build
> @@ -353,7 +353,7 @@ $(modorder-target): $(subdir-ym) FORCE
>  #
>  ifdef lib-target
>  quiet_cmd_link_l_target = AR      $@
> -cmd_link_l_target = rm -f $@; $(AR) cDPrsT$(KBUILD_ARFLAGS) $@ $(lib-y)
> +cmd_link_l_target = rm -f $@ && echo "HACK, delaying build!" && sleep 60 && $(AR) cDPrsT$(KBUILD_ARFLAGS) $@ $(lib-y)
> 
>  $(lib-target): $(lib-y) FORCE
>         $(call if_changed,link_l_target)
> 
> Then run a rebuild with:
> 
> $  rm -f $( find build/ -name lib.a -or -name helloworld_efi.so ) && \
>    make
> ...
>   arm-poky-linux-gnueabi-ld.bfd -nostdlib -zexecstack -znocombreloc -znorelro --no-warn-rwx-segments -L /home/mcfrisk/src/base/repo/poky/build_bea
> glebone/tmp/work/beaglebone_yocto-poky-linux-gnueabi/u-boot/2025.07/sources/u-boot-2025.07 -T arch/arm/lib/elf_arm_efi.lds -shared -Bsymbolic -s lib/efi_loader/helloworld.o lib/efi_loader/efi_crt0.o lib/efi_loader/efi_reloc.o lib/efi_loader/efi_freestanding.o arch/arm/lib/lib.a -o lib/efi_loader/helloworld_efi.so
> arm-poky-linux-gnueabi-ld.bfd: cannot find arch/arm/lib/lib.a: No such file or directory
> make[3]: *** [scripts/Makefile.lib:512: lib/efi_loader/helloworld_efi.so] Error 1
> 
> Fix by introducing PLATFORM_LIBGCC_LIBA variable with only lib.a
> filename which is then used to add the dependency in rules which use
> PLATFORM_LIBGCC. This should not impact builds which don't set
> PLATFORM_LIBGCC_LIBA and PLATFORM_LIBGCC usage stays as is.
> 
> Fixes: 43d43241d1c9 ("scripts/Makefile.lib: add PLATFORM_LIBGCC to efi linking")
> 
> Cc: Adriano Cordova <adrianox@gmail.com>
> Cc: Fabio Estevam <festevam@gmail.com>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
> ---
>  Makefile                     | 3 ++-
>  examples/standalone/Makefile | 2 +-
>  scripts/Makefile.lib         | 2 +-
>  scripts/Makefile.xpl         | 3 ++-
>  4 files changed, 6 insertions(+), 4 deletions(-)
> 
> v2: introduced PLATFORM_LIBGCC_LIBA variable with just lib.a filename,
>     PLATFORM_LIBGCC can have other flags too
> 
> v1: https://lists.denx.de/pipermail/u-boot/2025-July/593982.html
> 
> diff --git a/Makefile b/Makefile
> index 93e9f4018423..649b16643eea 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1072,7 +1072,8 @@ u-boot-main := $(libs-y)
>  
>  # Add GCC lib
>  ifeq ($(CONFIG_USE_PRIVATE_LIBGCC),y)
> -PLATFORM_LIBGCC = arch/$(ARCH)/lib/lib.a
> +PLATFORM_LIBGCC_LIBA = arch/$(ARCH)/lib/lib.a
> +PLATFORM_LIBGCC = $(PLATFORM_LIBGCC_LIBA)
>  else
>  ifndef CONFIG_CC_IS_CLANG
>  PLATFORM_LIBGCC := -L $(shell dirname `$(CC) $(c_flags) -print-libgcc-file-name`) -lgcc
> diff --git a/examples/standalone/Makefile b/examples/standalone/Makefile
> index 9b57f1c0c66c..aa9e3121cf9a 100644
> --- a/examples/standalone/Makefile
> +++ b/examples/standalone/Makefile
> @@ -64,7 +64,7 @@ quiet_cmd_link_elf = LD      $@
>        cmd_link_elf = $(LD) $(KBUILD_LDFLAGS) $(LDFLAGS_STANDALONE) -g  \
>  		     -o $@ -e $(SYM_PREFIX)$(@F) $< $(LIB) $(PLATFORM_LIBGCC)
>  
> -$(ELF): $(obj)/%: $(obj)/%.o $(LIB) FORCE
> +$(ELF): $(obj)/%: $(obj)/%.o $(LIB) $(PLATFORM_LIBGCC_LIBA) FORCE
>  	$(call if_changed,link_elf)
>  
>  $(obj)/%.srec: OBJCOPYFLAGS += -O srec
> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
> index 5db2fbc418a1..24bff63d68e7 100644
> --- a/scripts/Makefile.lib
> +++ b/scripts/Makefile.lib
> @@ -533,7 +533,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_freestanding.o
> +$(obj)/%_efi.so: $(PLATFORM_LIBGCC_LIBA) $(obj)/%.o $(obj)/efi_crt0.o $(obj)/efi_reloc.o $(obj)/efi_freestanding.o
>  	$(call cmd,efi_ld)
>  
>  targets += $(obj)/efi_crt0.o $(obj)/efi_reloc.o $(obj)/efi_freestanding.o
> diff --git a/scripts/Makefile.xpl b/scripts/Makefile.xpl
> index 03a2f151d916..f0fc7ae923d8 100644
> --- a/scripts/Makefile.xpl
> +++ b/scripts/Makefile.xpl
> @@ -139,7 +139,8 @@ libs-y := $(patsubst %/, %/built-in.a, $(libs-y))
>  
>  # Add GCC lib
>  ifeq ($(CONFIG_USE_PRIVATE_LIBGCC),y)
> -PLATFORM_LIBGCC = arch/$(ARCH)/lib/lib.a
> +PLATFORM_LIBGCC_LIBA = arch/$(ARCH)/lib/lib.a
> +PLATFORM_LIBGCC = $(PLATFORM_LIBGCC_LIBA)
>  PLATFORM_LIBS := $(filter-out %/lib.a, $(filter-out -lgcc, $(PLATFORM_LIBS))) $(PLATFORM_LIBGCC)
>  endif
>  
> -- 
> 2.43.0
> 

      reply	other threads:[~2025-07-17 10:50 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-11  6:51 [PATCH v2] Makefile scripts/Makefile.lib: fix *_efi.so dependency to PLATFORM_LIBGCC Mikko Rapeli
2025-07-17 10:50 ` Mikko Rapeli [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aHjViKMwnaCIAn3N@nuoska \
    --to=mikko.rapeli@linaro.org \
    --cc=adrianox@gmail.com \
    --cc=festevam@gmail.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.