blob: b0be5a0f49f11518178e38cd743a50a0496fe79f [file] [log] [blame]
lh9ed821d2023-04-07 01:36:19 -07001/*
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
13static 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
21extern void *_dlsym(const char *sym);
22static inline void *dlsym(void *handle, const char *sym)
23{
24 if (handle != _FAKE_DLFCN_HDL)
25 return NULL;
26 return _dlsym(sym);
27}
28
29static inline char *dlerror(void)
30{
31 return NULL;
32}
33
34static inline int dlclose(void *handle)
35{
36 return (handle == _FAKE_DLFCN_HDL) ? 0 : 1;
37}
38
39#endif