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.
gcc/ChangeLog:
* config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Do not add
XCOFF TLS reloc decorations.
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)