https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93384
--- Comment #8 from Peter Bergner <bergner at gcc dot gnu.org> --- The two error locations are the same, namely: bl _PyObject_AssertFailed.localalias Earlier in the asm file, we have: .type _PyObject_AssertFailed, @function _PyObject_AssertFailed: ... .cfi_endproc .LFE6858: .size _PyObject_AssertFailed,.-_PyObject_AssertFailed .set _PyObject_AssertFailed.localalias,_PyObject_AssertFailed .set _PyObject_AssertFailed.localalias,_PyObject_AssertFailed So we're creating that alias twice. If I remove one of them, it assembles fine. Does the source have some typo where it creates the same alias twice?