Changeset b192915a in mainline
- Timestamp:
- 2024-05-29T18:11:25Z (8 months ago)
- Branches:
- master
- Children:
- c576800
- Parents:
- 9b95b964
- Location:
- uspace
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/dltest/dltest.c
r9b95b964 rb192915a 1 1 /* 2 * Copyright (c) 20 16Jiri Svoboda2 * Copyright (c) 2024 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 571 571 #ifdef DLTEST_LINKED 572 572 573 /** Test if we can read the correct value of a public pointer variable. 574 * 575 * dl_public_ptr_var is initialized in libdltest to point to dl_public_var. 576 * This is done using a relocation. The main program (unless compiled with 577 * PIC or PIE) will contain a copy of dl_public_ptr_var. This needs 578 * to be copied using a COPY relocation. The relocations in the main 579 * program need to be processed after the relocations in the shared 580 * libraries (so that we copy the correct value). 581 */ 582 static bool test_public_ptr_var(void) 583 { 584 int *ptr; 585 586 printf("Read dl_public_ptr_var directly...\n"); 587 ptr = dl_public_ptr_var; 588 589 if (ptr != &dl_public_var) { 590 printf("FAILED\n"); 591 return false; 592 } 593 594 printf("Passed\n"); 595 return true; 596 } 597 573 598 /** Test directly calling function that returns a constant */ 574 599 static bool test_lnk_dl_get_constant(void) … … 920 945 921 946 #ifndef STATIC_EXE 947 922 948 if (!test_dlfcn_dl_get_private_fib_var()) 923 949 return 1; … … 974 1000 975 1001 if (!test_lnk_read_public_uvar()) 1002 return 1; 1003 1004 if (!test_public_ptr_var()) 976 1005 return 1; 977 1006 -
uspace/lib/dltest/dltest.c
r9b95b964 rb192915a 1 1 /* 2 * Copyright (c) 20 16Jiri Svoboda2 * Copyright (c) 2024 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 43 43 /** Public initialized variable */ 44 44 int dl_public_var = dl_public_var_val; 45 /** Public variable initialized with the address of a symbol */ 46 int *dl_public_ptr_var = &dl_public_var; 45 47 /** Public uninitialized variable */ 46 48 int dl_public_uvar; -
uspace/lib/dltest/libdltest.h
r9b95b964 rb192915a 1 1 /* 2 * Copyright (c) 20 16Jiri Svoboda2 * Copyright (c) 2024 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 67 67 extern int dl_public_var; 68 68 extern int dl_public_uvar; 69 extern int *dl_public_ptr_var; 69 70 extern fibril_local int dl_public_fib_var; 70 71 extern fibril_local int dl_public_fib_uvar;
Note:
See TracChangeset
for help on using the changeset viewer.