https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99872
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Created attachment 50511 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50511&action=edit gcc11-pr99872.patch So perhaps this patch? I went through all ASM_OUTPUT_DEF definitions and all of them use assemble_name for each of the last 2 arguments separately, and assemble_name should handle the * etc. at the start of the symbols. Verified with the cross to mingw -m32 that it now emits .set LC5,LC6, and verified that on x86_64-linux it didn't change anything e.g. on the testcase mentioned in the commit message. I have no way to test this on mingw32, neither 32-bit nor 64-bit, but will test it on x86_64-linux and i686-linux tonight.