GCC currently emits TLS relocation decorations on symbols in DWARF sections. Recent changes to the AIX linker cause it to reject such symbols. This patch removes the decorations (@ie, @le, @m) and emit only the qualified symbol name.
Bootstrapped on powerpc-ibm-aix7.3.2.0. * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Do not add XCOFF TLS reloc decorations. diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index fd2b0b5280c..6a8943d0286 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -9027,26 +9027,6 @@ rs6000_output_dwarf_dtprel (FILE *file, int size, rtx x) output_addr_const (file, x); if (TARGET_ELF) fputs ("@dtprel+0x8000", file); - else if (TARGET_XCOFF && SYMBOL_REF_P (x)) - { - switch (SYMBOL_REF_TLS_MODEL (x)) - { - case 0: - break; - case TLS_MODEL_LOCAL_EXEC: - fputs ("@le", file); - break; - case TLS_MODEL_INITIAL_EXEC: - fputs ("@ie", file); - break; - case TLS_MODEL_GLOBAL_DYNAMIC: - case TLS_MODEL_LOCAL_DYNAMIC: - fputs ("@m", file); - break; - default: - gcc_unreachable (); - } - } } /* Return true if X is a symbol that refers to real (rather than emulated)