summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/libdl/dlopen.c
blob: 79fa7903c7550e05d7d939d82e6f98cacc960177 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <fcntl.h>
#include <dlfcn.h>
#include <limits.h>

#include "_dl_int.h"

#ifdef __DIET_LD_SO__
static
#endif
void*_dlopen(const char *filename, int flags) {
  struct _dl_handle* ret;
  if (filename) {
    if ((ret=_dl_find_lib(filename))) {
      ++(ret->lnk_count);	/* add a reference */
      return ret;
    }
    return _dl_open(filename,flags);
  }
  /* return 1 as an indicator for dlsym to search ALL global objects */
  return RTLD_DEFAULT;
}

void*dlopen(const char *filename, int flags) {
  _dl_error_location="dlopen";
  return _dlopen(filename,flags|RTLD_USER|RTLD_NOSONAME);
}