• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (C) 2017 The Android Open Source Project
2 // SPDX-License-Identifier: BSD-2-Clause
3 
4 #include <dlfcn.h>
5 
6 #include "header_checks.h"
7 
dlfcn_h()8 static void dlfcn_h() {
9   MACRO(RTLD_LAZY);
10   MACRO(RTLD_NOW);
11   MACRO(RTLD_GLOBAL);
12   MACRO(RTLD_LOCAL);
13 
14 #if !defined(__GLIBC__)  // Our glibc is too old.
15   TYPE(Dl_info);
16   STRUCT_MEMBER(Dl_info, const char*, dli_fname);
17   STRUCT_MEMBER(Dl_info, void*, dli_fbase);
18   STRUCT_MEMBER(Dl_info, const char*, dli_sname);
19   STRUCT_MEMBER(Dl_info, void*, dli_saddr);
20 #endif
21 
22 #if !defined(__GLIBC__)  // Our glibc is too old.
23   FUNCTION(dladdr, int (*f)(const void*, Dl_info*));
24 #endif
25   FUNCTION(dlclose, int (*f)(void*));
26   FUNCTION(dlerror, char* (*f)(void));
27   FUNCTION(dlopen, void* (*f)(const char*, int));
28   FUNCTION(dlsym, void* (*f)(void*, const char*));
29 }
30