Changeset 328b89f in mainline
- Timestamp:
- 2025-01-24T23:50:40Z (11 days ago)
- Children:
- 544c5b4
- Parents:
- bf0716f
- git-author:
- Matěj Volf <git@…> (2025-01-24 23:49:43)
- git-committer:
- Matěj Volf <git@…> (2025-01-24 23:50:40)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/thread/tls.c
rbf0716f r328b89f 59 59 #endif 60 60 61 static ptrdiff_t _tcb_data_offset( void)61 static ptrdiff_t _tcb_data_offset(const void* elf) 62 62 { 63 63 const elf_segment_header_t *tls = 64 elf_get_phdr( __progsymbols.elfstart, PT_TLS);64 elf_get_phdr(elf, PT_TLS); 65 65 66 66 size_t tls_align = tls ? tls->p_align : 1; … … 80 80 assert(runtime_env == NULL); 81 81 #endif 82 return (uint8_t *)__tcb_get() + _tcb_data_offset( );82 return (uint8_t *)__tcb_get() + _tcb_data_offset(__progsymbols.elfstart); 83 83 } 84 84 … … 114 114 #ifdef CONFIG_TLS_VARIANT_1 115 115 tcb_t *tcb = area; 116 uint8_t *data = (uint8_t *)tcb + _tcb_data_offset( );116 uint8_t *data = (uint8_t *)tcb + _tcb_data_offset(elf); 117 117 memset(tcb, 0, sizeof(*tcb)); 118 118 #else 119 119 uint8_t *data = area; 120 tcb_t *tcb = (tcb_t *) (data - _tcb_data_offset( ));120 tcb_t *tcb = (tcb_t *) (data - _tcb_data_offset(elf)); 121 121 memset(tcb, 0, sizeof(tcb_t)); 122 122 tcb->self = tcb;
Note:
See TracChangeset
for help on using the changeset viewer.