https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116887

Xi Ruoyao <xry111 at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|                            |loongarch64-linux-gnu
                 CC|                            |chenglulu at loongson dot cn,
                   |                            |danglin at gcc dot gnu.org
           See Also|                            |https://gcc.gnu.org/bugzill
                   |                            |a/show_bug.cgi?id=52999

--- Comment #4 from Xi Ruoyao <xry111 at gcc dot gnu.org> ---
I copied something from hppa PR52999 fix:

-- >8 --

diff --git a/gcc/config/loongarch/loongarch.cc
b/gcc/config/loongarch/loongarch.cc
index dc49dca4690..b380e6f9dc4 100644
--- a/gcc/config/loongarch/loongarch.cc
+++ b/gcc/config/loongarch/loongarch.cc
@@ -11050,6 +11050,20 @@ loongarch_asm_code_end (void)
 #undef DUMP_FEATURE
 }

+static unsigned int
+loongarch_section_type_flags (tree decl, const char *name, int reloc)
+{
+  unsigned int flags;
+
+  flags = default_section_type_flags (decl, name, reloc);
+
+  if (strcmp (name, ".data.rel.ro") == 0
+      || strcmp (name, ".data.rel.ro.local") == 0)
+    flags |= SECTION_WRITE | SECTION_RELRO;
+
+  return flags;
+}
+
 /* Initialize the GCC target structure.  */
 #undef TARGET_ASM_ALIGNED_HI_OP
 #define TARGET_ASM_ALIGNED_HI_OP "\t.half\t"
@@ -11314,6 +11328,9 @@ loongarch_asm_code_end (void)
 #undef TARGET_C_MODE_FOR_FLOATING_TYPE
 #define TARGET_C_MODE_FOR_FLOATING_TYPE loongarch_c_mode_for_floating_type

+#undef TARGET_SECTION_TYPE_FLAGS
+#define TARGET_SECTION_TYPE_FLAGS loongarch_section_type_flags
+
 struct gcc_target targetm = TARGET_INITIALIZER;

 #include "gt-loongarch.h"

-- >8 --

and the code is compiled fine.  But I've no idea why loongarch and hppa are
only ports requiring this...

Reply via email to