This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[RFC v2 13/20] RISC-V: Add path of library directories for the 32-bit
- From: Alistair Francis <alistair dot francis at wdc dot com>
- To: libc-alpha at sourceware dot org
- Cc: arnd at arndb dot de, adhemerval dot zanella at linaro dot org, fweimer at redhat dot com, palmer at sifive dot com, macro at wdc dot com, zongbox at gmail dot com, zong at andestech dot com, alistair dot francis at wdc dot com, alistair23 at gmail dot com
- Date: Mon, 24 Jun 2019 17:09:23 -0700
- Subject: [RFC v2 13/20] RISC-V: Add path of library directories for the 32-bit
- Ironport-sdr: cyA20KXNDuyt63cLkckl7j5ION9CbWr2oLA7zKtMhVs+T3fp+y8ba2jFVlaPG1ofyNQF0gvSV/ fKhupchJ7YsPpkDLm/81vIrxYYD+oLdYIIa594QeKhe/a974E7SE4jZtRsOzUrNux3447t2RgS bj4cak8E+3gMsdA5c0M3YVfTo7nIxlT7qAj1blm4W22edru9TmJT/cCIcdjkWkgSOJv3+angai MrNc8IDS9ISn5H3Gzalmjlts6MGiJQIcJ6b2ITu2e9scIT/n8lVMyleRNq61HZRtsQOGXYwu9q uMtlDNKe8rMkpaPIdgpR9cE5
- Ironport-sdr: OccCV4bG+muJgMP5K+5lpXq5BbqKL6GXYHkWAmZoLGL0UGDKTy6nz060OlOsXUzbD8dyVtHuN6 BmOFKPdqL9AIa64KAoKwiGpRLmycJi1trZcctkjp6wKumi8Ajo29hg8CGuXv1H6ONx0otmBRyW OCDuaRIoXrUSNEKB4Y9iL0GaXvaIdg3qcwet11K8G7x2v/c8jjB73LrV5wLioJJd1yWKl+exT/ D0lkV8rirW2KsVGTwS7UQHJFg6bivh4XniFTXQmbF1aNhGvlJM5dxW6Btj/ZdqDtg492SOhIDa 6q4=
- References: <cover.1561421042.git.alistair.francis@wdc.com>
From: Zong Li <zongbox@gmail.com>
For the recommand of 64 bit version, we add the libraries path of 32 bit
in this patch. This includes a fix to avoid an out of bound array check
when building with GCC 8.2.
2018-11-29 Zong Li <zong@andestech.com>
* sysdeps/unix/sysv/linux/riscv/dl-cache.h (add_system_dir): Add
libraries path for rv32.
[ Changes by AF:
- Fix bound array check when building with GCC 8.2
]
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
---
ChangeLog | 3 +++
sysdeps/unix/sysv/linux/riscv/dl-cache.h | 17 +++++++++++++++--
2 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 2a752ae444..73d07ab159 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -17,6 +17,9 @@
2018-06-20 Zong Li <zong@andestech.com>
* sysdeps/unix/sysv/linux/riscv/ldconfig.h (LD_SO_ABI): Support rv32.
+ * sysdeps/unix/sysv/linux/riscv/ldconfig.h (LD_SO_ABI): Support rv32.
+ * sysdeps/unix/sysv/linux/riscv/dl-cache.h (add_system_dir): Add
+ libraries path for rv32.
2019-06-20 Dmitry V. Levin <ldv@altlinux.org>
Florian Weimer <fweimer@redhat.com>
diff --git a/sysdeps/unix/sysv/linux/riscv/dl-cache.h b/sysdeps/unix/sysv/linux/riscv/dl-cache.h
index 2a15e28e3b..5943060536 100644
--- a/sysdeps/unix/sysv/linux/riscv/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/riscv/dl-cache.h
@@ -34,6 +34,8 @@
RISC-V, libraries can be found in paths ending in:
- /lib64/lp64d
- /lib64/lp64
+ - /lib32/ilp32d
+ - /lib32/ilp32
- /lib (only ld.so)
so this will add all of those paths.
@@ -49,9 +51,16 @@
do \
{ \
size_t len = strlen (dir); \
- char path[len + 9]; \
+ char path[len + 10]; \
memcpy (path, dir, len + 1); \
- if (len >= 12 && ! memcmp(path + len - 12, "/lib64/lp64d", 12)) \
+ if (len >= 13 && ! memcmp(path + len - 13, "/lib32/ilp32d", 13)) \
+ { \
+ len -= 9; \
+ path[len] = '\0'; \
+ } \
+ if (len >= 12 \
+ && (! memcmp(path + len - 12, "/lib32/ilp32", 12) \
+ || ! memcmp(path + len - 12, "/lib64/lp64d", 12))) \
{ \
len -= 8; \
path[len] = '\0'; \
@@ -64,6 +73,10 @@
add_dir (path); \
if (len >= 4 && ! memcmp(path + len - 4, "/lib", 4)) \
{ \
+ memcpy (path + len, "32/ilp32d", 10); \
+ add_dir (path); \
+ memcpy (path + len, "32/ilp32", 9); \
+ add_dir (path); \
memcpy (path + len, "64/lp64d", 9); \
add_dir (path); \
memcpy (path + len, "64/lp64", 8); \
--
2.22.0