• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Stub dlfcn implementation for systems that lack shared library support
3  * but obviously can still reference compiled-in symbols.
4  */
5 
6 #ifndef NO_SHARED_LIBS
7 #include_next <dlfcn.h>
8 #else
9 
10 #define RTLD_LAZY 0
11 #define _FAKE_DLFCN_HDL (void *)0xbeefcafe
12 
dlopen(const char * file,int flag)13 static inline void *dlopen(const char *file, int flag)
14 {
15 	if (file == NULL)
16 		return _FAKE_DLFCN_HDL;
17 	else
18 		return NULL;
19 }
20 
21 extern void *_dlsym(const char *sym);
dlsym(void * handle,const char * sym)22 static inline void *dlsym(void *handle, const char *sym)
23 {
24 	if (handle != _FAKE_DLFCN_HDL)
25 		return NULL;
26 	return _dlsym(sym);
27 }
28 
dlerror(void)29 static inline char *dlerror(void)
30 {
31 	return NULL;
32 }
33 
dlclose(void * handle)34 static inline int dlclose(void *handle)
35 {
36 	return (handle == _FAKE_DLFCN_HDL) ? 0 : 1;
37 }
38 
39 #endif
40