diff --git a/src/elf_link_elf.c b/src/elf_link_elf.c index a6ee43c2bd1f2eb4edfdb7b2a54e313cbdab6029..66b523cc35da79ccaa53ab4abc76ec8d60b7c2a9 100644 --- a/src/elf_link_elf.c +++ b/src/elf_link_elf.c @@ -812,8 +812,9 @@ static void modify_segment(elf_link_t *elf_link, Elf64_Phdr *p, char *begin, cha p->p_memsz = begin_sec->sh_size; return; } - p->p_filesz = end_sec->sh_offset - begin_sec->sh_offset; - p->p_memsz = p->p_filesz + end_sec->sh_size; + // .tbss is set type Alloc when merge secion + p->p_filesz = begin_sec->sh_size + end_sec->sh_size; + p->p_memsz = p->p_filesz; } static void modify_tls_segment(elf_link_t *elf_link)