From e065efc71d5f0c6cfd9a666c019db84b12f9b16d Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Tue, 3 Jun 2025 09:11:35 -0700 Subject: [PATCH] tcf-agent: Add $@ to RANLIB tcf-agent calls RANLIB ( if defined ) after calling AR to create the archive [1], when RANLIB is set to gcc-ranlib this goes unnoticed, since calling gcc-ranlib without any arguments silenlty does nothing and exits with return code 0, however, calling binutils ranlib or llvm-ranlib does demand library name as commandline option and since it is not there it exits with code 1 aarch64-poky-linux-musl-llvm-ranlib OVERVIEW: LLVM ranlib Generate an index for archives USAGE: aarch64-poky-linux-musl-llvm-ranlib archive... OPTIONS: -h --help - Display available options -V --version - Display the version of this program -D - Use zero for timestamps and uids/gids (default) -U - Use actual timestamps and uids/gids -X{32|64|32_64|any} - Specify which archive symbol tables should be generated if they do not already exist (AIX OS only) aarch64-poky-linux-musl-llvm-ranlib: error: an archive name must be specified make: *** [Makefile:53: obj/GNU/Linux/a64/Debug/libtcf.a] Error 1 When we add $@, to RANLIB then it becomes the make variable, $@ - An automatic Makefile variable that expands to the target name (the file being built) so the makefile target now rightly adds the .a filename to RANLIB call. Sent a patch upstream to add RANLIB for linux [2] [1] https://gitlab.eclipse.org/eclipse/tcf/tcf.agent/-/blob/master/agent/Makefile?ref_type=heads#L53 [2] https://gitlab.eclipse.org/eclipse/tcf/tcf.agent/-/merge_requests/7 (From OE-Core rev: ee2df4554804cc08906cf7b5c734b234c7913c5f) Signed-off-by: Khem Raj Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie --- meta/recipes-devtools/tcf-agent/tcf-agent_1.8.0.bb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/meta/recipes-devtools/tcf-agent/tcf-agent_1.8.0.bb b/meta/recipes-devtools/tcf-agent/tcf-agent_1.8.0.bb index 1639ae84e9..f008c0c6de 100644 --- a/meta/recipes-devtools/tcf-agent/tcf-agent_1.8.0.bb +++ b/meta/recipes-devtools/tcf-agent/tcf-agent_1.8.0.bb @@ -49,6 +49,12 @@ CFLAGS:append:riscv64 = " ${LCL_STOP_SERVICES}" CFLAGS:append:riscv32 = " ${LCL_STOP_SERVICES}" CFLAGS:append:loongarch64 = " ${LCL_STOP_SERVICES}" +# This works with gcc-ranlib wrapper only because it exists without error if nothing +# is passed as argument but binutils ranlib and llvm ranlib do not and expect an input +# passing $@ ensures that Makefile default target which is the archive name in tcf makefiles +# is passed to RANLIB, ensures that whichever ranlib is used, the behavior is identical +RANLIB:append = " $@" + do_install() { oe_runmake install INSTALLROOT=${D} install -d ${D}${sysconfdir}/init.d/