Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Khem Raj <raj.khem@gmail.com>
To: Richard Purdie <richard.purdie@linuxfoundation.org>,
	openembedded-core@lists.openembedded.org
Subject: Re: [OE-core] [PATCH v3 05/13] tcf-agent: Fix ranlib call when using llvm-ranlib
Date: Thu, 29 May 2025 10:59:03 -0700	[thread overview]
Message-ID: <d8f36286-97a2-4189-82bd-79b66afa9c9e@gmail.com> (raw)
In-Reply-To: <a5225b45761850e1a99e7f3c069768f2449fa472.camel@linuxfoundation.org>



On 5/29/25 2:20 AM, Richard Purdie wrote:
> On Thu, 2025-05-22 at 20:52 -0700, Khem Raj via lists.openembedded.org wrote:
>> This ensures that binutils-ranlib or llvm-ranlib
>> behaves same as gcc-ranlib
>>
>> Signed-off-by: Khem Raj <raj.khem@gmail.com>
>> ---
>>   meta/recipes-devtools/tcf-agent/tcf-agent_git.bb | 5 +++++
>>   1 file changed, 5 insertions(+)
>>
>> diff --git a/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb b/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb
>> index 235936288ba792c86af4dd1899b2f6585328141f..41706f4b60f1f25233ff91c8f112b8122a5c6c30 100644
>> --- a/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb
>> +++ b/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb
>> @@ -51,6 +51,11 @@ 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 which expands $@ shell array,
>> +# but it will fail if RANLIB was set to <cross>-ranlib or
>> +# <cross>-llvm-ranlib has same behaviour
>> +RANLIB:append:toolchain-clang = " $@"
>> +
>>   do_install() {
>>   	oe_runmake install INSTALLROOT=${D}
>>   	install -d ${D}${sysconfdir}/init.d/
>>
> 
> The people on the patch review calls are struggling to understand the
> issue here. Could you explain this a bit more in the comment so we can
> understand it?
> 
> Does this imply there is a missing piece on the commandline in the
> makefiles (or whatever) of tcf-agent which should really be fixed
> instead?

I can explain it a bit more. tcf-agent calls RANLIB 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 it silenlty 
does nothing and exits with return code 0, however, calling 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.

tcf-agent seems to add $@ for solaris and osx, I guess someone saw the 
problem on default ranlib on these platforms but not on linux where 
gcc-ar is used commonly.

[1] 
https://gitlab.eclipse.org/eclipse/tcf/tcf.agent/-/blob/master/agent/Makefile?ref_type=heads#L53

> 
> Cheers,
> 
> Richard



  reply	other threads:[~2025-05-29 17:59 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-23  3:52 [PATCH v3 00/13] clang: Add clang C/C++ toolchain Khem Raj
2025-05-23  3:52 ` [PATCH v3 01/13] toolchain: Provide abstraction for choosing per-recipe toolchain Khem Raj
2025-05-29 14:10   ` [OE-core] " Richard Purdie
2025-05-29 23:44   ` Peter Kjellerstedt
2025-05-23  3:52 ` [PATCH v3 02/13] clang.bbclass: Specify ldso when using usermerge Khem Raj
2025-05-23  3:52 ` [PATCH v3 03/13] vte: Disable gi data generation when using clang on arm Khem Raj
2025-05-23  3:52 ` [PATCH v3 04/13] clang: Add compiler-rt to default deps when using clang compiler Khem Raj
2025-05-23  3:52 ` [PATCH v3 05/13] tcf-agent: Fix ranlib call when using llvm-ranlib Khem Raj
2025-05-29  9:20   ` [OE-core] " Richard Purdie
2025-05-29 17:59     ` Khem Raj [this message]
2025-05-29 20:15       ` Richard Purdie
2025-05-29 20:47         ` Khem Raj
2025-05-23  3:52 ` [PATCH v3 06/13] libjpeg-turbo: Fix build on mips/clang Khem Raj
2025-05-29  9:22   ` [OE-core] " Richard Purdie
2025-05-29 16:28     ` Khem Raj
2025-05-29 20:26       ` Richard Purdie
2025-05-29 20:48         ` Khem Raj
2025-05-23  3:52 ` [PATCH v3 07/13] pixman: Fix build with mips/clang Khem Raj
2025-05-29  9:23   ` [OE-core] " Richard Purdie
2025-05-29 20:05     ` Khem Raj
2025-05-29  9:24   ` Ross Burton
2025-05-29 20:43     ` Khem Raj
2025-05-23  3:52 ` [PATCH v3 08/13] vulkan-samples: Disable overriding-option as error Khem Raj
2025-05-23  3:52 ` [PATCH v3 09/13] bluez: Disable invalid-pp-token warning with clang Khem Raj
2025-05-23  3:52 ` [PATCH v3 10/13] systemtap: Pin to build with GCC Khem Raj
2025-05-23  3:52 ` [PATCH v3 11/13] seatd: Disable sign-compare warning as error on clang Khem Raj
2025-05-23  3:52 ` [PATCH v3 12/13] systemd-boot: Pin to use gcc toolchain on arm Khem Raj
2025-05-23  3:52 ` [PATCH v3 13/13] meta: Add TCOVERRIDE for toolchain selection at recipe scope Khem Raj

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=d8f36286-97a2-4189-82bd-79b66afa9c9e@gmail.com \
    --to=raj.khem@gmail.com \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=richard.purdie@linuxfoundation.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox