Out of curiosity, the STT_REGISTER issue is caused by ABI and is not Linux-specific, so Solaris and *BSD have it too, right? Both ld/bfd and the Solaris linker handle STT_REGISTER as mandated by the ABI. It is gold that lacks support for them.