]> gcc.gnu.org Git - gcc.git/commit
Darwin : Adjust darwin_binds_local_p for PIC code [PR100152].
authorIain Sandoe <iain@sandoe.co.uk>
Sat, 24 Apr 2021 12:34:49 +0000 (13:34 +0100)
committerIain Sandoe <iain@sandoe.co.uk>
Sat, 24 Apr 2021 12:45:14 +0000 (13:45 +0100)
commitb6600392bf71c4a9785f8f49948b611425896830
tree3e0f30173cca545dd6da1dc931d66ba0952cbf76
parentf31ddad8ac8f11b8b11ab0c39f2e0740fd40ba8e
Darwin : Adjust darwin_binds_local_p for PIC code [PR100152].

Darwin's dynamic linker supports interposition and lazy symbol binding.
If we are generating PIC code and a symbol is public, then it could
potentially be indirected via a lazy-resolver stub; we cannot tell at
compile-time if this will be done (since the indirection can be the
result of adding a -flat-namespace option at link-time).  Here we are
conservative and assume that any such symbol cannot bind locally.
The default implementation for binds_local_p handles undefined, weak and
common symbols which are always indirected (for mdynamic-no-pic also).

gcc/ChangeLog:

PR target/100152
* config/darwin.c (darwin_binds_local_p): Assume that any
public symbol might be interposed for PIC code. Update function
header comment to reflect current Darwin capability.
gcc/config/darwin.c
This page took 0.065746 seconds and 6 git commands to generate.