https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100152
--- Comment #22 from Iain Sandoe <iains at gcc dot gnu.org> --- so it looks like the contents of r10 are being trashed by the call to ___UTF_8_put (the first call goes through the dylib lazy symbol resolution and that leaves r10 with a value pointing to some mutex). When we return from ___UTF_8_put there's a test for the loop iteration which is expecting that to be the value in r10. The test is for equality which fails for the silly value now in r10 and we try a second loop iteration. That starts with the "movl (%rbp,%r10,4), %esi" - but r10 now has a value that can't be used. So .... I don't know if this is a new problem or an old problem that has been exposed by changes in the RA .. .. if there's any easy way to amend the build process to attempt modifications of the build flags to that file - this could give you a work-around in the short term.