diff --git a/ld.elf_so/map_object.c b/ld.elf_so/map_object.c index 566e2bcc..2fe9d4f3 100644 --- a/ld.elf_so/map_object.c +++ b/ld.elf_so/map_object.c @@ -344,6 +344,8 @@ _rtld_map_object(const char *path, int fd, const struct stat *sb) goto error; } + printf("%s: %p [%x]\n", path, mapbase, 0x00105704 - (__u32)mapbase); + /* Unmap additional space. */ if (alignment_overmap != 0) { front_alignment_overmap = (base_alignment - (((Elf_Addr)mapbase) & (base_alignment - 1))) & (base_alignment - 1); @@ -435,6 +437,10 @@ _rtld_map_object(const char *path, int fd, const struct stat *sb) path, xstrerror(errno)); goto error; } +#ifdef phoenix + /* On phoenix pages from MAP_ANON are not zero. */ + memset(bss_addr, 0, bss_vlimit - bss_vaddr); +#endif } }