* elf-bfd.h (struct elf_backend_data): New member
static_tls_alignment. * elfxx-target.h (elf_backend_static_tls_alignment): Provide default. (elfNN_bed): Initialize static_tls_alignment. * elflink.c (bfd_elf_final_link): Don't round end of TLS section if static TLS has special alignment requirements. * elf32-i386.c (elf_i386_tpoff): Define bed, static_tls_size. Consider static_tls_alignment. (elf_backend_static_tls_alignment): Redefine for Solaris 2. Undef again for VxWorks. * elf64-x86-64.c (elf64_x86_64_tpoff): Define bed, static_tls_size. Consider static_tls_alignment. (elf_backend_static_tls_alignment): Redefine for Solaris 2. Undef again for Intel L1OM.
This commit is contained in:
parent
3e05770224
commit
7dc98aeaf1
6 changed files with 56 additions and 4 deletions
|
@ -10624,7 +10624,11 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
|
|||
end = sec->vma + size;
|
||||
}
|
||||
base = elf_hash_table (info)->tls_sec->vma;
|
||||
end = align_power (end, elf_hash_table (info)->tls_sec->alignment_power);
|
||||
/* Only align end of TLS section if static TLS doesn't have special
|
||||
alignment requirements. */
|
||||
if (bed->static_tls_alignment == 1)
|
||||
end = align_power (end,
|
||||
elf_hash_table (info)->tls_sec->alignment_power);
|
||||
elf_hash_table (info)->tls_size = end - base;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue