[Darwin, machopic 2/n] Compute and cache indirection rules.
authorIain Sandoe <iain@sandoe.co.uk>
Tue, 8 Oct 2019 19:09:04 +0000 (19:09 +0000)
committerIain Sandoe <iains@gcc.gnu.org>
Tue, 8 Oct 2019 19:09:04 +0000 (19:09 +0000)
commita3fc4326ca94323e24693b907ce4352a70d4de8f
treee4eded45f1a4298566200d7f4bf368e6d574c6a6
parentfe42ae7cf57616f53a17544b614b425076d694db
[Darwin, machopic 2/n] Compute and cache indirection rules.

This caches a check for the requirement to indirect a symbol in the Darwin
ABI, and uses it where needed.  We also ensure that we place the indirection
pointers into the non-lazy symbol pointers section.  Other placements have
occurred with various platform toolchains - but these seem to have been
unintentional so we match current platform toolchains.

gcc/ChangeLog:

2019-10-08  Iain Sandoe  <iain@sandoe.co.uk>

* config/darwin.c (machopic_indirect_data_reference): Check for
required indirections before making direct access to defined
values.
(machopic_output_indirection): Place the indirected pointes for
required indirections into the non-lazy symbol pointers section.
(darwin_encode_section_info):
* config/darwin.h (MACHO_SYMBOL_FLAG_MUST_INDIRECT): New.
(MACHO_SYMBOL_MUST_INDIRECT_P): New.

From-SVN: r276708
gcc/ChangeLog
gcc/config/darwin.c
gcc/config/darwin.h