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 
kconfig_load(void)11 void 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