summaryrefslogtreecommitdiff
path: root/usr/src/uts/sparc
diff options
context:
space:
mode:
authorrie <none@none>2006-06-07 18:50:12 -0700
committerrie <none@none>2006-06-07 18:50:12 -0700
commitd326b23bcecd3c0d693a54003343ec3de73e58d0 (patch)
tree99abe0826777b878a88b37fb9837532fc6b09736 /usr/src/uts/sparc
parent0192a2782d86db43dfd071aa5d97f13a63c14951 (diff)
downloadillumos-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.c49
-rw-r--r--usr/src/uts/sparc/krtld/kobj_reloc.c2
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);