Support AARCH64_TLSLD_ADD_DTPREL_* relocations.
authorJing Yu <jingyu@google.com>
Mon, 30 Mar 2015 21:06:12 +0000 (14:06 -0700)
committerJing Yu <jingyu@google.com>
Mon, 30 Mar 2015 21:11:48 +0000 (14:11 -0700)
commit6b0ad2ebf6024419c84f35552f4eb55aa0b23195
tree0fcd98625c2646f0577f449f46bb9a1b57fc5213
parent5675acd9d4a62c4d402da7a436d810b29832d0e0
Support AARCH64_TLSLD_ADD_DTPREL_* relocations.

Also Change _TLS_MODULE_BASE_. Always let it point to the start
of TLS segment.

2015-03-28  Jing Yu  <jingyu@google.com>

* aarch64-reloc.def: New TLSLD_ADD_DTPREL_HI12,
TLSLD_ADD_DTPREL_LO12_NC.
* aarch64.cc (Target_aarch64::define_tls_base_symbol): Always
let _TLS_MODULE_BASE_ point to the start of tls segment.
(Target_aarch64::optimize_tls_reloc): Add cases for
R_AARCH64_TLSLD_ADD_DTPREL_HI12 and
R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC.
(Target_aarch64::Scan::local): Likewise.
(Target_aarch64::Scan::global): Likewise.
(Target_aarch64::Relocate::relocate): Likewise.
(Target_aarch64::Relocate::relocate_tls): Likewise. And remove
subtracting tls segment size from symbol value for
TLSLD_*_DTPREL relocations.
gold/ChangeLog
gold/aarch64-reloc.def
gold/aarch64.cc