https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57438
--- Comment #23 from mrs at gcc dot gnu.org <mrs at gcc dot gnu.org> --- On the platform, external symbols are defined to be 1 or more bytes. 0 is not one or more. Once that is fixed, then the problem goes away. If you want to have Apple update their abi for future systems to include zero byte objects, you will have to ask them to change their abi.