blob: 07a01ca48a48a1d247edd302954f781fe10740e9 [file]
#include "loadable_library.h"
#include <dlfcn.h>
#include <stdio.h>
#include <string.h>
int main() {
if (loadable_library() != 42) {
fprintf(stderr, "loadable_library() returned wrong value\n");
return 1;
}
Dl_info info;
if (dladdr((void*)&loadable_library, &info) == 0) {
fprintf(stderr, "dladdr failed to find loadable_library symbol\n");
return 1;
}
const char* dylib = strstr(info.dli_fname, ".dylib");
const char* so = strstr(info.dli_fname, ".so");
if (!dylib && !so) {
fprintf(stderr,
"loadable_library is not in a shared library, found in: %s\n",
info.dli_fname);
return 1;
}
return 0;
}