X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=gas%2Fconfig%2Ftc-xtensa.c;h=f8a81128bc374ca0fe9cc2e3e0265a48d026f290;hb=a89c407e4bd3e184672287b6bb57a19fccbfb463;hp=8345ecbdd96585d5d5dd0078954aaff4bf25d959;hpb=b1028c8e8f281d1072e1fd89d8083cb960598a1a;p=binutils-gdb.git diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c index 8345ecbdd96..f8a81128bc3 100644 --- a/gas/config/tc-xtensa.c +++ b/gas/config/tc-xtensa.c @@ -10423,15 +10423,25 @@ cache_literal_section (bfd_boolean use_abs_literals) } else { - /* If the section name ends with ".text", then replace that suffix - instead of appending an additional suffix. */ + /* If the section name begins or ends with ".text", then replace + that portion instead of appending an additional suffix. */ size_t len = strlen (text_name); - if (len >= 5 && strcmp (text_name + len - 5, ".text") == 0) + if (len >= 5 + && (strcmp (text_name + len - 5, ".text") == 0 + || strncmp (text_name, ".text", 5) == 0)) len -= 5; name = xmalloc (len + strlen (base_name) + 1); - strcpy (name, text_name); - strcpy (name + len, base_name); + if (strncmp (text_name, ".text", 5) == 0) + { + strcpy (name, base_name); + strcat (name, text_name + 5); + } + else + { + strcpy (name, text_name); + strcpy (name + len, base_name); + } } /* Canonicalize section names to allow renaming literal sections.