* the length of the file. This is okay because we will not
* use the invalid part; we just need to reserve the right
* amount of virtual address space to map over later. */
- map = mmap(0, map_len, prot, MAP_PRIVATE, fd, off_start);
+ map = mmap((void *)addr_min, map_len, prot, MAP_PRIVATE, fd, off_start);
if (map==MAP_FAILED) return 0;
base = map - addr_min;
ph = (void *)((char *)buf + eh->e_phoff);
load_deps(head);
make_global(head);
+ reloc_all(head->next);
reloc_all(head);
if (rtld_used) {
*libc->prev->next = *libc;
libc = libc->prev->next;
if (libc->next) libc->next->prev = libc;
+ if (tail == &lib) tail = libc;
} else {
free_all(head);
free(sys_path);