diff options
author | Rich Felker <dalias@aerifal.cx> | 2011-06-28 14:13:51 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2011-06-28 14:13:51 -0400 |
commit | c7debe13ee3c1ca2039b67bb7e4891365017ac1a (patch) | |
tree | d096a865e38c28746739ee64ba9e60a0c0ad42c4 | |
parent | 8d54681f15125e5a26669128cba66cd28fc52e5b (diff) | |
download | musl-c7debe13ee3c1ca2039b67bb7e4891365017ac1a.zip musl-c7debe13ee3c1ca2039b67bb7e4891365017ac1a.tar.gz musl-c7debe13ee3c1ca2039b67bb7e4891365017ac1a.tar.bz2 |
make dynamic linker relocate the main program image last, after all libs
prior to this change, copy relocations for initialized pointer
variables would not reflect the relocated contents of the pointer.
-rw-r--r-- | src/ldso/dynlink.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/ldso/dynlink.c b/src/ldso/dynlink.c index 9a0697c..82aaeec 100644 --- a/src/ldso/dynlink.c +++ b/src/ldso/dynlink.c @@ -462,6 +462,7 @@ void *__dynlink(int argc, char **argv, size_t *got) load_deps(head); make_global(head); + reloc_all(head->next); reloc_all(head); if (rtld_used) { |