projects
/
musl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix breakage in ldd (failure to print library load address)
[musl]
/
src
/
ldso
/
dynlink.c
diff --git
a/src/ldso/dynlink.c
b/src/ldso/dynlink.c
index
c436b88
..
935367e
100644
(file)
--- a/
src/ldso/dynlink.c
+++ b/
src/ldso/dynlink.c
@@
-433,7
+433,7
@@
static struct dso *load_library(const char *name)
{
char buf[2*NAME_MAX+2];
const char *pathname;
{
char buf[2*NAME_MAX+2];
const char *pathname;
- unsigned char *
base, *
map;
+ unsigned char *map;
size_t map_len;
struct dso *p, temp_dso = {0};
int fd;
size_t map_len;
struct dso *p, temp_dso = {0};
int fd;
@@
-566,7
+566,7
@@
static struct dso *load_library(const char *name)
p->prev = tail;
tail = p;
p->prev = tail;
tail = p;
- if (ldd_mode) dprintf(1, "\t%s => %s (%p)\n", name, pathname, base);
+ if (ldd_mode) dprintf(1, "\t%s => %s (%p)\n", name, pathname,
p->
base);
return p;
}
return p;
}
@@
-999,13
+999,16
@@
void *__dynlink(int argc, char **argv)
if (ssp_used) __init_ssp((void *)aux[AT_RANDOM]);
if (ssp_used) __init_ssp((void *)aux[AT_RANDOM]);
- atexit(do_fini);
- do_init_fini(tail);
-
errno = 0;
return (void *)aux[AT_ENTRY];
}
errno = 0;
return (void *)aux[AT_ENTRY];
}
+void __init_ldso_ctors(void)
+{
+ atexit(do_fini);
+ do_init_fini(tail);
+}
+
void *dlopen(const char *file, int mode)
{
struct dso *volatile p, *orig_tail, *next;
void *dlopen(const char *file, int mode)
{
struct dso *volatile p, *orig_tail, *next;