Mercurial > pub > dyncall > dyncall
comparison test/dynload_plain/dynload_plain.c @ 223:7076f551faf5
- dynload mach-o handling fixes for 64bit platforms
- dynload test code improvements
- dynload(3) clarification
author | Tassilo Philipp |
---|---|
date | Sat, 15 Apr 2017 15:21:37 +0200 |
parents | cb56f077fd37 |
children | 8216c86b4cbc |
comparison
equal
deleted
inserted
replaced
222:700c67984c08 | 223:7076f551faf5 |
---|---|
44 "/lib64/libc.so.6", | 44 "/lib64/libc.so.6", |
45 "/lib64/libc.so.7", | 45 "/lib64/libc.so.7", |
46 "/lib32/libc.so", | 46 "/lib32/libc.so", |
47 "/lib32/libc.so.6", | 47 "/lib32/libc.so.6", |
48 "/lib32/libc.so.7", | 48 "/lib32/libc.so.7", |
49 "/usr/lib/system/libsystem_c.dylib", | |
49 "/usr/lib/libc.dylib", | 50 "/usr/lib/libc.dylib", |
50 "C:\\Windows\\system32\\msvcrt.dll" | 51 "C:\\Windows\\system32\\msvcrt.dll" |
51 }; | 52 }; |
52 | 53 |
53 | 54 |
54 for(i=0; i<(sizeof(clibs)/sizeof(const char*)); ++i) { | 55 for(i=0; i<(sizeof(clibs)/sizeof(const char*)); ++i) { |
55 if(access(clibs[i], F_OK) != -1) | 56 if(access(clibs[i], F_OK) != -1) { |
56 path = clibs[i]; | 57 path = clibs[i]; |
58 break; | |
59 } | |
57 } | 60 } |
58 | 61 |
59 if(path) { | 62 if(path) { |
60 printf("using clib to test at: %s\n", path); | 63 printf("using clib to test at: %s\n", path); |
61 ++r; | 64 ++r; |
98 break; | 101 break; |
99 } | 102 } |
100 } | 103 } |
101 printf("printf symbol found by iteration: %d\n", i<n); | 104 printf("printf symbol found by iteration: %d\n", i<n); |
102 | 105 |
103 name = dlSymsName(pSyms, i); | 106 name = (i<n) ? dlSymsName(pSyms, i) : NULL; |
104 r += (name && strcmp(name, "printf") == 0); // check if we can lookup "printf" by index | 107 r += (name && strcmp(name, "printf") == 0); // check if we can lookup "printf" by index |
105 printf("printf symbol name by index: %s\n", name?name:""); | 108 printf("printf symbol name by index: %s\n", name?name:""); |
106 | 109 |
107 pLib = dlLoadLibrary(path); // check if we can resolve ptr -> name, | 110 pLib = dlLoadLibrary(path); // check if we can resolve ptr -> name, |
108 if(pLib) { // need to lookup by name again, first | 111 if(pLib) { // need to lookup by name again, first |