Move dlfcn.h availability check to platform_common.h (#1134)

This commit is contained in:
YAMAMOTO Takashi 2022-04-28 13:31:28 +09:00 committed by GitHub
parent 814a76ee89
commit d9d0777051
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 25 additions and 10 deletions

View File

@ -65,6 +65,14 @@ BH_VPRINTF(const char *format, va_list ap);
#define NULL (void *)0
#endif
#if !defined(BH_HAS_DLFCN)
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE)
#define BH_HAS_DLFCN 1
#else
#define BH_HAS_DLFCN 0
#endif
#endif
#ifndef __cplusplus
#ifndef true

View File

@ -41,6 +41,12 @@ typedef pthread_t korp_thread;
#define os_printf printf
#define os_vprintf vprintf
#if defined(CONFIG_LIBC_DLFCN)
#define BH_HAS_DLFCN 1
#else
#define BH_HAS_DLFCN 0
#endif
/* On NuttX, time_t is uint32_t */
#define BH_TIME_T_MAX 0xffffffff

View File

@ -8,14 +8,15 @@
#endif
#include <stdlib.h>
#include <string.h>
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE)
#include <dlfcn.h>
#endif
#include "bh_platform.h"
#include "bh_read_file.h"
#include "wasm_export.h"
#if BH_HAS_DLFCN
#include <dlfcn.h>
#endif
static int app_argc;
static char **app_argv;
@ -47,7 +48,7 @@ print_help()
printf(" for example:\n");
printf(" --addr-pool=1.2.3.4/15,2.3.4.5/16\n");
#endif
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE)
#if BH_HAS_DLFCN
printf(" --native-lib=<lib> Register native libraries to the WASM module, which\n");
printf(" are shared object (.so) files, for example:\n");
printf(" --native-lib=test1.so --native-lib=test2.so\n");
@ -182,7 +183,7 @@ validate_env_str(char *env)
}
#endif
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE)
#if BH_HAS_DLFCN
typedef uint32 (*get_native_lib_func)(char **p_module_name,
NativeSymbol **p_native_symbols);
@ -232,7 +233,7 @@ load_and_register_native_libs(const char **native_lib_list,
return native_handle_count;
}
#endif /* end of defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) */
#endif /* BH_HAS_DLFCN */
#if WASM_ENABLE_MULTI_MODULE != 0
static char *
@ -309,7 +310,7 @@ main(int argc, char *argv[])
const char *addr_pool[8] = { NULL };
uint32 addr_pool_size = 0;
#endif
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE)
#if BH_HAS_DLFCN
const char *native_lib_list[8] = { NULL };
uint32 native_lib_count = 0;
void *native_handle_list[8] = { NULL };
@ -403,7 +404,7 @@ main(int argc, char *argv[])
}
}
#endif /* WASM_ENABLE_LIBC_WASI */
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE)
#if BH_HAS_DLFCN
else if (!strncmp(argv[0], "--native-lib=", 13)) {
if (argv[0][13] == '\0')
return print_help();
@ -485,7 +486,7 @@ main(int argc, char *argv[])
bh_log_set_verbose_level(log_verbose_level);
#endif
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE)
#if BH_HAS_DLFCN
native_handle_count = load_and_register_native_libs(
native_lib_list, native_lib_count, native_handle_list);
#endif
@ -564,7 +565,7 @@ fail2:
os_munmap(wasm_file_buf, wasm_file_size);
fail1:
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE)
#if BH_HAS_DLFCN
/* unload the native libraries */
for (native_handle_idx = 0; native_handle_idx < native_handle_count;
native_handle_idx++)