make dynamic linker relocate the main program image last, after all libs
authorRich Felker <dalias@aerifal.cx>
Tue, 28 Jun 2011 18:13:51 +0000 (14:13 -0400)
committerRich Felker <dalias@aerifal.cx>
Tue, 28 Jun 2011 18:13:51 +0000 (14:13 -0400)
prior to this change, copy relocations for initialized pointer
variables would not reflect the relocated contents of the pointer.

src/ldso/dynlink.c

index 9a0697c..82aaeec 100644 (file)
@@ -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) {