On Wednesday, January 21st, 2026 at 6:11 PM, Mike Gilbert <[email protected]> 
wrote:

> On Wed, Jan 21, 2026 at 5:15 AM Michal Rostecki
> [email protected] wrote:
> 
> > Using the brace expression {ld.so,lld} in the find command results
> > in musl's lld being printed, but still returns an error code due to the
> > lack of glibc's ld.so. See the mentioned bug.
> > 
> > Fix that by using -name with -o, so the command fails only if neither
> > of the files are found.
> > 
> > Bug: https://bugs.gentoo.org/969092
> > Signed-off-by: Michal Rostecki [email protected]
> > ---
> > eclass/sysroot.eclass | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/eclass/sysroot.eclass b/eclass/sysroot.eclass
> > index f17d6bcec2b4..a06a0dae3ecf 100644
> > --- a/eclass/sysroot.eclass
> > +++ b/eclass/sysroot.eclass
> > @@ -83,7 +83,8 @@ sysroot_make_run_prefixed() {
> > if [[ ${QEMU_ARCH} == $(qemu_arch "${CBUILD}") ]]; then
> > # glibc: ld.so is a symlink, ldd is a binary.
> > # musl: ld.so doesn't exist, ldd is a symlink.
> > - local DLINKER=$(find "${MYEROOT}"/usr/bin/{ld.so,ldd} -type l -print 
> > -quit 2>/dev/null || die "failed to find dynamic linker")
> > + local DLINKER=$(find "${MYEROOT}"/usr/bin/ \( -name ld.so -o -name ldd \) 
> > \
> > + -type l -print -quit 2>/dev/null || die "failed to find dynamic linker")
> > 
> > # musl symlinks ldd to ld-musl.so to libc.so. We want the ld-musl.so
> > # path, not the libc.so path, so don't resolve the symlinks entirely.
> > --
> > 2.52.0
> 
> 
> I don't understand why we are using find here. I don't think we want
> to search recursively under ${MYROOT}/usr/bin.
> 
> I think it would make more sense to replace this with simple [[ -L ]]
> checks for each path.

Good call, will fix in v2.

Reply via email to