https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100152
--- Comment #43 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Iain D Sandoe <ia...@gcc.gnu.org>: https://gcc.gnu.org/g:b6600392bf71c4a9785f8f49948b611425896830 commit r12-103-gb6600392bf71c4a9785f8f49948b611425896830 Author: Iain Sandoe <i...@sandoe.co.uk> Date: Sat Apr 24 13:34:49 2021 +0100 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.