mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-07-25 10:52:00 +08:00
2004-10-01 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-ppc.c (md_apply_fix3): Call S_SET_THREAD_LOCAL for TLS relocations. * config/tc-s390.c (md_apply_fix3): Likewise. * config/tc-sparc.c (md_apply_fix3): Likewise.
This commit is contained in:
gas
@ -1,3 +1,10 @@
|
|||||||
|
2004-10-01 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
* config/tc-ppc.c (md_apply_fix3): Call S_SET_THREAD_LOCAL for
|
||||||
|
TLS relocations.
|
||||||
|
* config/tc-s390.c (md_apply_fix3): Likewise.
|
||||||
|
* config/tc-sparc.c (md_apply_fix3): Likewise.
|
||||||
|
|
||||||
2004-10-01 Paul Brook <paul@codesourcery.com>
|
2004-10-01 Paul Brook <paul@codesourcery.com>
|
||||||
|
|
||||||
* config/tc-arm.c (arm_elf_section_type): New function.
|
* config/tc-arm.c (arm_elf_section_type): New function.
|
||||||
|
@ -5846,6 +5846,8 @@ md_apply_fix3 (fixP, valP, seg)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case BFD_RELOC_PPC_TLS:
|
case BFD_RELOC_PPC_TLS:
|
||||||
|
break;
|
||||||
|
|
||||||
case BFD_RELOC_PPC_DTPMOD:
|
case BFD_RELOC_PPC_DTPMOD:
|
||||||
case BFD_RELOC_PPC_TPREL16:
|
case BFD_RELOC_PPC_TPREL16:
|
||||||
case BFD_RELOC_PPC_TPREL16_LO:
|
case BFD_RELOC_PPC_TPREL16_LO:
|
||||||
@ -5885,6 +5887,7 @@ md_apply_fix3 (fixP, valP, seg)
|
|||||||
case BFD_RELOC_PPC64_DTPREL16_HIGHERA:
|
case BFD_RELOC_PPC64_DTPREL16_HIGHERA:
|
||||||
case BFD_RELOC_PPC64_DTPREL16_HIGHEST:
|
case BFD_RELOC_PPC64_DTPREL16_HIGHEST:
|
||||||
case BFD_RELOC_PPC64_DTPREL16_HIGHESTA:
|
case BFD_RELOC_PPC64_DTPREL16_HIGHESTA:
|
||||||
|
S_SET_THREAD_LOCAL (fixP->fx_addsy);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
/* Because SDA21 modifies the register field, the size is set to 4
|
/* Because SDA21 modifies the register field, the size is set to 4
|
||||||
|
@ -2217,10 +2217,12 @@ md_apply_fix3 (fixP, valP, seg)
|
|||||||
case BFD_RELOC_390_TLS_DTPMOD:
|
case BFD_RELOC_390_TLS_DTPMOD:
|
||||||
case BFD_RELOC_390_TLS_DTPOFF:
|
case BFD_RELOC_390_TLS_DTPOFF:
|
||||||
case BFD_RELOC_390_TLS_TPOFF:
|
case BFD_RELOC_390_TLS_TPOFF:
|
||||||
|
S_SET_THREAD_LOCAL (fixP->fx_addsy);
|
||||||
/* Fully resolved at link time. */
|
/* Fully resolved at link time. */
|
||||||
break;
|
break;
|
||||||
case BFD_RELOC_390_TLS_IEENT:
|
case BFD_RELOC_390_TLS_IEENT:
|
||||||
/* Fully resolved at link time. */
|
/* Fully resolved at link time. */
|
||||||
|
S_SET_THREAD_LOCAL (fixP->fx_addsy);
|
||||||
value += 2;
|
value += 2;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -3012,7 +3012,41 @@ md_apply_fix3 (fixP, valP, segment)
|
|||||||
#ifdef OBJ_ELF
|
#ifdef OBJ_ELF
|
||||||
/* SPARC ELF relocations don't use an addend in the data field. */
|
/* SPARC ELF relocations don't use an addend in the data field. */
|
||||||
if (fixP->fx_addsy != NULL)
|
if (fixP->fx_addsy != NULL)
|
||||||
return;
|
{
|
||||||
|
switch (fixP->fx_r_type)
|
||||||
|
{
|
||||||
|
case BFD_RELOC_SPARC_TLS_GD_HI22:
|
||||||
|
case BFD_RELOC_SPARC_TLS_GD_LO10:
|
||||||
|
case BFD_RELOC_SPARC_TLS_GD_ADD:
|
||||||
|
case BFD_RELOC_SPARC_TLS_GD_CALL:
|
||||||
|
case BFD_RELOC_SPARC_TLS_LDM_HI22:
|
||||||
|
case BFD_RELOC_SPARC_TLS_LDM_LO10:
|
||||||
|
case BFD_RELOC_SPARC_TLS_LDM_ADD:
|
||||||
|
case BFD_RELOC_SPARC_TLS_LDM_CALL:
|
||||||
|
case BFD_RELOC_SPARC_TLS_LDO_HIX22:
|
||||||
|
case BFD_RELOC_SPARC_TLS_LDO_LOX10:
|
||||||
|
case BFD_RELOC_SPARC_TLS_LDO_ADD:
|
||||||
|
case BFD_RELOC_SPARC_TLS_IE_HI22:
|
||||||
|
case BFD_RELOC_SPARC_TLS_IE_LO10:
|
||||||
|
case BFD_RELOC_SPARC_TLS_IE_LD:
|
||||||
|
case BFD_RELOC_SPARC_TLS_IE_LDX:
|
||||||
|
case BFD_RELOC_SPARC_TLS_IE_ADD:
|
||||||
|
case BFD_RELOC_SPARC_TLS_LE_HIX22:
|
||||||
|
case BFD_RELOC_SPARC_TLS_LE_LOX10:
|
||||||
|
case BFD_RELOC_SPARC_TLS_DTPMOD32:
|
||||||
|
case BFD_RELOC_SPARC_TLS_DTPMOD64:
|
||||||
|
case BFD_RELOC_SPARC_TLS_DTPOFF32:
|
||||||
|
case BFD_RELOC_SPARC_TLS_DTPOFF64:
|
||||||
|
case BFD_RELOC_SPARC_TLS_TPOFF32:
|
||||||
|
case BFD_RELOC_SPARC_TLS_TPOFF64:
|
||||||
|
S_SET_THREAD_LOCAL (fixP->fx_addsy);
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* This is a hack. There should be a better way to
|
/* This is a hack. There should be a better way to
|
||||||
|
Reference in New Issue
Block a user