From: Pierre Muller Date: Tue, 21 Dec 2010 08:41:16 +0000 (+0000) Subject: * peXXigen.c (_bfd_XXi_final_link_postscript): Use correct size X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=bc2b29908f99c56de320c765c932776cef1aa7c6;p=binutils-gdb.git * peXXigen.c (_bfd_XXi_final_link_postscript): Use correct size for windows 64-bit TLS table size. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 39524f6cebf..c86371552b8 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2010-12-21 Pierre Muller + + * peXXigen.c (_bfd_XXi_final_link_postscript): Use correct size + for windows 64-bit TLS table size. + 2010-12-16 DJ Delorie * reloc.c (BFD_RELOC_RX_ABS16_REV): Add. diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c index a5b7f68b902..825229aab93 100644 --- a/bfd/peXXigen.c +++ b/bfd/peXXigen.c @@ -2437,8 +2437,15 @@ _bfd_XXi_final_link_postscript (bfd * abfd, struct coff_final_link_info *pfinfo) abfd); result = FALSE; } - + /* According to PECOFF sepcifications by Microsoft version 8.2 + the TLS data directory consists of 4 pointers, followed + by two 4-byte integer. This implies that the total size + is different for 32-bit and 64-bit executables. */ +#if !defined(COFF_WITH_pep) && !defined(COFF_WITH_pex64) pe_data (abfd)->pe_opthdr.DataDirectory[PE_TLS_TABLE].Size = 0x18; +#else + pe_data (abfd)->pe_opthdr.DataDirectory[PE_TLS_TABLE].Size = 0x28; +#endif } /* If there is a .pdata section and we have linked pdata finally, we