pthread_ enabling tls, not yet working
This commit is contained in:
@@ -179,7 +179,7 @@ _rtld_relocate_nonplt_objects(Obj_Entry *obj)
|
||||
rdbg(("COPY (avoid in main)"));
|
||||
break;
|
||||
|
||||
#if defined(__minix) && defined(__HAVE_TLS_VARIANT_I) || defined(__HAVE_TLS_VARIANT_II)
|
||||
#if defined(__minix) && (defined(__HAVE_TLS_VARIANT_I) || defined(__HAVE_TLS_VARIANT_II))
|
||||
case R_TYPE(TLS_DTPOFF32):
|
||||
def = _rtld_find_symdef(symnum, obj, &defobj, false);
|
||||
if (def == NULL)
|
||||
@@ -232,7 +232,7 @@ _rtld_relocate_nonplt_objects(Obj_Entry *obj)
|
||||
obj->strtab + obj->symtab[symnum].st_name,
|
||||
obj->path, (void *)tmp));
|
||||
break;
|
||||
#endif /* defined(__minix) && defined(__HAVE_TLS_VARIANT_I) || defined(__HAVE_TLS_VARIANT_II) */
|
||||
#endif /* defined(__minix) && (defined(__HAVE_TLS_VARIANT_I) || defined(__HAVE_TLS_VARIANT_II)) */
|
||||
|
||||
default:
|
||||
rdbg(("sym = %lu, type = %lu, offset = %p, "
|
||||
|
||||
@@ -120,7 +120,7 @@ _rtld_relocate_nonplt_objects(Obj_Entry *obj)
|
||||
rdbg(("COPY (avoid in main)"));
|
||||
break;
|
||||
|
||||
#if defined(__minix) && defined(__HAVE_TLS_VARIANT_I) || defined(__HAVE_TLS_VARIANT_II)
|
||||
#if defined(__minix) && (defined(__HAVE_TLS_VARIANT_I) || defined(__HAVE_TLS_VARIANT_II))
|
||||
case R_TYPE(TLS_TPOFF):
|
||||
def = _rtld_find_symdef(symnum, obj, &defobj, false);
|
||||
if (def == NULL)
|
||||
@@ -176,7 +176,7 @@ _rtld_relocate_nonplt_objects(Obj_Entry *obj)
|
||||
obj->path, (void *)*where));
|
||||
|
||||
break;
|
||||
#endif /* defined(__minix) && defined(__HAVE_TLS_VARIANT_I) || defined(__HAVE_TLS_VARIANT_II) */
|
||||
#endif /* defined(__minix) && (defined(__HAVE_TLS_VARIANT_I) || defined(__HAVE_TLS_VARIANT_II)) */
|
||||
|
||||
default:
|
||||
rdbg(("sym = %lu, type = %lu, offset = %p, "
|
||||
@@ -283,7 +283,7 @@ _rtld_relocate_plt_objects(const Obj_Entry *obj)
|
||||
return err;
|
||||
}
|
||||
|
||||
#if defined(__minix) && defined(__HAVE_TLS_VARIANT_I) || defined(__HAVE_TLS_VARIANT_II)
|
||||
#if defined(__minix) && (defined(__HAVE_TLS_VARIANT_I) || defined(__HAVE_TLS_VARIANT_II))
|
||||
/*
|
||||
* i386 specific GNU variant of __tls_get_addr using register based
|
||||
* argument passing.
|
||||
@@ -305,4 +305,4 @@ ___tls_get_addr(void *arg_)
|
||||
|
||||
return _rtld_tls_get_addr(tcb, idx, offset);
|
||||
}
|
||||
#endif /* defined(__minix) && defined(__HAVE_TLS_VARIANT_I) || defined(__HAVE_TLS_VARIANT_II) */
|
||||
#endif /* defined(__minix) && (defined(__HAVE_TLS_VARIANT_I) || defined(__HAVE_TLS_VARIANT_II)) */
|
||||
|
||||
@@ -95,10 +95,10 @@ _rtld_map_object(const char *path, int fd, const struct stat *sb)
|
||||
#endif
|
||||
Elf_Addr phdr_vaddr;
|
||||
size_t phdr_memsz;
|
||||
#if defined(__minix) && (defined(__HAVE_TLS_VARIANT_I) || defined(__HAVE_TLS_VARIANT_II))
|
||||
#if !defined(__minix)
|
||||
caddr_t gap_addr;
|
||||
size_t gap_size;
|
||||
#endif /* defined(__minix) */
|
||||
#endif /* !defined(__minix) */
|
||||
int i;
|
||||
#ifdef RTLD_LOADER
|
||||
Elf_Addr clear_vaddr;
|
||||
|
||||
@@ -111,9 +111,9 @@ static void *auxinfo;
|
||||
char *__progname;
|
||||
char **environ;
|
||||
|
||||
#if !defined(__minix)
|
||||
#if defined(__minix) && (defined(__HAVE_TLS_VARIANT_I) || defined(__HAVE_TLS_VARIANT_II))
|
||||
static volatile bool _rtld_mutex_may_recurse;
|
||||
#endif /* !defined(__minix) */
|
||||
#endif /* !defined(__minix) && (defined(__HAVE_TLS_VARIANT_I) || defined(__HAVE_TLS_VARIANT_II)) */
|
||||
|
||||
#if defined(RTLD_DEBUG)
|
||||
#ifndef __sh__
|
||||
@@ -1524,7 +1524,7 @@ _rtld_objlist_remove(Objlist *list, Obj_Entry *obj)
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(__minix)
|
||||
#if defined(__minix) && !(defined(__HAVE_TLS_VARIANT_I) || defined(__HAVE_TLS_VARIANT_II))
|
||||
void _rtld_shared_enter(void) {}
|
||||
void _rtld_shared_exit(void) {}
|
||||
void _rtld_exclusive_enter(sigset_t *mask) {}
|
||||
@@ -1655,4 +1655,4 @@ _rtld_exclusive_exit(sigset_t *mask)
|
||||
|
||||
sigprocmask(SIG_SETMASK, mask, NULL);
|
||||
}
|
||||
#endif /* !defined(__minix) */
|
||||
#endif /* defined(__minix) && !(defined(__HAVE_TLS_VARIANT_I) || defined(__HAVE_TLS_VARIANT_II)) */
|
||||
|
||||
Reference in New Issue
Block a user