[PATCH v3 17/19] RISC-V: Add rv32 path to RTLDLIST in ldd

Alistair Francis alistair23@gmail.com
Mon Aug 10 20:04:47 GMT 2020


On Tue, Jul 14, 2020 at 5:33 PM Maciej W. Rozycki via Libc-alpha
<libc-alpha@sourceware.org> wrote:
>
> On Sun, 12 Jul 2020, Alistair Francis via Libc-alpha wrote:
>
> > diff --git a/sysdeps/unix/sysv/linux/riscv/ldd-rewrite.sed b/sysdeps/unix/sysv/linux/riscv/ldd-rewrite.sed
> > index 377a9c6ef4..bc0c4f51a1 100644
> > --- a/sysdeps/unix/sysv/linux/riscv/ldd-rewrite.sed
> > +++ b/sysdeps/unix/sysv/linux/riscv/ldd-rewrite.sed
> > @@ -1 +1 @@
> > -s_^\(RTLDLIST=\)\(.*lib/\)\(ld-linux\)-\(riscv64\)-\(lp64\)\(d*\)\(\.so\.[0-9.]*\)_\1"\2\3-\4-\5\7 \2\3-\4-\5d\7"_
> > +s_^\(RTLDLIST=\)\(.*lib\)\(/[^/]*\)\(64\|32\)\(-.*\)\(lp\)\(64\|32\)\(d*\)\(\.so\.[0-9.]*\)[         ]*$_\1"\2\364-\664\9 \2\364-\664\8\9 \2\332-i\632\9 \2\332-i\632\8\9"_
>
>  This doesn't seem right to me.  Currently the list produced is as
> follows:
>
> RTLDLIST="/lib/ld-linux-riscv64-lp64.so.1 /lib/ld-linux-riscv64-lp64d.so.1"
>
> regardless of whether the ABI configured for has been lp64 or lp64d.  With
> this change in place the list becomes ABI specific and is:
>
> RTLDLIST="/lib/ld-linux-riscv64-lp64.so.1 /lib/ld-linux-riscv64-lp64.so.1 /lib/ld-linux-riscv32-ilp32.so.1 /lib/ld-linux-riscv32-ilp32.so.1"
>
> -- for the ilp32 or lp64 ABIs, and:
>
> RTLDLIST="/lib/ld-linux-riscv64-lp64.so.1 /lib/ld-linux-riscv64-lp64d.so.1 /lib/ld-linux-riscv32-ilp32.so.1 /lib/ld-linux-riscv32-ilp32d.so.1"
>
> -- for the ilp32d or lp64d ABIs.  Please look into it.

Fixed!

When targeting riscv32-ilp32:
I get:
RTLDLIST="/lib/ld-linux-riscv64-lp64.so.1
/lib/ld-linux-riscv64-lp64d.so.1 /lib/ld-linux-riscv32-ilp32.so.1
/lib/ld-linux-riscv32-ilp32d.so.1"

When targeting riscv32-ilp32d:
I get:
RTLDLIST="/lib/ld-linux-riscv64-lp64.so.1
/lib/ld-linux-riscv64-lp64d.so.1 /lib/ld-linux-riscv32-ilp32.so.1
/lib/ld-linux-riscv32-ilp32d.so.1"

When targeting riscv64-lp32d:
I get:
RTLDLIST="/lib/ld-linux-riscv64-lp64.so.1
/lib/ld-linux-riscv64-lp64d.so.1 /lib/ld-linux-riscv32-ilp32.so.1
/lib/ld-linux-riscv32-ilp32d.so.1"

Tested with this command:

LC_ALL=C sed -e 's%@RTLD@%/lib/ld-linux-riscv32-ilp32.so.1%g' -e
's%@VERSION@%2.32.9000%g' -e 's|@PKGVERSION@|(GNU libc) |g' -e
's|@REPORT_BUGS_TO@|<https://www.gnu.org/software/libc/bugs.html>|g'
-e 's%@BASH@%/usr/bin/bash%g' -e
's%@TEXTDOMAINDIR@%/usr/share/locale%g' < ldd.bash.in | LC_ALL=C sed
-f ../sysdeps/unix/sysv/linux/riscv/ldd-rewrite.sed | grep RTLDLIST=

Alistair

>
>   Maciej


More information about the Libc-alpha mailing list