1#include <dlfcn.h> 2#include <stdio.h> 3#include <stdlib.h> 4 5#include "lkc.h" 6 7#define P(name,type,arg) type (*name ## _p) arg 8#include "lkc_proto.h" 9#undef P 10 11void kconfig_load(void) 12{ 13 void *handle; 14 char *error; 15 16 handle = dlopen("./libkconfig.so", RTLD_LAZY); 17 if (!handle) { 18 handle = dlopen("./scripts/kconfig/libkconfig.so", RTLD_LAZY); 19 if (!handle) { 20 fprintf(stderr, "%s\n", dlerror()); 21 exit(1); 22 } 23 } 24 25#define P(name,type,arg) \ 26{ \ 27 name ## _p = dlsym(handle, #name); \ 28 if ((error = dlerror())) { \ 29 fprintf(stderr, "%s\n", error); \ 30 exit(1); \ 31 } \ 32} 33#include "lkc_proto.h" 34#undef P 35} 36