diff options
Diffstat (limited to 'ldso/ldso/arc/dl-sysdep.h')
-rw-r--r-- | ldso/ldso/arc/dl-sysdep.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/ldso/ldso/arc/dl-sysdep.h b/ldso/ldso/arc/dl-sysdep.h index af4b18064..d71e16b32 100644 --- a/ldso/ldso/arc/dl-sysdep.h +++ b/ldso/ldso/arc/dl-sysdep.h @@ -96,12 +96,15 @@ extern unsigned __udivmodsi4(unsigned, unsigned) attribute_hidden; }) \ ) -/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so - PLT entries should not be allowed to define the value. +/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry or + TLS variable so PLT entries should not be allowed to define the value. + ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one of the main executable's symbols, as for a COPY reloc. */ #define elf_machine_type_class(type) \ - ((((type) == R_ARC_JMP_SLOT) * ELF_RTYPE_CLASS_PLT) \ + ((((type) == R_ARC_JMP_SLOT || (type) == R_ARC_TLS_DTPMOD || \ + (type) == R_ARC_TLS_DTPOFF || (type) == R_ARC_TLS_TPOFF) \ + * ELF_RTYPE_CLASS_PLT) \ | (((type) == R_ARC_COPY) * ELF_RTYPE_CLASS_COPY)) /* |