summaryrefslogtreecommitdiffstats
path: root/libexec
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2012-03-29 17:50:01 +0000
committerkib <kib@FreeBSD.org>2012-03-29 17:50:01 +0000
commitff300c96d0e017746625b9b455b97b00f3997d75 (patch)
tree8ab617b8f949f527b1bd86b67b9dc9ab2b950cc8 /libexec
parent9cb839a32c6a135485c4573a69c278031667e9c5 (diff)
downloadFreeBSD-src-ff300c96d0e017746625b9b455b97b00f3997d75.zip
FreeBSD-src-ff300c96d0e017746625b9b455b97b00f3997d75.tar.gz
Fix ia64 build after r233655.
MFC after: 1 week
Diffstat (limited to 'libexec')
-rw-r--r--libexec/rtld-elf/rtld.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c
index 828b8b4..d3ce3c6 100644
--- a/libexec/rtld-elf/rtld.c
+++ b/libexec/rtld-elf/rtld.c
@@ -2618,7 +2618,9 @@ do_dlsym(void *handle, const char *name, void *retaddr, const Ver_Entry *ve,
const Elf_Sym *def;
SymLook req;
RtldLockState lockstate;
+#ifndef __ia64__
tls_index ti;
+#endif
int res;
def = NULL;
@@ -2734,9 +2736,13 @@ do_dlsym(void *handle, const char *name, void *retaddr, const Ver_Entry *ve,
else if (ELF_ST_TYPE(def->st_info) == STT_GNU_IFUNC)
return (rtld_resolve_ifunc(defobj, def));
else if (ELF_ST_TYPE(def->st_info) == STT_TLS) {
+#ifdef __ia64__
+ return (__tls_get_addr(defobj->tlsindex, def->st_value));
+#else
ti.ti_module = defobj->tlsindex;
ti.ti_offset = def->st_value;
return (__tls_get_addr(&ti));
+#endif
} else
return (defobj->relocbase + def->st_value);
}
OpenPOWER on IntegriCloud