Rebase gcc10-amdgcn-llvm-as.patch patch.

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc11?expand=0&rev=234
This commit is contained in:
Martin Liška 2021-01-18 10:16:40 +00:00 committed by Git OBS Bridge
parent 38f53b3e66
commit f82d3edb57

View File

@ -9,21 +9,23 @@ gcc/
* varasm.c (default_elf_asm_named_section): Always output all
flags if SECTION_MERGE, even if already declared before.
diff --git a/gcc/varasm.c b/gcc/varasm.c
index ada99940f65..51a507393a8 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -6738,9 +6738,11 @@ default_elf_asm_named_section (const char *name, unsigned int flags,
/* If we have already declared this section, we can use an
abbreviated form to switch back to it -- unless this section is
part of a COMDAT groups, in which case GAS requires the full
- declaration every time. */
+ declaration every time. LLVM's MC linker requires that the
+ flags are identical, thus avoid the abbreviated form with MERGE. */
if (!(HAVE_COMDAT_GROUP && (flags & SECTION_LINKONCE))
- && (flags & SECTION_DECLARED))
+ && (flags & SECTION_DECLARED)
+ && !(flags & SECTION_MERGE))
{
fprintf (asm_out_file, "\t.section\t%s\n", name);
return;
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 21be03aeba2..9cb46885aa5 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -6792,10 +6792,13 @@ default_elf_asm_named_section (const char *name, unsigned int flags,
/* If we have already declared this section, we can use an
abbreviated form to switch back to it -- unless this section is
part of a COMDAT groups or with SHF_GNU_RETAIN or with SHF_LINK_ORDER,
- in which case GAS requires the full declaration every time. */
+ in which case GAS requires the full declaration every time.
+ LLVM's MC linker requires that the
+ flags are identical, thus avoid the abbreviated form with MERGE. */
if (!(HAVE_COMDAT_GROUP && (flags & SECTION_LINKONCE))
&& !(flags & (SECTION_RETAIN | SECTION_LINK_ORDER))
- && (flags & SECTION_DECLARED))
+ && (flags & SECTION_DECLARED)
+ && !(flags & SECTION_MERGE))
{
fprintf (asm_out_file, "\t.section\t%s\n", name);
return;