From: David Gibson <david@gibson.dropbear.id.au>
To: Lukasz Gut <lgut@lgut.eu>
Cc: sbrivio@redhat.com, sevinj.aghayeva@gmail.com, passt-dev@passt.top
Subject: Re: [PATCH v2 1/4] mbuto: Pick a src when ld reported as link by ldd
Date: Mon, 23 Sep 2024 13:51:42 +1000 [thread overview]
Message-ID: <ZvDlzqAL8uGHck-3@zatzit.fritz.box> (raw)
In-Reply-To: <20240918101532.85299-3-lgut@lgut.eu>
[-- Attachment #1: Type: text/plain, Size: 1855 bytes --]
On Wed, Sep 18, 2024 at 12:12:56PM +0200, Lukasz Gut wrote:
> On Arch Linux ldd /bin/sh reports:
> /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2
> Use a regex to pick only right side and use it for path processing.
I think this approach is overly specific. The broader point here is
that ldd can list libraries (including the dynamic linker) as either a
link, or directly as a file. In the cases Stefano wrote for, it was
always a single file for the dynamic linker and a link for everything
else. For Arch it seems to be a link for everything, but both of
those might not be true everywhere.
It would make more sense to alter the loop above which processes all
libraries to handle both the link and no-link cases, and remove the
special case handling of ld.so.
> Signed-off-by: Lukasz Gut <lgut@lgut.eu>
> ---
> mbuto | 11 ++++++++---
> 1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/mbuto b/mbuto
> index b80ea78..1c3b347 100755
> --- a/mbuto
> +++ b/mbuto
> @@ -704,9 +704,14 @@ __libs_copy() {
> for __l in $("${LDD}" "${1}" 2>/dev/null); do
> case ${__l} in "/"*" "*) __ld_so="${__l% *}" ;; *) ;; esac
> done
> - if [ -n "${__ld_so}" ]; then
> - libs_copy_ld_so "${__ld_so}"
> - libs_path_add "${__ld_so##${wd}}"
> + # On Arch Linux ld is reported by ldd in form:
> + # /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2
> + # Make sure to take only right part in this case.
> + __ld_path="${__ld_so##*=> }"
> +
> + if [ -n "${__ld_path}" ]; then
> + libs_copy_ld_so "${__ld_path}"
> + libs_path_add "${__ld_path##${wd}}"
> fi
> }
>
--
David Gibson (he or they) | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you, not the other way
| around.
http://www.ozlabs.org/~dgibson
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2024-09-23 3:54 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-18 10:12 [PATCH v2 0/4] mbuto: Make it work on Arch Linux Lukasz Gut
2024-09-18 10:12 ` [PATCH v2 1/4] mbuto: Pick a src when ld reported as link by ldd Lukasz Gut
2024-09-23 3:51 ` David Gibson [this message]
2024-09-23 10:09 ` Lukasz Gut
2024-09-18 10:12 ` [PATCH v2 2/4] mbuto: Use realpath to copy ld Lukasz Gut
2024-09-23 3:53 ` David Gibson
2024-09-23 10:09 ` Lukasz Gut
2024-09-18 10:12 ` [PATCH v2 3/4] mbuto: Don't try to add ld when adding libraries Lukasz Gut
2024-09-18 10:12 ` [PATCH v2 4/4] mbuto: Automatically add links related to linker Lukasz Gut
2024-09-23 3:54 ` David Gibson
2024-09-23 10:09 ` Lukasz Gut
2024-09-23 3:45 ` [PATCH v2 0/4] mbuto: Make it work on Arch Linux David Gibson
2024-09-23 10:09 ` Lukasz Gut
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=ZvDlzqAL8uGHck-3@zatzit.fritz.box \
--to=david@gibson.dropbear.id.au \
--cc=lgut@lgut.eu \
--cc=passt-dev@passt.top \
--cc=sbrivio@redhat.com \
--cc=sevinj.aghayeva@gmail.com \
/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.
Code repositories for project(s) associated with this public inbox
https://passt.top/passt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for IMAP folder(s).