summaryrefslogtreecommitdiffstats
path: root/trunk/src/ld-libs.c
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/src/ld-libs.c')
-rw-r--r--trunk/src/ld-libs.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/trunk/src/ld-libs.c b/trunk/src/ld-libs.c
index d14b7b7..f36eee1 100644
--- a/trunk/src/ld-libs.c
+++ b/trunk/src/ld-libs.c
@@ -302,7 +302,7 @@ free_path (struct search_path *path)
}
void
-load_ld_so_conf (int use_64bit)
+load_ld_so_conf (int use_64bit, int use_mipsn32)
{
int fd;
FILE *conf;
@@ -319,6 +319,13 @@ load_ld_so_conf (int use_64bit)
add_dir (&ld_dirs, "/usr/lib64/tls", strlen ("/usr/lib64/tls"));
add_dir (&ld_dirs, "/usr/lib64", strlen ("/usr/lib64"));
}
+ else if (use_mipsn32)
+ {
+ add_dir (&ld_dirs, "/lib32/tls", strlen ("/lib32/tls"));
+ add_dir (&ld_dirs, "/lib32", strlen ("/lib32"));
+ add_dir (&ld_dirs, "/usr/lib32/tls", strlen ("/usr/lib32/tls"));
+ add_dir (&ld_dirs, "/usr/lib32", strlen ("/usr/lib32"));
+ }
else
{
add_dir (&ld_dirs, "/lib/tls", strlen ("/lib/tls"));
@@ -1235,7 +1242,8 @@ main(int argc, char **argv)
if (dso == NULL)
error (1, errno, "Could not open %s", argv[remaining]);
- load_ld_so_conf (gelf_getclass (dso->elf) == ELFCLASS64);
+ load_ld_so_conf (gelf_getclass (dso->elf) == ELFCLASS64,
+ ( dso->ehdr.e_machine == EM_MIPS) && ( dso->ehdr.e_flags & EF_MIPS_ABI2 ) );
if (multiple)
printf ("%s:\n", argv[remaining]);