diff options
author | Iain Sandoe <iain@sandoe.co.uk> | 2021-04-24 13:34:49 +0100 |
---|---|---|
committer | Iain Sandoe <iain@sandoe.co.uk> | 2021-04-24 13:45:14 +0100 |
commit | b6600392bf71c4a9785f8f49948b611425896830 (patch) | |
tree | 3e0f30173cca545dd6da1dc931d66ba0952cbf76 /gcc/tree-complex.c | |
parent | f31ddad8ac8f11b8b11ab0c39f2e0740fd40ba8e (diff) | |
download | gcc-b6600392bf71c4a9785f8f49948b611425896830.zip gcc-b6600392bf71c4a9785f8f49948b611425896830.tar.gz gcc-b6600392bf71c4a9785f8f49948b611425896830.tar.bz2 |
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.
Diffstat (limited to 'gcc/tree-complex.c')
0 files changed, 0 insertions, 0 deletions