/branches/dynload/uspace/lib/libtest/arch/mips32/_link.ld.in |
---|
File deleted |
/branches/dynload/uspace/lib/libc/shared/arch/mips32/_lib.ld.in |
---|
File deleted |
/branches/dynload/uspace/lib/libc/shared/arch/mips32/_link.ld.in |
---|
File deleted |
/branches/dynload/uspace/lib/libc/Makefile |
---|
119,7 → 119,7 |
-makedepend $(DEFS) $(PIC_CFLAGS) -o.pio -f - $(ARCH_SOURCES) $(GENERIC_SOURCES) >> Makefile.depend 2> /dev/null |
libc.a: depend $(OBJECTS) |
$(AR) rc $@ $(LIBS) $(OBJECTS) |
$(AR) rc $@ $(LIBS) $(OBJECTS) $(RTLD_PREFIX)/librtld.a |
libc.pic.a: depend $(PIC_OBJECTS) |
$(AR) rc $@ $(LIBS) $(PIC_OBJECTS) |
/branches/dynload/uspace/lib/libc/arch/mips32/src/tls.c |
---|
46,25 → 46,5 |
tls_free_variant_1(tcb, size); |
} |
typedef struct { |
unsigned long ti_module; |
unsigned long ti_offset; |
} tls_index; |
void *__tls_get_addr(tls_index *ti); |
/* mips32 uses TLS variant 1 */ |
void *__tls_get_addr(tls_index *ti) |
{ |
uint8_t *tls; |
uint32_t v; |
tls = (uint8_t *)__tcb_get() + sizeof(tcb_t); |
/* Hopefully this is right. No docs found. */ |
v = (uint32_t) (tls + ti->ti_offset + 0x8000); |
return (void *) v; |
} |
/** @} |
*/ |
/branches/dynload/uspace/lib/rtld/symbol.c |
---|
212,15 → 212,8 |
} |
} |
/* Not DT_SYMBOLIC or no match. Now try other locations. */ |
if (runtime_env->program) { |
/* Program is dynamic -- start with program as root. */ |
return symbol_bfs_find(name, runtime_env->program, mod); |
} else { |
/* Program is static -- start with @a origin as root. */ |
return symbol_bfs_find(name, origin, mod); |
} |
/* Otherwise start in the executable program */ |
return symbol_bfs_find(name, runtime_env->program, mod); |
} |
uintptr_t symbol_get_addr(elf_symbol_t *sym, module_t *m) |
/branches/dynload/uspace/lib/rtld/arch/mips32/Makefile.inc |
---|
File deleted |
/branches/dynload/uspace/lib/rtld/arch/mips32/src/dynamic.c |
---|
File deleted |
/branches/dynload/uspace/lib/rtld/arch/mips32/src/reloc.c |
---|
File deleted |
/branches/dynload/uspace/lib/rtld/arch/mips32/include/elf_dyn.h |
---|
File deleted |
/branches/dynload/uspace/lib/rtld/arch/mips32/include/dynamic.h |
---|
File deleted |
/branches/dynload/uspace/lib/rtld/arch/ia32/src/dynamic.c |
---|
File deleted |
/branches/dynload/uspace/lib/rtld/arch/ia32/include/dynamic.h |
---|
File deleted |
/branches/dynload/uspace/lib/rtld/arch/ia32/Makefile.inc |
---|
29,5 → 29,4 |
CFLAGS += -D__32_BITS__ |
ARCH_SOURCES := \ |
arch/$(ARCH)/src/dynamic.c \ |
arch/$(ARCH)/src/reloc.c |
/branches/dynload/uspace/lib/rtld/arch/ppc32/include/dynamic.h |
---|
File deleted |
/branches/dynload/uspace/lib/rtld/arch/ppc32/src/dynamic.c |
---|
File deleted |
/branches/dynload/uspace/lib/rtld/arch/ppc32/src/reloc.c |
---|
85,9 → 85,6 |
{ |
uint32_t *plt; |
uint32_t *_plt_ent; |
/* No lazy linking -- no pre-processing yet. */ |
return; |
plt = m->dyn.plt_got; |
if (!plt) { |
/branches/dynload/uspace/lib/rtld/arch/ppc32/Makefile.inc |
---|
29,5 → 29,4 |
CFLAGS += -D__32_BITS__ |
ARCH_SOURCES := \ |
arch/$(ARCH)/src/dynamic.c \ |
arch/$(ARCH)/src/reloc.c |
/branches/dynload/uspace/lib/rtld/include/dynamic.h |
---|
37,7 → 37,6 |
#include <bool.h> |
#include <elf_dyn.h> |
#include <arch/dynamic.h> |
/** |
* Holds the data extracted from an ELF Dynamic section. |
46,7 → 45,7 |
* to their final run-time values by adding the load bias |
* and indices into the symbol table are converted to pointers. |
*/ |
typedef struct dyn_info { |
typedef struct { |
/** Type of relocations used for the PLT, either DT_REL or DT_RELA */ |
int plt_rel; |
93,13 → 92,9 |
/** Pointer to the module's dynamic section */ |
elf_dyn_t *dynamic; |
/** Architecture-specific info. */ |
dyn_info_arch_t arch; |
} dyn_info_t; |
void dynamic_parse(elf_dyn_t *dyn_ptr, size_t bias, dyn_info_t *info); |
void dyn_parse_arch(elf_dyn_t *dp, size_t bias, dyn_info_t *info); |
#endif |
/branches/dynload/uspace/lib/rtld/dynamic.c |
---|
87,10 → 87,7 |
case DT_JMPREL: info->jmp_rel = d_ptr; break; |
case DT_BIND_NOW: info->bind_now = true; break; |
default: |
if (dp->d_tag >= DT_LOPROC && dp->d_tag <= DT_HIPROC) |
dyn_parse_arch(dp, bias, info); |
break; |
default: break; |
} |
++dp; |