Changes in uspace/lib/c/generic/rtld/module.c [ffccdff0:b27ae65a] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/rtld/module.c
rffccdff0 rb27ae65a 1 1 /* 2 * Copyright (c) 20 08Jiri Svoboda2 * Copyright (c) 2024 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 343 343 { 344 344 list_foreach(rtld->modules, modules_link, module_t, m) { 345 /* Skip rtld module, since it has already been processed */ 346 if (m != &rtld->rtld) { 345 /* 346 * Skip rtld module, since it has already been processed. 347 * Skip start / main program -- leave it for later 348 */ 349 if (m != &rtld->rtld && m != start) { 347 350 module_process_relocs(m); 348 351 } 349 352 } 353 354 /* 355 * Now that shared libraries have been processed and their variables 356 * are thus initialized, we can process the main program, 357 * which may contain COPY relocations that copy value from shared 358 * library variables to instances of those variables defined 359 * in the main program. 360 */ 361 module_process_relocs(start); 350 362 } 351 363 … … 386 398 * be correct, "zero" offset (i.e. the total size) must be aligned 387 399 * to the strictest alignment present. 388 * Note that the padding is actually in front of the TLS data,389 * not after it.390 400 */ 391 401 rtld->tls_size = ALIGN_UP(rtld->tls_size, rtld->tls_align); 392 402 393 /* Space for the TCB. */ 403 /* 404 * Space for the TCB. 405 * Later, the TLS zero offset is equal to the pointer to tcb_t, so 406 * adding the sizeof(tcb_t) block AFTER we calculated the alignment 407 * of the remainder above is correct. 408 */ 394 409 rtld->tls_size += sizeof(tcb_t); 395 410 #endif
Note:
See TracChangeset
for help on using the changeset viewer.