Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 3551 → Rev 3552

/branches/dynload/uspace/lib/rtld/arch/ia32/_link.ld.in
6,7 → 6,7
}
 
SECTIONS {
. = 0x1000;
. = 0x40001000;
 
.init ALIGN(0x1000) : SUBALIGN(0x1000) {
*(.init);
/branches/dynload/uspace/lib/rtld/arch/ia32/src/runtime.c
58,20 → 58,20
void __attribute__ ((__regparm__ (1)))
*___tls_get_addr(tls_index *ti);
 
void __attribute__ ((__regparm__ (1)))
*___tls_get_addr(tls_index *ti)
{
size_t tls_size;
uint8_t *tls;
//void __attribute__ ((__regparm__ (1)))
// *___tls_get_addr(tls_index *ti)
//{
// size_t tls_size;
// uint8_t *tls;
//
// /* Calculate size of TLS block */
// tls_size = ALIGN_UP(&_tbss_end - &_tdata_start, &_tls_alignment);
//
// /* The TLS block is just before TCB */
// tls = (uint8_t *)__tcb_get() - tls_size;
//
// return tls + ti->ti_offset;
//}
 
/* Calculate size of TLS block */
tls_size = ALIGN_UP(&_tbss_end - &_tdata_start, &_tls_alignment);
 
/* The TLS block is just before TCB */
tls = (uint8_t *)__tcb_get() - tls_size;
 
return tls + ti->ti_offset;
}
 
/** @}
*/
/branches/dynload/uspace/lib/rtld/arch/ia32/src/bootstrap.c
105,7 → 105,7
rel_entries = 0;
jmp_rel_table = 0;
jmp_rel_entries = 0;
 
/*
i = 0;
while (dynamic[i].d_tag != 0) {
dptr = (void *)(dynamic[i].d_un.d_val + bias);
114,9 → 114,9
switch (dynamic[i].d_tag) {
case DT_PLTRELSZ: jmp_rel_entries = dval/8; break;
case DT_JMPREL: jmp_rel_table = dptr; break;
case DT_PLTGOT:
case DT_PLTGOT:*/
/* GOT address */
got = dptr; break;
/*got = dptr; break;
case DT_SYMTAB: sym_table = dptr; break;
case DT_REL: rel_table = dptr; break;
case DT_RELSZ: rel_entries = dval / 8; break;
125,7 → 125,7
 
++i;
}
*/
// kputint(1);
// kputint((unsigned)sym_table);
// kputint((unsigned)rel_table);
133,7 → 133,7
 
/* Now relocate all our dynsyms */
// kputint(-1);
/*
for (i=0; i<rel_entries; i++) {
kputint(i);
r_offset = rel_table[i].r_offset;
174,9 → 174,9
break;
}
}
 
*/
kputint(-1);
/*
for (i=0; i<jmp_rel_entries; i++) {
kputint(i);
r_offset = jmp_rel_table[i].r_offset;
217,7 → 217,7
break;
}
}
 
*/
kputint(-1);
kputint(0x42);