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.
