[LLD] Set alignment as part of Characteristics in TLS table.
authorLuqman Aden <me@luqman.ca>
Thu, 15 Oct 2020 02:39:08 +0000 (19:39 -0700)
committerLuqman Aden <me@luqman.ca>
Thu, 15 Oct 2020 02:41:03 +0000 (19:41 -0700)
commit32a4ad3b6ce6028a371b028cf06fa5feff9534bf
tree43724edf783abf2f18c1a7eaceeec423de31cf56
parent7fe13af676678815989a6d0ece684687953245e7
[LLD] Set alignment as part of Characteristics in TLS table.

Fixes https://bugs.llvm.org/show_bug.cgi?id=46473

LLD wasn't previously specifying any specific alignment in the TLS table's Characteristics field so the loader would just assume the default value (16 bytes). This works most of the time except if you have thread locals that want specific higher alignments (e.g. 32 as in the bug) *even* if they specify an alignment on the thread local. This change updates LLD to take the max alignment from tls section.

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D88637
lld/COFF/Writer.cpp