https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91228
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- I think I warned you in a followup to your mail(In reply to Martin Liška from comment #1) > Obviously mine. > @Richi: Have you seen anything similar to this? I think I warned you in a followup to your mail that likely the renaming is going to break since the first zero byte is the same as "no name" which both Solaris and HPUX don't like. I suggested to change /* Find the first '\0' in strings. */ zero_byte = (char *) memchr (strings, '\0', strsz); to /* Find the first '\0' in strings. */ zero_byte = (char *) memchr (strings + 1, '\0', strsz); but then Jeff approved the original... See all the glory details in PR83452 which you now uncovered again. Note that a way out would be to append 'gnu_lto_v1' to .strings and use the same name as before. As said, eventually an empty name does it (but you can't use the empty name at offset zero). > @Rainer: About what linker are we talking?