Changeset 6adb775f in mainline for uspace/lib/c/arch/ia32/src
- Timestamp:
- 2016-04-25T16:46:31Z (9 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 32573ff
- Parents:
- dc0d8b52
- Location:
- uspace/lib/c/arch/ia32/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/arch/ia32/src/rtld/reloc.c
rdc0d8b52 r6adb775f 171 171 break; 172 172 173 // case R_386_TLS_DTPOFF32: 174 // *r_ptr = sym_def->st_value; 175 // break; 176 173 177 case R_386_TLS_DTPMOD32: 174 /* 175 * We can ignore this as long as the only module 176 * with TLS variables is libc.so. 177 */ 178 DPRINTF("Ignoring R_386_TLS_DTPMOD32\n"); 178 *r_ptr = dest->id; 179 179 break; 180 180 -
uspace/lib/c/arch/ia32/src/tls.c
rdc0d8b52 r6adb775f 1 1 /* 2 2 * Copyright (c) 2006 Ondrej Palkovsky 3 * Copyright (c) 2016 Jiri Svoboda 3 4 * All rights reserved. 4 5 * … … 39 40 #include <align.h> 40 41 42 #ifdef CONFIG_RTLD 43 #include <rtld/rtld.h> 44 #endif 45 41 46 tcb_t *tls_alloc_arch(void **data, size_t size) 42 47 { … … 68 73 69 74 /* Calculate size of TLS block */ 70 tls_size = ALIGN_UP(&_tbss_end - &_tdata_start, &_tls_alignment);75 tls_size = tls_get_size(); 71 76 72 77 /* The TLS block is just before TCB */ 73 78 tls = (uint8_t *)__tcb_get() - tls_size; 74 79 80 #ifdef CONFIG_RTLD 81 if (runtime_env != NULL) { 82 return rtld_tls_get_addr(runtime_env, tls, ti->ti_module, 83 ti->ti_offset); 84 } 85 #endif 75 86 return tls + ti->ti_offset; 76 87 }
Note:
See TracChangeset
for help on using the changeset viewer.