https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81361
--- Comment #9 from Iain Sandoe <iains at gcc dot gnu.org> --- (In reply to Eric Botcazou from comment #7) > Created attachment 42177 [details] > Tentative fix > > Lightly tested on Darwin and Linux so far. Hi Eric, Will look at this patch shortly; Darwin's linker (ld64) needs code/data to be separable into "atoms" => non-zero-length chunks of code/data starting with a linker-visible label. It's quite possible that this can get broken since that constraint doesn't apply to BINUTILS ld, so will go unnoticed there. ld64 also doesn't like 0-length FDEs (actually, I'm not really sure why BINUTILS doesn't warn on that too, since it's nonsensical, and at least a waste of binary space and linker parse time). I'm starting to look at the Darwin hot/cold partitioning issues (which have produced these problems in the past, e.g. 81033, I suspect), but a lot of state to re-load since I've not been able to put many cycles into Darwin recently. Anything that's common with Linux is definitely useful, but it's possible that Darwin will have additional fallout from changes that affect the splitting of code into such "atom" chunks.