diff options
author | rie <none@none> | 2006-06-07 18:50:12 -0700 |
---|---|---|
committer | rie <none@none> | 2006-06-07 18:50:12 -0700 |
commit | d326b23bcecd3c0d693a54003343ec3de73e58d0 (patch) | |
tree | 99abe0826777b878a88b37fb9837532fc6b09736 /usr/src/uts/sparc | |
parent | 0192a2782d86db43dfd071aa5d97f13a63c14951 (diff) | |
download | illumos-gate-d326b23bcecd3c0d693a54003343ec3de73e58d0.tar.gz |
6423051 static TLS support within the link-editors needs a major face lift
Diffstat (limited to 'usr/src/uts/sparc')
-rw-r--r-- | usr/src/uts/sparc/krtld/doreloc.c | 49 | ||||
-rw-r--r-- | usr/src/uts/sparc/krtld/kobj_reloc.c | 2 |
2 files changed, 22 insertions, 29 deletions
diff --git a/usr/src/uts/sparc/krtld/doreloc.c b/usr/src/uts/sparc/krtld/doreloc.c index 7b98eee72a..70ddf91e3c 100644 --- a/usr/src/uts/sparc/krtld/doreloc.c +++ b/usr/src/uts/sparc/krtld/doreloc.c @@ -140,35 +140,28 @@ const Rel_entry reloc_table[R_SPARC_NUM] = { 8, 0, 0}, /* V9 */ /* R_SPARC_UA16 */ {0x0, FLG_RE_VERIFY | FLG_RE_UNALIGN, 2, 0, 0}, -/* R_SPARC_TLS_GD_HI22 */ {0x0, FLG_RE_GOTADD | FLG_RE_TLSINS | FLG_RE_TLSGD, - 4, 10, 22}, -/* R_SPARC_TLS_GD_LO10 */ {0x3ff, FLG_RE_GOTADD | FLG_RE_TLSINS | - FLG_RE_TLSGD | FLG_RE_SIGN, 4, 0, 13}, -/* R_SPARC_TLS_GD_ADD */ {0x0, FLG_RE_TLSINS | FLG_RE_TLSGD, 0, 0, 0}, -/* R_SPARC_TLS_GD_CALL */ {0x0, FLG_RE_TLSINS | FLG_RE_TLSGD, 0, 0, 0}, -/* R_SPARC_TLS_LDM_HI22 */ {0x0, FLG_RE_GOTADD | FLG_RE_TLSINS | FLG_RE_TLSLD, - 4, 10, 22}, -/* R_SPARC_TLS_LDM_LO10 */ {0x3ff, FLG_RE_GOTADD | FLG_RE_TLSINS | - FLG_RE_TLSLD | FLG_RE_SIGN, 4, 0, 13}, -/* R_SPARC_TLS_LDM_ADD */ {0x0, FLG_RE_TLSINS | FLG_RE_TLSLD, 0, 0, 0}, -/* R_SPARC_TLS_LDM_CALL */ {0x0, FLG_RE_TLSINS | FLG_RE_TLSLD, 0, 0, 0}, -/* R_SPARC_TLS_LDO_HIX22 */ {0x0, FLG_RE_VERIFY | FLG_RE_TLSINS | FLG_RE_TLSLD, - 4, 10, 22}, -/* R_SPARC_TLS_LDO_LOX10 */ {0x3ff, FLG_RE_TLSINS | FLG_RE_SIGN | FLG_RE_TLSLD, - 4, 0, 13}, -/* R_SPARC_TLS_LDO_ADD */ {0x0, FLG_RE_TLSINS | FLG_RE_TLSLD, 0, 0, 0}, -/* R_SPARC_TLS_IE_HI22 */ {0x0, FLG_RE_TLSINS | FLG_RE_GOTADD | FLG_RE_TLSIE, - 4, 10, 22}, -/* R_SPARC_TLS_IE_LO10 */ {0x3ff, FLG_RE_TLSINS | FLG_RE_GOTADD | - FLG_RE_TLSIE | FLG_RE_SIGN, 4, 0, 13}, -/* R_SPARC_TLS_IE_LD */ {0x0, FLG_RE_TLSINS | FLG_RE_TLSIE, 0, 0, 0}, -/* R_SPARC_TLS_IE_LDX */ {0x0, FLG_RE_TLSINS | FLG_RE_TLSIE, 0, 0, 0}, -/* R_SPARC_TLS_IE_ADD */ {0x0, FLG_RE_TLSINS | FLG_RE_TLSIE, 0, 0, 0}, +/* R_SPARC_TLS_GD_HI22 */ {0x0, FLG_RE_GOTADD | FLG_RE_TLSGD, 4, 10, 22}, +/* R_SPARC_TLS_GD_LO10 */ {0x3ff, FLG_RE_GOTADD | FLG_RE_TLSGD | + FLG_RE_SIGN, 4, 0, 13}, +/* R_SPARC_TLS_GD_ADD */ {0x0, FLG_RE_TLSGD, 0, 0, 0}, +/* R_SPARC_TLS_GD_CALL */ {0x0, FLG_RE_TLSGD, 0, 0, 0}, +/* R_SPARC_TLS_LDM_HI22 */ {0x0, FLG_RE_GOTADD | FLG_RE_TLSLD, 4, 10, 22}, +/* R_SPARC_TLS_LDM_LO10 */ {0x3ff, FLG_RE_GOTADD | FLG_RE_TLSLD | + FLG_RE_SIGN, 4, 0, 13}, +/* R_SPARC_TLS_LDM_ADD */ {0x0, FLG_RE_TLSLD, 0, 0, 0}, +/* R_SPARC_TLS_LDM_CALL */ {0x0, FLG_RE_TLSLD, 0, 0, 0}, +/* R_SPARC_TLS_LDO_HIX22 */ {0x0, FLG_RE_VERIFY | FLG_RE_TLSLD, 4, 10, 22}, +/* R_SPARC_TLS_LDO_LOX10 */ {0x3ff, FLG_RE_SIGN | FLG_RE_TLSLD, 4, 0, 13}, +/* R_SPARC_TLS_LDO_ADD */ {0x0, FLG_RE_TLSLD, 0, 0, 0}, +/* R_SPARC_TLS_IE_HI22 */ {0x0, FLG_RE_GOTADD | FLG_RE_TLSIE, 4, 10, 22}, +/* R_SPARC_TLS_IE_LO10 */ {0x3ff, FLG_RE_GOTADD | FLG_RE_TLSIE | + FLG_RE_SIGN, 4, 0, 13}, +/* R_SPARC_TLS_IE_LD */ {0x0, FLG_RE_TLSIE, 0, 0, 0}, +/* R_SPARC_TLS_IE_LDX */ {0x0, FLG_RE_TLSIE, 0, 0, 0}, +/* R_SPARC_TLS_IE_ADD */ {0x0, FLG_RE_TLSIE, 0, 0, 0}, /* R_SPARC_TLS_LE_HIX22 */ {(Xword)(-1LL), - FLG_RE_VERIFY | FLG_RE_TLSINS | FLG_RE_TLSLE, - 4, 10, 22}, -/* R_SPARC_TLS_LE_LOX10 */ {0x3ff, FLG_RE_TLSINS | FLG_RE_SIGN | FLG_RE_TLSLE, - 4, 0, 13}, + FLG_RE_VERIFY | FLG_RE_TLSLE, 4, 10, 22}, +/* R_SPARC_TLS_LE_LOX10 */ {0x3ff, FLG_RE_SIGN | FLG_RE_TLSLE, 4, 0, 13}, /* R_SPARC_TLS_DTPMOD32 */ {0x0, FLG_RE_NOTREL, 4, 0, 0}, /* R_SPARC_TLS_DTPMOD64 */ {0x0, FLG_RE_NOTREL, 8, 0, 0}, /* R_SPARC_TLS_DTPOFF32 */ {0x0, FLG_RE_NOTREL, 4, 0, 0}, diff --git a/usr/src/uts/sparc/krtld/kobj_reloc.c b/usr/src/uts/sparc/krtld/kobj_reloc.c index 12d2a19d5a..fd3846a383 100644 --- a/usr/src/uts/sparc/krtld/kobj_reloc.c +++ b/usr/src/uts/sparc/krtld/kobj_reloc.c @@ -212,7 +212,7 @@ do_relocate( "do_relocate: bad strndx %d\n", symnum); return (-1); } - if ((rtype > R_SPARC_NUM) || IS_TLS(rtype)) { + if ((rtype > R_SPARC_NUM) || IS_TLS_INS(rtype)) { _kobj_printf(ops, "krtld: invalid relocation type %d", rtype); _kobj_printf(ops, " at 0x%llx:", off); |