Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/linville/wireles...
[linux-2.6] / scripts / kconfig / kconfig_load.c
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
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 }