+2010-12-21 Kai Tietz <kai.tietz@onevision.com>
+
+ * peXXigen.c (_bfd_XXi_final_link_postscript): Use
+ bfd_get_symbol_leading_char to determine "_tls_used" name.
+
2010-12-21 Pierre Muller <muller@ics.u-strasbg.fr>
* peXXigen.c (_bfd_XXi_final_link_postscript): Use correct size
}
h1 = coff_link_hash_lookup (coff_hash_table (info),
- "__tls_used", FALSE, FALSE, TRUE);
+ (bfd_get_symbol_leading_char(abfd) != 0
+ ? "__tls_used" : "_tls_used"),
+ FALSE, FALSE, TRUE);
if (h1 != NULL)
{
if ((h1->root.type == bfd_link_hash_defined
+2010-12-21 Kai Tietz <kai.tietz@onevision.com>
+
+ * ld-pe/pe.exp: Add TLS directory test.
+ * ld-pe/tlssec.s: New.
+ * ld-pe/tlssec64.d: New.
+ * ld-pe/tlssec32.d: New.
+
2010-12-20 Alan Modra <amodra@gmail.com>
* ld-bootstrap/bootstrap.exp: Fix misplaced comment.
{{objdump -s secrel_64.d}} "secrel.x"}
{"Empty export table" "" "" "exports.s"
{{objdump -p exports64.d}} "exports.dll"}
+ {"TLS directory entry" "" "" "tlssec.s"
+ {{objdump -p tlssec64.d}} "tlssec.dll"}
}
} elseif {[istarget i*86-*-cygwin*] } {
set pe_tests {
{{objdump -s secrel.d}} "secrel.x"}
{"Empty export table" "" "" "exports.s"
{{objdump -p exports.d}} "exports.dll"}
+ {"TLS directory entry" "" "" "tlssec.s"
+ {{objdump -p tlssec32.d}} "tlssec.dll"}
}
} else {
set pe_tests {
{{objdump -s secrel.d}} "secrel.x"}
{"Empty export table" "" "" "exports.s"
{{objdump -p exports.d}} "exports.dll"}
+ {"TLS directory entry" "" "" "tlssec.s"
+ {{objdump -p tlssec32.d}} "tlssec.dll"}
}
}
--- /dev/null
+.global _tls_used
+.global __tls_used
+.global _start
+.global start
+.global _mainCRTStartup
+.global mainCRTStartup
+
+.text
+_start:
+mainCRTStartup:
+_mainCRTStartup:
+ .byte 1
+
+.section .tls
+_tls_used:
+__tls_used:
+.long 1,2,3,4,5,6,7,8,9,10
+.long 11,12,13,14,15,16,17,18,19,20
+.long 21,22,23,24,25,26,27,28,29,30
+
--- /dev/null
+#...
+Entry 9 00003000 00000018 Thread Storage Directory \[\.tls\]
+#...
--- /dev/null
+#...
+Entry 9 0000000000003000 00000028 Thread Storage Directory \[\.tls\]
+#...