From: Hans-Peter Nilsson Date: Wed, 19 Nov 2008 06:16:04 +0000 (+0000) Subject: * config/tc-cris.c (cris_number_to_imm): Apply S_SET_THREAD_LOCAL X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=f3294356795afeb23a6f1394e769e2c6ac45420e;p=deliverable%2Fbinutils-gdb.git * config/tc-cris.c (cris_number_to_imm): Apply S_SET_THREAD_LOCAL on symbols in TLS relocs. --- diff --git a/gas/config/tc-cris.c b/gas/config/tc-cris.c index 4b5ab3b612..c64f786eb9 100644 --- a/gas/config/tc-cris.c +++ b/gas/config/tc-cris.c @@ -3627,13 +3627,6 @@ cris_number_to_imm (char *bufp, long val, int n, fixS *fixP, segT seg) regression tests on the object file contents. FIXME: Seems uninteresting now that we have a test suite. */ - case BFD_RELOC_CRIS_16_GOT: - case BFD_RELOC_CRIS_32_GOT: - case BFD_RELOC_CRIS_32_GOTREL: - case BFD_RELOC_CRIS_16_GOTPLT: - case BFD_RELOC_CRIS_32_GOTPLT: - case BFD_RELOC_CRIS_32_PLT_GOTREL: - case BFD_RELOC_CRIS_32_PLT_PCREL: case BFD_RELOC_CRIS_32_GOT_GD: case BFD_RELOC_CRIS_16_GOT_GD: case BFD_RELOC_CRIS_32_GD: @@ -3643,6 +3636,19 @@ cris_number_to_imm (char *bufp, long val, int n, fixS *fixP, segT seg) case BFD_RELOC_CRIS_16_GOT_TPREL: case BFD_RELOC_CRIS_32_TPREL: case BFD_RELOC_CRIS_16_TPREL: +#if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF) + if (IS_ELF && fixP->fx_addsy != NULL) + S_SET_THREAD_LOCAL (fixP->fx_addsy); +#endif + /* Fall through. */ + + case BFD_RELOC_CRIS_16_GOT: + case BFD_RELOC_CRIS_32_GOT: + case BFD_RELOC_CRIS_32_GOTREL: + case BFD_RELOC_CRIS_16_GOTPLT: + case BFD_RELOC_CRIS_32_GOTPLT: + case BFD_RELOC_CRIS_32_PLT_GOTREL: + case BFD_RELOC_CRIS_32_PLT_PCREL: /* We don't want to put in any kind of non-zero bits in the data being relocated for these. */ md_number_to_chars (bufp, 0, n);