diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-03-09 13:19:48 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-03-09 13:20:02 +0000 |
commit | 58daab21cd043e1dc37024a7f99b396788372918 (patch) | |
tree | 96771e43bb69f7c1c2b0b4f7374cb74d7866d0cb /fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk | |
parent | Releasing debian version 1.43.2-1. (diff) | |
download | netdata-58daab21cd043e1dc37024a7f99b396788372918.tar.xz netdata-58daab21cd043e1dc37024a7f99b396788372918.zip |
Merging upstream version 1.44.3.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk')
28 files changed, 1619 insertions, 0 deletions
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/Kconfig b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/Kconfig new file mode 100644 index 00000000..96c23a83 --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/Kconfig @@ -0,0 +1,84 @@ +mainmenu "WebAssembly Micro Runtime Configuration" + +choice + prompt "select a build target" + + config TARGET_X86_64 + bool "X86_64" + + config TARGET_X86_32 + bool "X86_32" + +endchoice + +choice + prompt "select a target platform" + + config PLATFORM_LINUX + bool "Linux" + +endchoice + +menu "select execution mode" + comment "At least one execution mode must be selected" + config EXEC_AOT + bool "AOT" + depends on PLATFORM_LINUX + + config EXEC_JIT + bool "JIT" + depends on PLATFORM_LINUX + select BUILD_LLVM + + config BUILD_LLVM + bool "build llvm (this may take a long time)" + depends on EXEC_JIT + help + llvm library is required by JIT mode. + + config EXEC_INTERP + bool "INTERPRETER" + default y +endmenu + +choice + prompt "libc support" + + config LIBC_BUILTIN + bool "builtin libc" + help + use builtin libc, this is a minimal subset of libc. + + config LIBC_WASI + bool "WebAssembly System Interface [WASI]" + depends on PLATFORM_LINUX + help + enable WebAssembly System Interface + +endchoice + +choice + prompt "application framework" + config APP_FRAMEWORK_DISABLE + bool "Disable app framework" + help + Disable wamr app framework + + config APP_FRAMEWORK_DEFAULT + bool "Default components" + help + Default components + + config APP_FRAMEWORK_ALL + bool "All components" + + config APP_FRAMEWORK_CUSTOM + bool "customized module config" + + menu "modules:" + depends on APP_FRAMEWORK_CUSTOM + + source ".wamr_modules" + + endmenu +endchoice diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/Makefile b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/Makefile new file mode 100644 index 00000000..a0824aea --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/Makefile @@ -0,0 +1,10 @@ +# Copyright (C) 2019 Intel Corporation. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +# # This will generate SDK for both runtime and wasm application +config: + ./build_sdk.sh -i + +menuconfig: + ./menuconfig.sh + diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/README.md b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/README.md new file mode 100644 index 00000000..14b172e0 --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/README.md @@ -0,0 +1,133 @@ +# WebAssembly Micro Runtime SDK + +Usually there are two tasks for integrating the WAMR into a particular project: + +- Select what WAMR components (vmcore, libc, app-mgr, app-framework components) to be integrated, and get the associated source files added into the project building configuration +- Generate the APP SDK for developing the WASM apps on the selected libc and framework components + +The **[WAMR SDK](./wamr-sdk)** tools is helpful to finish the two tasks quickly. It supports menu configuration for selecting WAMR components and builds the WAMR to a SDK package that includes **runtime SDK** and **APP SDK**. The runtime SDK is used for building the native application and the APP SDK should be shipped to WASM application developers. + + +**Note**: [WASI-SDK](https://github.com/CraneStation/wasi-sdk/releases) version 7 and above should be installed before building the WAMR SDK. + + + +### SDK profile and configuration file + +A SDK profile presents a configuration of build parameters for the selection of CPU architecture, software platforms, execution mode, libc and application framework components. The profile configurations are saved in a cmake file that will be included by the WAMR SDK building tool `build_sdk.sh`. + +Here is the default configuration file [wamr-sdk/wamr_config_default.cmake](./wamr_config_default.cmake): + +``` +set (WAMR_BUILD_PLATFORM "linux") +set (WAMR_BUILD_TARGET X86_64) +set (WAMR_BUILD_INTERP 1) +set (WAMR_BUILD_AOT 1) +set (WAMR_BUILD_JIT 0) +set (WAMR_BUILD_LIBC_BUILTIN 1) +set (WAMR_BUILD_LIBC_WASI 0) +set (WAMR_BUILD_APP_FRAMEWORK 1) +set (WAMR_BUILD_APP_LIST WAMR_APP_BUILD_BASE) +``` + + + +Execute following command to build the WAMR SDK for a configuration profile: + +``` +cd wamr-sdk +./build_sdk.sh -n [profile name] -x [config file path] +``` + +The output directory structure of a SDK package with profile name "simple": + +``` +simple/ +├── app-sdk +│ ├── libc-builtin-sysroot +│ │ ├── include +│ │ └── share +│ └── wamr-app-framework +│ ├── include +│ │ ├── bi-inc +│ │ └── wa-inc +│ ├── lib +│ └── share +└── runtime-sdk + ├── include + │ └── bi-inc + └── lib +``` + + + +Like the WAMR samples, a project probably has its own pre-defined SDK configuration file. The project building script can call the `build_sdk.sh` by passing the configuration file name to the build_sdk.sh to generate its own WAMR SDK package. + + + +### Menu configuration for building SDK + +Menu configuration is supported for easy integration of runtime components and application libraries for the target architecture and platform. Run following command to start the menu config. + +``` +cd wamr-sdk +./build_sdk.sh -i -n [profile name] +``` + + The argument "-i" will make the command enter menu config mode as depicted below. + +<img src="../doc/pics/wamr_menu_config.png" alt="wamr build menu configuration" style="zoom:80%;" /> + +After the menu configuration is finished, the profile config file is saved and the building process is automatically started. When the building gets successful, the SDK package is generated under folder $wamr-sdk/out/{profile}, and the header files of configured components were copied into the SDK package. + + + +### Build WASM applications with APP-SDK + +The folder “**app-sdk**” under the profile output directory contains all the header files and WASM library for developing the WASM application. For C/C++ based WASM applications, the developers can use conventional cross-compilation procedure to build the WASM application. According to the profile selection of libc, following cmake toolchain files under folder [wamr-sdk/app](./app) are available for cross compiling WASM application: + +- ` wamr_toolchain.cmake` +- `wasi_toolchain.cmake` + + + +Refer to [build WASM applications](../doc/build_wasm_app.md) for the details. + + + +### Use Runtime SDK to build native application + +The output folder "**runtime-sdk**" contains all the header files and library files for integration with project native code. + +You can link the pre-built library: +``` cmake +link_directories(${SDK_DIR}/runtime-sdk/lib) +include_directories(${SDK_DIR}/runtime-sdk/include) +# ...... +target_link_libraries (your_target vmlib -lm -ldl -lpthread) +``` + +This method can also be used when you don't use cmake + +You can refer to this sample: [CMakeLists.txt](../samples/simple/CMakeLists.txt). + +> NOTE: If you are familiar with how to configure WAMR by cmake and don't want to build the SDK, you can set the related settings on the top of your `CMakeLists.txt`, then the `runtime_lib.cmake` will not load settings from the SDK. + + + +### Integrate WAMR without pre-built WAMR library + +Use the provided `runtime_lib.cmake` file: + +You can include `${WAMR_ROOT}/cmake/runtime_lib.cmake` in your project's `CMakeLists.txt` file: + +``` cmake +include (${WAMR_ROOT}/cmake/runtime_lib.cmake) +add_library (vmlib ${WAMR_RUNTIME_LIB_SOURCE}) +# ...... +target_link_libraries (your_target vmlib -lm -ldl -lpthread) +``` + +You can refer to to product-mini building for Linux: [`product-mini/platforms/linux/CMakeLists.txt`](../product-mini/platforms/linux/CMakeLists.txt). + +> diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/CMakeLists.txt b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/CMakeLists.txt new file mode 100644 index 00000000..2e115cf4 --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/CMakeLists.txt @@ -0,0 +1,98 @@ +# Copyright (C) 2019 Intel Corporation. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +cmake_minimum_required(VERSION 2.8) +project(app-framework) + +SET (CMAKE_C_FLAGS "-O3") + +if (NOT DEFINED WAMR_BUILD_SDK_PROFILE) + set (WAMR_BUILD_SDK_PROFILE "default") +endif () + +if (NOT DEFINED CONFIG_PATH) + set (CONFIG_PATH ${CMAKE_CURRENT_LIST_DIR}/../wamr_config_default.cmake) + message(STATUS "CONFIG_PATH set to ${CONFIG_PATH} ") +endif () + +if (NOT EXISTS "${CONFIG_PATH}") + message (FATAL_ERROR "${CONFIG_PATH} not exist") +endif () + +include(${CONFIG_PATH}) + +if (NOT DEFINED OUT_DIR) + set (OUT_DIR "${CMAKE_CURRENT_LIST_DIR}/../out/${WAMR_BUILD_SDK_PROFILE}") +endif () +set (APP_SDK_DIR "${OUT_DIR}/app-sdk") + +if (DEFINED EXTRA_SDK_INCLUDE_PATH) + message(STATUS, "EXTRA_SDK_INCLUDE_PATH = ${EXTRA_SDK_INCLUDE_PATH} ") + include_directories ( + ${EXTRA_SDK_INCLUDE_PATH} + ) +endif () + +if (WAMR_BUILD_LIBC_BUILTIN EQUAL 1) + set (SYSROOT_DIR "${APP_SDK_DIR}/libc-builtin-sysroot") + execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${SYSROOT_DIR}/include) + execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${SYSROOT_DIR}/share) + execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR}/libc-builtin-sysroot/share/defined-symbols.txt ${SYSROOT_DIR}/share) + execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR}/wamr_toolchain.cmake ${APP_SDK_DIR}) + execute_process( + COMMAND ${CMAKE_COMMAND} + -E copy_directory ${CMAKE_CURRENT_LIST_DIR}/libc-builtin-sysroot/include ${SYSROOT_DIR}/include + ) +else() + if (WAMR_BUILD_LIBC_WASI EQUAL 1) + set (SYSROOT_DIR "${APP_SDK_DIR}/wasi-sysroot") + message("sysroot: ${SYSROOT_DIR}") + execute_process(COMMAND ln -s ${WASI_SDK_DIR}/share/wasi-sysroot ${SYSROOT_DIR}) + execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR}/wasi_toolchain.cmake ${APP_SDK_DIR}/wamr_toolchain.cmake) + endif () +endif() + +if (WAMR_BUILD_APP_FRAMEWORK EQUAL 1) + message(WAMR_BUILD_APP_FRAMEWORK) + set (APP_FRAMEWORK_INCLUDE_TYPE "APP") + set (WAMR_APP_OUT_DIR "${APP_SDK_DIR}/wamr-app-framework") + + include(${CMAKE_CURRENT_LIST_DIR}/../../core/app-framework/app_framework.cmake) + + add_library(app_framework + ${WASM_APP_SOURCE_ALL} + ) + + add_custom_command( + TARGET app_framework POST_BUILD + + COMMAND ${CMAKE_COMMAND} -E make_directory ${WAMR_APP_OUT_DIR}/lib + COMMAND ${CMAKE_COMMAND} -E make_directory ${WAMR_APP_OUT_DIR}/include/wa-inc + COMMAND ${CMAKE_COMMAND} -E make_directory ${WAMR_APP_OUT_DIR}/share + COMMAND ${CMAKE_COMMAND} -E copy_directory ${WASM_APP_BI_INC_DIR} ${WAMR_APP_OUT_DIR}/include/bi-inc + COMMAND ${CMAKE_COMMAND} -E copy ${WASM_APP_BASE_DIR}/bh_platform.h ${WAMR_APP_OUT_DIR}/include + COMMAND ${CMAKE_COMMAND} -E copy ${WASM_APP_BASE_DIR}/wasm_app.h ${WAMR_APP_OUT_DIR}/include + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/*.a ${WAMR_APP_OUT_DIR}/lib + + # bi-inc folder should also copy into runtime-sdk + COMMAND ${CMAKE_COMMAND} -E make_directory ${OUT_DIR}/runtime-sdk/include + COMMAND ${CMAKE_COMMAND} -E copy_directory ${WASM_APP_BI_INC_DIR} ${OUT_DIR}/runtime-sdk/include/bi-inc + ) + + # If app-framework is enabled, add the undefined-symbol list to the toolchain file + if (WAMR_BUILD_LIBC_WASI EQUAL 1) + file (APPEND + ${APP_SDK_DIR}/wamr_toolchain.cmake + "SET (CMAKE_EXE_LINKER_FLAGS \"\${CMAKE_EXE_LINKER_FLAGS},--allow-undefined-file=\${CMAKE_CURRENT_LIST_DIR}/wamr-app-framework/share/defined-symbols.txt\" CACHE INTERNAL \"\")" + ) + endif () + + FOREACH (dir IN LISTS WASM_APP_WA_INC_DIR_LIST) + file (COPY ${dir} DESTINATION ${WAMR_APP_OUT_DIR}/include/) + ENDFOREACH (dir) + + if (DEFINED EXTRA_SDK_INCLUDE_PATH) + execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory ${EXTRA_SDK_INCLUDE_PATH} ${WAMR_APP_OUT_DIR}/include) + endif () + +endif() diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/assert.h b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/assert.h new file mode 100644 index 00000000..534a90de --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/assert.h @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2019 Intel Corporation. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + */ + +#ifndef _WAMR_LIBC_ASSERT_H +#define _WAMR_LIBC_ASSERT_H + +#ifdef __cplusplus +extern "C" { +#endif + + + + +#ifdef __cplusplus +} +#endif + +#endif
\ No newline at end of file diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/ctype.h b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/ctype.h new file mode 100644 index 00000000..1a3cd4e5 --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/ctype.h @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2019 Intel Corporation. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + */ + +#ifndef _WAMR_LIBC_CTYPE_H +#define _WAMR_LIBC_CTYPE_H + +#ifdef __cplusplus +extern "C" { +#endif + +int isupper(int c); +int isalpha(int c); +int isspace(int c); +int isgraph(int c); +int isprint(int c); +int isdigit(int c); +int isxdigit(int c); +int tolower(int c); +int toupper(int c); +int isalnum(int c); + +#ifdef __cplusplus +} +#endif + +#endif
\ No newline at end of file diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/errno.h b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/errno.h new file mode 100644 index 00000000..9e9cca19 --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/errno.h @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2019 Intel Corporation. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + */ + +#ifndef _WAMR_LIBC_ERRNO_H +#define _WAMR_LIBC_ERRNO_H + +#ifdef __cplusplus +extern "C" { +#endif + + + + +#ifdef __cplusplus +} +#endif + +#endif
\ No newline at end of file diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/fcntl.h b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/fcntl.h new file mode 100644 index 00000000..a67c24a2 --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/fcntl.h @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2019 Intel Corporation. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + */ + +#ifndef _WAMR_LIBC_FCNTL_H +#define _WAMR_LIBC_FCNTL_H + +#ifdef __cplusplus +extern "C" { +#endif + + + + +#ifdef __cplusplus +} +#endif + +#endif
\ No newline at end of file diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/inttypes.h b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/inttypes.h new file mode 100644 index 00000000..a04ec7be --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/inttypes.h @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2019 Intel Corporation. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + */ + +#ifndef _WAMR_LIBC_INTTYPES_H +#define _WAMR_LIBC_INTTYPES_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include <stdint.h> + + + +#ifdef __cplusplus +} +#endif + +#endif
\ No newline at end of file diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/limits.h b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/limits.h new file mode 100644 index 00000000..d46fb4fc --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/limits.h @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2019 Intel Corporation. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + */ + +#ifndef _WAMR_LIBC_LIMITS_H +#define _WAMR_LIBC_LIMITS_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define CHAR_BIT 8 +#define SCHAR_MIN -128 +#define SCHAR_MAX 127 +#define UCHAR_MAX 255 +#define CHAR_MIN 0 +#define CHAR_MAX 127 +#define MB_LEN_MAX 1 +#define SHRT_MIN -32768 +#define SHRT_MAX +32767 +#define USHRT_MAX 65535 +#define INT_MIN -32768 +#define INT_MAX +32767 +#define UINT_MAX 65535 +#define LONG_MIN -2147483648 +#define LONG_MAX +2147483647 +#define ULONG_MAX 4294967295 + +#ifdef __cplusplus +} +#endif + +#endif
\ No newline at end of file diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/pthread.h b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/pthread.h new file mode 100644 index 00000000..10b3978e --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/pthread.h @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2019 Intel Corporation. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + */ + +#ifndef _WAMR_LIB_PTHREAD_H +#define _WAMR_LIB_PTHREAD_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include <stdint.h> + +/* Data type define of pthread, mutex, cond and key */ +typedef unsigned int pthread_t; +typedef unsigned int pthread_mutex_t; +typedef unsigned int pthread_cond_t; +typedef unsigned int pthread_key_t; + +/* Thread APIs */ +int +pthread_create(pthread_t *thread, const void *attr, + void *(*start_routine)(void *), void *arg); + +int +pthread_join(pthread_t thread, void **retval); + +int +pthread_detach(pthread_t thread); + +int +pthread_cancel(pthread_t thread); + +pthread_t +pthread_self(void); + +void +pthread_exit(void *retval); + +/* Mutex APIs */ +int +pthread_mutex_init(pthread_mutex_t *mutex, const void *attr); + +int +pthread_mutex_lock(pthread_mutex_t *mutex); + +int +pthread_mutex_unlock(pthread_mutex_t *mutex); + +int +pthread_mutex_destroy(pthread_mutex_t *mutex); + +/* Cond APIs */ +int +pthread_cond_init(pthread_cond_t *cond, const void *attr); + +int +pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex); + +int +pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex, + uint64_t useconds); + +int +pthread_cond_signal(pthread_cond_t *cond); + +int +pthread_cond_broadcast(pthread_cond_t *cond); + +int +pthread_cond_destroy(pthread_cond_t *cond); + +/* Pthread key APIs */ +int +pthread_key_create(pthread_key_t *key, void (*destructor)(void *)); + +int +pthread_setspecific(pthread_key_t key, const void *value); + +void * +pthread_getspecific(pthread_key_t key); + +int +pthread_key_delete(pthread_key_t key); + +#ifdef __cplusplus +} +#endif + +#endif /* end of _WAMR_LIB_PTHREAD_H */ diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/semaphore.h b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/semaphore.h new file mode 100644 index 00000000..2e086bdc --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/semaphore.h @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2019 Intel Corporation. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + */ + +#ifndef _WAMR_LIB_SEMAPHORE_H +#define _WAMR_LIB_SEMAPHORE_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include <stdint.h> + +typedef unsigned int sem_t; + +/* Semaphore APIs */ + +sem_t * +sem_open(const char *name, int oflag, int mode, int val); + +int +sem_wait(sem_t *sem); + +int +sem_trywait(sem_t *sem); + +int +sem_post(sem_t *sem); + +int +sem_getvalue(sem_t *restrict sem, int *sval); + +int +sem_unlink(const char *name); + +int +sem_close(sem_t *sem); + +#ifdef __cplusplus +} +#endif + +#endif /* end of _WAMR_LIB_SEMAPHORE_H */ diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/stdarg.h b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/stdarg.h new file mode 100644 index 00000000..50959573 --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/stdarg.h @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2019 Intel Corporation. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + */ + +#ifndef _WAMR_LIBC_STDARG_H +#define _WAMR_LIBC_STDARG_H + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef _VA_LIST +typedef __builtin_va_list va_list; +#define _VA_LIST +#endif +#define va_start(ap, param) __builtin_va_start(ap, param) +#define va_end(ap) __builtin_va_end(ap) +#define va_arg(ap, type) __builtin_va_arg(ap, type) + +#define __va_copy(d, s) __builtin_va_copy(d, s) + +#ifdef __cplusplus +} +#endif + +#endif /* end of _WAMR_LIBC_STDARG_H */ diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/stdbool.h b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/stdbool.h new file mode 100644 index 00000000..29e03f9d --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/stdbool.h @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2019 Intel Corporation. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + */ + +#ifndef _WAMR_LIBC_STDBOOL_H +#define _WAMR_LIBC_STDBOOL_H + +#define __bool_true_false_are_defined 1 + +#ifndef __cplusplus + +#define bool _Bool +#define false 0 +#define true 1 + +#endif /* __cplusplus */ + +#endif
\ No newline at end of file diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/stdint.h b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/stdint.h new file mode 100644 index 00000000..802e9ac5 --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/stdint.h @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2019 Intel Corporation. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + */ + +#ifndef _WAMR_LIBC_STDINT_H +#define _WAMR_LIBC_STDINT_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* clang-format off */ +/* The word size of platform */ +#ifdef __wasm64__ +#define __WORDSIZE 64 +#else +#define __WORDSIZE 32 +#endif + +typedef char int8_t; +typedef short int int16_t; +typedef int int32_t; +typedef long long int int64_t; + +/* Unsigned. */ +typedef unsigned char uint8_t; +typedef unsigned short int uint16_t; +typedef unsigned int uint32_t; +typedef unsigned long long int uint64_t; + +typedef __INTPTR_TYPE__ intptr_t; +typedef __UINTPTR_TYPE__ uintptr_t; + +/* Signed and unsigned */ +#if __WORDSIZE == 64 +#define INT64_C(c) c ## L +#define UINT64_C(c) c ## UL +#define INTMAX_C(c) c ## L +#define UINTMAX_C(c) c ## UL +#else +#define INT64_C(c) c ## LL +#define UINT64_C(c) c ## ULL +#define INTMAX_C(c) c ## LL +#define UINTMAX_C(c) c ## ULL +#endif + + +/* Minimum of signed integral types. */ +# define INT8_MIN (-128) +# define INT16_MIN (-32767-1) +# define INT32_MIN (-2147483647-1) +# define INT64_MIN (-INT64_C(9223372036854775807)-1) + +/* Maximum of signed integral types. */ +# define INT8_MAX (127) +# define INT16_MAX (32767) +# define INT32_MAX (2147483647) +# define INT64_MAX (INT64_C(9223372036854775807)) + +/* Maximum of unsigned integral types. */ +# define UINT8_MAX (255) +# define UINT16_MAX (65535) +# define UINT32_MAX (4294967295U) +# define UINT64_MAX (UINT64_C(18446744073709551615)) + +/* Values to test for integral types holding `void *' pointer. */ +#if __WORDSIZE == 64 +#define INTPTR_MIN INT64_MIN +#define INTPTR_MAX INT64_MAX +#define UINTPTR_MAX UINT64_MAX +#else +#define INTPTR_MIN INT32_MIN +#define INTPTR_MAX INT32_MAX +#define UINTPTR_MAX UINT32_MAX +#endif + +/* Limit of `size_t' type. */ +#if __WORDSIZE == 64 +#define SIZE_MAX UINT64_MAX +#else +#define SIZE_MAX UINT32_MAX +#endif + +/* clang-format on */ + +#ifdef __cplusplus +} +#endif + +#endif
\ No newline at end of file diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/stdio.h b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/stdio.h new file mode 100644 index 00000000..1d51e6dd --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/stdio.h @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2019 Intel Corporation. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + */ + +#ifndef _WAMR_LIBC_STDIO_H +#define _WAMR_LIBC_STDIO_H + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef NULL +# define NULL ((void*) 0) +#endif + +typedef unsigned long size_t; + +int printf(const char *format, ...); +int putchar(int c); +int snprintf(char *str, size_t size, const char *format, ...); +int sprintf(char *str, const char *format, ...); +int puts(char *string); + + +#ifdef __cplusplus +} +#endif + +#endif
\ No newline at end of file diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/stdlib.h b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/stdlib.h new file mode 100644 index 00000000..7eb2cc4b --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/stdlib.h @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2019 Intel Corporation. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + */ + +#ifndef _WAMR_LIBC_STDLIB_H +#define _WAMR_LIBC_STDLIB_H + +#ifdef __cplusplus +extern "C" { +#endif + +typedef unsigned long size_t; + +int atoi(const char *s); +void exit(int status); +long strtol(const char *nptr, char **endptr, register int base); +unsigned long strtoul(const char *nptr, char **endptr, register int base); +void *malloc(size_t size); +void *calloc(size_t n, size_t size); +void free(void *ptr); + + +#ifdef __cplusplus +} +#endif + +#endif
\ No newline at end of file diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/string.h b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/string.h new file mode 100644 index 00000000..e71a168b --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/string.h @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2019 Intel Corporation. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + */ + +#ifndef _WAMR_LIBC_STRING_H +#define _WAMR_LIBC_STRING_H + +#ifdef __cplusplus +extern "C" { +#endif + +typedef unsigned long size_t; + +int memcmp(const void *s1, const void *s2, size_t n); +void *memcpy(void *dest, const void *src, size_t n); +void *memmove(void *dest, const void *src, size_t n); +void *memset(void *s, int c, size_t n); +void *memchr(const void *s, int c, size_t n); +int strncasecmp(const char *s1, const char *s2, size_t n); +size_t strspn(const char *s, const char *accept); +size_t strcspn(const char *s, const char *reject); +char *strstr(const char *s, const char *find); +char *strchr(const char *s, int c); +int strcmp(const char *s1, const char *s2); +char *strcpy(char *dest, const char *src); +size_t strlen(const char *s); +int strncmp(const char * str1, const char * str2, size_t n); +char *strncpy(char *dest, const char *src, unsigned long n); +char * strdup(const char *s); + +#ifdef __cplusplus +} +#endif + +#endif
\ No newline at end of file diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/strings.h b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/strings.h new file mode 100644 index 00000000..7f1bec6f --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/include/strings.h @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2019 Intel Corporation. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + */ + +#ifndef _WAMR_LIBC_STRINGS_H +#define _WAMR_LIBC_STRINGS_H + +#ifdef __cplusplus +extern "C" { +#endif + + + + +#ifdef __cplusplus +} +#endif + +#endif
\ No newline at end of file diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/share/defined-symbols.txt b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/share/defined-symbols.txt new file mode 100644 index 00000000..fc9c400a --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/libc-builtin-sysroot/share/defined-symbols.txt @@ -0,0 +1,87 @@ +wasm_open_connection +wasm_close_connection +wasm_send_on_connection +wasm_config_connection +wasm_sensor_open +wasm_sensor_config +wasm_sensor_config_with_attr_container +wasm_sensor_close +wasm_btn_native_call +wasm_obj_native_call +wasm_label_native_call +wasm_cont_native_call +wasm_page_native_call +wasm_list_native_call +wasm_ddlist_native_call +wasm_cb_native_call +wasm_register_resource +wasm_response_send +wasm_post_request +wasm_sub_event +wasm_create_timer +wasm_timer_destroy +wasm_timer_cancel +wasm_timer_restart +wasm_get_sys_tick_ms +printf +sprintf +snprintf +vprintf +vsprintf +vsnprintf +puts +putchar +memcmp +memcpy +memmove +memset +strchr +strcmp +strcpy +strlen +strncmp +strncpy +malloc +calloc +realloc +strdup +free +atoi +bsearch +exit +strtol +strtoul +memchr +strncasecmp +strspn +strcspn +strstr +isupper +isalpha +isspace +isgraph +isprint +isdigit +isxdigit +tolower +toupper +isalnum +pthread_create +pthread_join +pthread_detach +pthread_cancel +pthread_self +pthread_exit +pthread_mutex_init +pthread_mutex_lock +pthread_mutex_unlock +pthread_mutex_destroy +pthread_cond_init +pthread_cond_wait +pthread_cond_timedwait +pthread_cond_signal +pthread_cond_destroy +pthread_key_create +pthread_setspecific +pthread_getspecific +pthread_key_delete diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/wamr_toolchain.cmake b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/wamr_toolchain.cmake new file mode 100644 index 00000000..58fc8834 --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/wamr_toolchain.cmake @@ -0,0 +1,34 @@ +# Copyright (C) 2019 Intel Corporation. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +SET (CMAKE_SYSTEM_NAME Linux) +SET (CMAKE_SYSTEM_PROCESSOR wasm32) +SET (CMAKE_SYSROOT ${CMAKE_CURRENT_LIST_DIR}/libc-builtin-sysroot) + + +IF (NOT (DEFINED WASI_SDK_DIR OR DEFINED CACHE{WASI_SDK_DIR})) + MESSAGE (FATAL_ERROR "WASI_SDK_DIR is not defined") +ELSE () + MESSAGE (STATUS "WASI_SDK_DIR=${WASI_SDK_DIR}") + LIST (APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES "WASI_SDK_DIR") +ENDIF () + + +SET (CMAKE_C_FLAGS "-nostdlib -z stack-size=4096" CACHE INTERNAL "") +SET (CMAKE_C_COMPILER_TARGET "wasm32") +SET (CMAKE_C_COMPILER "${WASI_SDK_DIR}/bin/clang") + +SET (CMAKE_CXX_FLAGS "-nostdlib -z stack-size=4096" CACHE INTERNAL "") +SET (CMAKE_CXX_COMPILER_TARGET "wasm32") +SET (CMAKE_CXX_COMPILER "${WASI_SDK_DIR}/bin/clang++") + +SET (CMAKE_EXE_LINKER_FLAGS + "-Wl,--initial-memory=65536,--no-entry,--strip-all" CACHE INTERNAL "") + +SET (CMAKE_LINKER "${WASI_SDK_DIR}/bin/wasm-ld" CACHE INTERNAL "") +SET (CMAKE_AR "${WASI_SDK_DIR}/bin/llvm-ar" CACHE INTERNAL "") +SET (CMAKE_NM "${WASI_SDK_DIR}/bin/llvm-nm" CACHE INTERNAL "") +SET (CMAKE_OBJDUMP "${WASI_SDK_DIR}/bin/llvm-dwarfdump" CACHE INTERNAL "") +SET (CMAKE_RANLIB "${WASI_SDK_DIR}/bin/llvm-ranlib" CACHE INTERNAL "") +SET (CMAKE_EXE_LINKER_FLAGS + "${CMAKE_EXE_LINKER_FLAGS},--allow-undefined-file=${CMAKE_SYSROOT}/share/defined-symbols.txt" CACHE INTERNAL "")
\ No newline at end of file diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/wasi_toolchain.cmake b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/wasi_toolchain.cmake new file mode 100644 index 00000000..f80c7377 --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/app/wasi_toolchain.cmake @@ -0,0 +1,17 @@ +# Copyright (C) 2019 Intel Corporation. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +SET(CMAKE_SYSTEM_NAME Linux) + +if (NOT DEFINED WASI_SDK_DIR) + SET (WASI_SDK_DIR "/opt/wasi-sdk") +endif () + +SET (CMAKE_C_COMPILER "${WASI_SDK_DIR}/bin/clang") +SET (CMAKE_CXX_COMPILER "${WASI_SDK_DIR}/bin/clang++") + +SET (CMAKE_LINKER "${WASI_SDK_DIR}/bin/wasm-ld" CACHE INTERNAL "") +SET (CMAKE_AR "${WASI_SDK_DIR}/bin/llvm-ar" CACHE INTERNAL "") +SET (CMAKE_NM "${WASI_SDK_DIR}/bin/llvm-nm" CACHE INTERNAL "") +SET (CMAKE_OBJDUMP "${WASI_SDK_DIR}/bin/llvm-dwarfdump" CACHE INTERNAL "") +SET (CMAKE_RANLIB "${WASI_SDK_DIR}/bin/llvm-ranlib" CACHE INTERNAL "") diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/build_sdk.sh b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/build_sdk.sh new file mode 100755 index 00000000..954584f6 --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/build_sdk.sh @@ -0,0 +1,254 @@ +#!/bin/bash + +# Copyright (C) 2019 Intel Corporation. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +sdk_root=$(cd "$(dirname "$0")/" && pwd) +wamr_root_dir=${sdk_root}/.. +out_dir=${sdk_root}/out +profile_path=${out_dir}/profile.cmake +wamr_config_cmake_file="" +wasi_sdk_home="/opt/wasi-sdk" +# libc support, default builtin-libc +LIBC_SUPPORT="BUILTIN" +CM_DEXTRA_SDK_INCLUDE_PATH="" +CM_BUILD_TYPE="-DCMAKE_BUILD_TYPE=Release" +CM_TOOLCHAIN="" + +# menuconfig will pass options to this script +MENUCONFIG="" + +usage () +{ + echo "build.sh [options]" + echo " -n [profile name]" + echo " -x [config file path name]" + echo " -t [cmake toolchain file]" + echo " -e [extra include path], files under this path will be copied into SDK package" + echo " -c, clean" + echo " -d, debug mode" + echo " -i, enter menu config settings" + echo " -w [wasi-sdk installation path] it will be '/opt/wasi-sdk' if not set" + exit 1 +} + + +while getopts "e:x:n:t:icdw:" opt +do + case $opt in + n) + PROFILE=$OPTARG + ;; + t) + CM_TOOLCHAIN="-DCMAKE_TOOLCHAIN_FILE=$OPTARG" + ;; + x) + wamr_config_cmake_file=$OPTARG + ;; + e) + CM_DEXTRA_SDK_INCLUDE_PATH="-DEXTRA_SDK_INCLUDE_PATH=${OPTARG}" + ;; + c) + CLEAN="TRUE" + ;; + d) + CM_BUILD_TYPE="-DCMAKE_BUILD_TYPE=Debug" + ;; + i) + MENUCONFIG="TRUE" + ;; + w) + if [[ -n "${OPTARG}" ]]; then + wasi_sdk_home=$(realpath "${OPTARG}") + fi + ;; + ?) + echo "Unknown arg: $arg" + usage + exit 1 + ;; + esac +done + + +if [ ! -f "${wasi_sdk_home}/bin/clang" ]; then + echo "Can not find clang under \"${wasi_sdk_home}/bin\"." + exit 1 +else + echo "Found WASI_SDK HOME ${wasi_sdk_home}" +fi + + +echo "download dependent external repositories.." +${wamr_root_dir}/core/deps/download.sh +[ $? -eq 0 ] || exit $? + + + +if [ -z "$PROFILE" ]; then + PROFILE="default" + echo "PROFILE argument not set, using DEFAULT" + if [[ -z "$wamr_config_cmake_file" ]]; then + wamr_config_cmake_file=${sdk_root}/wamr_config_default.cmake + echo "use default config file: [$wamr_config_cmake_file]" + fi +fi + + +if [ ! -d "${out_dir}" ]; then + mkdir -p ${out_dir} +fi + +curr_profile_dir=${out_dir}/${PROFILE} +wamr_app_out_dir=${curr_profile_dir}/app-sdk/wamr-app-framework +sysroot_dir=${curr_profile_dir}/app-sdk/libc-builtin-sysroot + + +echo "CM_DEXTRA_SDK_INCLUDE_PATH=${CM_DEXTRA_SDK_INCLUDE_PATH}" + + +if [[ "$CLEAN" = "TRUE" ]]; then + rm -rf ${curr_profile_dir} +fi + + + +# cmake config file for wamr runtime: +# 1. use the users provided the config cmake file path. +# 2. if user set MENU CONFIG, enter menu config to generate +# menu_config.cmake in the profile output folder +# 3. If the menu_config.cmake is already in the profile folder, use it +# 4. Use the default config cmake file +# +if [[ -n "$wamr_config_cmake_file" ]]; then + if [[ ! -f $wamr_config_cmake_file ]]; then + echo "user given file not exist: ${wamr_config_cmake_file}" + exit 1 + fi + + echo "User config file: [${wamr_config_cmake_file}]" + +else + wamr_config_cmake_file=${out_dir}/wamr_config_${PROFILE}.cmake + # always rebuilt the sdk if user is not giving the config file + if [ -d ${curr_profile_dir} ]; then + rm -rf ${curr_profile_dir} + fi + + if [[ "$MENUCONFIG" = "TRUE" ]] || [[ ! -f $wamr_config_cmake_file ]]; then + echo "MENUCONFIG: [${wamr_config_cmake_file}]" + ./menuconfig.sh -x ${wamr_config_cmake_file} + [ $? -eq 0 ] || exit $? + else + echo "use existing config file: [$wamr_config_cmake_file]" + fi +fi + + +mkdir -p ${curr_profile_dir} +mkdir -p ${curr_profile_dir}/app-sdk +mkdir -p ${curr_profile_dir}/runtime-sdk + + +if [ "${BUILD_LLVM}" = "TRUE" ]; then + if [ ! -d "${wamr_root_dir}/core/deps/llvm" ]; then + echo -e "\n" + echo "###### build llvm (this will take a long time) #######" + echo "" + cd ${wamr_root_dir}/wamr-compiler + ./build_llvm.sh + fi +fi + +echo -e "\n\n" +echo "############## Start to build wasm app sdk ###############" + +# If wgl module is selected, check if the extra SDK include dir is passed by the args, prompt user to input if not. +app_all_selected=`cat ${wamr_config_cmake_file} | grep WAMR_APP_BUILD_ALL` +app_wgl_selected=`cat ${wamr_config_cmake_file} | grep WAMR_APP_BUILD_WGL` + +if [[ -n "${app_wgl_selected}" ]] || [[ -n "${app_all_selected}" ]]; then + if [ -z "${CM_DEXTRA_SDK_INCLUDE_PATH}" ]; then + echo -e "\033[31mWGL module require lvgl config files, please input the path to the lvgl SDK include path:\033[0m" + read -a extra_file_path + + if [[ -z "${extra_file_path}" ]] || [[ ! -d "${extra_file_path}" ]]; then + echo -e "\033[31mThe extra SDK path is empty\033[0m" + else + CM_DEXTRA_SDK_INCLUDE_PATH="-DEXTRA_SDK_INCLUDE_PATH=${extra_file_path}" + fi + fi + + cd ${wamr_root_dir}/core/app-framework/wgl/app + ./prepare_headers.sh +fi + +cd ${sdk_root}/app +rm -fr build && mkdir build +cd build + +out=`grep WAMR_BUILD_LIBC_WASI ${wamr_config_cmake_file} |grep 1` +if [ -n "$out" ]; then + LIBC_SUPPORT="WASI" +fi +if [ "${LIBC_SUPPORT}" = "WASI" ]; then + echo "using wasi toolchain" + cmake .. $CM_DEXTRA_SDK_INCLUDE_PATH \ + -DWAMR_BUILD_SDK_PROFILE=${PROFILE} \ + -DCONFIG_PATH=${wamr_config_cmake_file} \ + -DWASI_SDK_DIR="${wasi_sdk_home}" \ + -DCMAKE_TOOLCHAIN_FILE=../wasi_toolchain.cmake +else + echo "using builtin libc toolchain" + cmake .. $CM_DEXTRA_SDK_INCLUDE_PATH \ + -DWAMR_BUILD_SDK_PROFILE=${PROFILE} \ + -DCONFIG_PATH=${wamr_config_cmake_file} \ + -DWASI_SDK_DIR="${wasi_sdk_home}" \ + -DCMAKE_TOOLCHAIN_FILE=../wamr_toolchain.cmake +fi +[ $? -eq 0 ] || exit $? + +make +if (( $? == 0 )); then + echo -e "\033[32mSuccessfully built app-sdk under ${curr_profile_dir}/app-sdk\033[0m" +else + echo -e "\033[31mFailed to build app-sdk for wasm application\033[0m" + exit 1 +fi + +cd .. +rm -fr build +echo -e "\n\n" + + + +echo "############## Start to build runtime sdk ###############" +cd ${sdk_root}/runtime +rm -fr build-runtime-sdk && mkdir build-runtime-sdk +cd build-runtime-sdk +cmake .. $CM_DEXTRA_SDK_INCLUDE_PATH \ + -DWAMR_BUILD_SDK_PROFILE=${PROFILE} \ + -DCONFIG_PATH=${wamr_config_cmake_file} \ + $CM_TOOLCHAIN $CM_BUILD_TYPE +[ $? -eq 0 ] || exit $? +make + +if (( $? == 0 )); then + echo -e "\033[32mSuccessfully built runtime library under ${curr_profile_dir}/runtime-sdk/lib\033[0m" +else + echo -e "\033[31mFailed to build runtime sdk\033[0m" + exit 1 +fi + +APP=`grep WAMR_BUILD_APP_FRAMEWORK ${wamr_config_cmake_file} |grep 1` +if [ -n "$APP" ]; then + # Generate defined-symbol list for app-sdk + cd ${wamr_app_out_dir}/share + cat ${curr_profile_dir}/runtime-sdk/include/*.inl | egrep "^ *EXPORT_WASM_API *[(] *[a-zA-Z_][a-zA-Z0-9_]* *?[)]" | cut -d '(' -f2 | cut -d ')' -f1 > defined-symbols.txt +fi + + +cd .. +rm -fr build-runtime-sdk + +exit 0 diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/menuconfig.sh b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/menuconfig.sh new file mode 100755 index 00000000..b2f6fa62 --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/menuconfig.sh @@ -0,0 +1,223 @@ +#!/bin/bash + +# Copyright (C) 2019 Intel Corporation. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + + +usage () +{ + echo "menuconfig.sh [options]" + echo " -x [config file path name]" + exit 1 +} + + +while getopts "x:" opt +do + case $opt in + x) + wamr_config_cmake_file=$OPTARG + ;; + ?) + echo "Unknown arg: $arg" + usage + exit 1 + ;; + esac +done + + +if [ -z $wamr_config_cmake_file ]; then + usage + exit +fi + + +function set_build_target () { + target=$1 + + if [[ "${target}" = "X86_64" ]]; then + echo -e "set (WAMR_BUILD_TARGET \"X86_64\")" >> ${wamr_config_cmake_file} + elif [[ "${target}" = "X86_32" ]]; then + echo -e "set (WAMR_BUILD_TARGET \"X86_32\")" >> ${wamr_config_cmake_file} + else + echo "unknown build target." + exit 1 + fi +} + +function set_build_platform () { + platform=$1 + + if [[ "${platform}" = "linux" ]]; then + echo -e "set (WAMR_BUILD_PLATFORM \"linux\")" >> ${wamr_config_cmake_file} + # TODO: add other platforms + else + echo "${platform} platform currently not supported" + exit 1 + fi +} + +# input: array of selected exec modes [aot jit interp] +function set_exec_mode () { + modes=($1) + + for mode in ${modes[@]} + do + if [[ "$mode" = "aot" ]]; then + echo "set (WAMR_BUILD_AOT 1)" >> ${wamr_config_cmake_file} + elif [[ "$mode" = "jit" ]]; then + echo "set (WAMR_BUILD_JIT 1)" >> ${wamr_config_cmake_file} + BUILD_LLVM="TRUE" + elif [[ "$mode" = "interp" ]]; then + echo "set (WAMR_BUILD_INTERP 1)" >> ${wamr_config_cmake_file} + else + echo "unknown execute mode." + exit 1 + fi + done +} + +function set_libc_support () { + libc=$1 + + if [ "$libc" = "WASI" ]; then + echo "set (WAMR_BUILD_LIBC_WASI 1)" >> ${wamr_config_cmake_file} + else + echo "set (WAMR_BUILD_LIBC_BUILTIN 1)" >> ${wamr_config_cmake_file} + fi +} + +function set_app_framework () { + app_support=$1 + + if [ "$app_support" = "TRUE" ]; then + echo "set (WAMR_BUILD_APP_FRAMEWORK 1)" >> ${wamr_config_cmake_file} + fi +} + +# input: array of selected app modules +function set_app_module () { + modules=($1) + + for module in ${modules[*]} + do + if [ "${module}" = "all" ]; then + cmake_app_list="WAMR_APP_BUILD_ALL" + break + fi + + cmake_app_list="${cmake_app_list} WAMR_APP_BUILD_${module^^}" + done + + # APP module list + if [ -n "${cmake_app_list}" ]; then + echo "set (WAMR_BUILD_APP_LIST ${cmake_app_list# })" >> ${wamr_config_cmake_file} + fi +} + + + + +sdk_root=$(cd "$(dirname "$0")/" && pwd) +wamr_root=${sdk_root}/.. + +if [ ! `command -v menuconfig` ]; then + echo "Can't find kconfiglib python lib on this computer" + echo "Downloading it through pip" + echo "If this fails, you can try `pip install kconfiglib` to install it manually" + echo "Or download the repo from https://github.com/ulfalizer/Kconfiglib" + + pip install kconfiglib +fi + +if [ -f ".wamr_modules" ]; then + rm -f .wamr_modules +fi + +# get all modules under core/app-framework +for module in `ls ${wamr_root}/core/app-framework -F | grep "/$" | grep -v "base" | grep -v "app-native-shared" | grep -v "template"` +do + module=${module%*/} + echo "config APP_BUILD_${module^^}" >> .wamr_modules + echo " bool \"enable ${module}\"" >> .wamr_modules +done + +menuconfig Kconfig +[ $? -eq 0 ] || exit $? + +if [ ! -e ".config" ]; then + exit 0 +fi + +# parse platform +platform=`cat .config | grep "^CONFIG_PLATFORM"` +platform=${platform%*=y} +platform=${platform,,} +platform=${platform#config_platform_} + +# parse target +target=`cat .config | grep "^CONFIG_TARGET"` +target=${target%*=y} +target=${target#CONFIG_TARGET_} + +# parse execution mode +modes=`cat .config | grep "^CONFIG_EXEC"` +mode_list="" +for mode in ${modes} +do + mode=${mode%*=y} + mode=${mode#CONFIG_EXEC_} + mode_list="${mode_list} ${mode,,}" +done +if [ -z "${mode_list}" ]; then + echo "execution mode are not selected" + exit 1 +fi + +# parse libc support +libc=`cat .config | grep "^CONFIG_LIBC"` +libc=${libc%*=y} +if [ "${libc}" = "CONFIG_LIBC_WASI" ]; then + libc_support="WASI" +else + libc_support="BUILTIN" +fi + +# parse application framework options +app_option=`cat .config | grep "^CONFIG_APP_FRAMEWORK"` +app_option=${app_option%*=y} +app_option=${app_option#CONFIG_APP_FRAMEWORK_} + +if [ "${app_option}" != "DISABLE" ]; then + app_enable="TRUE" + + # Default components + if [ "${app_option}" = "DEFAULT" ]; then + app_list="base connection sensor" + # All components + elif [ "${app_option}" = "ALL" ]; then + app_list="all" + # Customize + elif [ "${app_option}" = "CUSTOM" ]; then + app_option=`cat .config | grep "^CONFIG_APP_BUILD"` + app_list="base" + for app in ${app_option} + do + app=${app%*=y} + app=${app#CONFIG_APP_BUILD_} + app_list="${app_list} ${app,,}" + done + fi +fi + +if [[ -f $wamr_config_cmake_file ]]; then + rm $wamr_config_cmake_file +fi + +set_build_target ${target} +set_build_platform ${platform} +set_exec_mode "${mode_list[*]}" +set_libc_support ${libc_support} +set_app_module "${app_list[*]}" +set_app_framework ${app_enable} diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/runtime/CMakeLists.txt b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/runtime/CMakeLists.txt new file mode 100644 index 00000000..e8e5c363 --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/runtime/CMakeLists.txt @@ -0,0 +1,58 @@ +# Copyright (C) 2019 Intel Corporation. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +cmake_minimum_required(VERSION 2.8) +project(runtime-sdk) + +SET (CMAKE_C_FLAGS "-O3") +set (CMAKE_BUILD_TYPE Release) + +add_definitions(-DBH_MALLOC=wasm_runtime_malloc) +add_definitions(-DBH_FREE=wasm_runtime_free) + +if (NOT DEFINED WAMR_BUILD_SDK_PROFILE) + set (WAMR_BUILD_SDK_PROFILE "default") +endif () + +if (NOT DEFINED CONFIG_PATH) + set (CONFIG_PATH ${CMAKE_CURRENT_LIST_DIR}/../wamr_config_default.cmake) +endif () + +if (NOT EXISTS "${CONFIG_PATH}") + message (FATAL_ERROR "${CONFIG_PATH} not exist") +endif () + +include(${CONFIG_PATH}) + +if (NOT DEFINED OUT_DIR) + set (OUT_DIR "${CMAKE_CURRENT_LIST_DIR}/../out/${WAMR_BUILD_SDK_PROFILE}") +endif () +set (RUNTIME_SDK_DIR "${OUT_DIR}/runtime-sdk") + +include(${CMAKE_CURRENT_LIST_DIR}/../../build-scripts/runtime_lib.cmake) + +# build vmlib +add_library(vmlib ${WAMR_RUNTIME_LIB_SOURCE}) + +# copy vmlib.a to ${SDK_ROOT}/out/runtime-sdk/lib +add_custom_command( + TARGET vmlib POST_BUILD + + COMMAND ${CMAKE_COMMAND} -E make_directory ${RUNTIME_SDK_DIR}/lib + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/*.a ${RUNTIME_SDK_DIR}/lib +) + +# copy headers to ${SDK_ROOT}/out/runtime-sdk/include +FOREACH (header IN LISTS RUNTIME_LIB_HEADER_LIST) + execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${RUNTIME_SDK_DIR}/include) + execute_process(COMMAND ${CMAKE_COMMAND} -E copy "${header}" ${RUNTIME_SDK_DIR}/include) +ENDFOREACH (header) + + +if (DEFINED EXTRA_SDK_INCLUDE_PATH) + execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory ${EXTRA_SDK_INCLUDE_PATH} ${RUNTIME_SDK_DIR}/include) +endif () + +# config.h is not needed when building a runtime product with pre-built library +# erase the file to avoid compile error +file (WRITE ${RUNTIME_SDK_DIR}/include/config.h "") diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/wamr_config_default.cmake b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/wamr_config_default.cmake new file mode 100644 index 00000000..98cc6e9c --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/wamr_config_default.cmake @@ -0,0 +1,12 @@ +set (WAMR_BUILD_PLATFORM "linux") +set (WAMR_BUILD_TARGET X86_64) +set (WAMR_BUILD_INTERP 1) +set (WAMR_BUILD_AOT 1) +set (WAMR_BUILD_JIT 0) +set (WAMR_BUILD_LIBC_BUILTIN 1) +set (WAMR_BUILD_LIBC_WASI 0) +set (WAMR_BUILD_APP_FRAMEWORK 1) +set (WAMR_BUILD_APP_LIST WAMR_APP_BUILD_BASE) + +# +# set (EXTRA_SDK_INCLUDE_PATH "") diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/wamr_config_macos_release.cmake b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/wamr_config_macos_release.cmake new file mode 100644 index 00000000..cbcec2d6 --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/wamr_config_macos_release.cmake @@ -0,0 +1,40 @@ +set (WAMR_BUILD_PLATFORM "darwin") +set (WAMR_BUILD_TARGET X86_64) + +# Running mode +set (WAMR_BUILD_AOT 1) +set (WAMR_BUILD_INTERP 1) +set (WAMR_BUILD_JIT 0) + +# Runtime SDK Features +set (WAMR_BUILD_CUSTOM_NAME_SECTION 0) +set (WAMR_BUILD_DEBUG_INTERP 0) +set (WAMR_BUILD_DEBUG_AOT 0) +set (WAMR_BUILD_DUMP_CALL_STACK 0) +set (WAMR_BUILD_LIBC_UVWASI 0) +set (WAMR_BUILD_LIBC_EMCC 0) +set (WAMR_BUILD_LIB_RATS 0) +set (WAMR_BUILD_LOAD_CUSTOM_SECTION 0) +set (WAMR_BUILD_MEMORY_PROFILING 0) +set (WAMR_BUILD_MINI_LOADER 0) +set (WAMR_BUILD_MULTI_MODULE 0) +set (WAMR_BUILD_PERF_PROFILING 0) +set (WAMR_BUILD_SPEC_TEST 0) +set (WAMR_BUILD_BULK_MEMORY 1) +set (WAMR_BUILD_LIB_PTHREAD 1) +set (WAMR_BUILD_LIB_PTHREAD_SEMAPHORE 1) +set (WAMR_BUILD_LIBC_BUILTIN 1) +set (WAMR_BUILD_LIBC_WASI 1) +set (WAMR_BUILD_REF_TYPES 1) +set (WAMR_BUILD_SIMD 1) +set (WAMR_BUILD_SHARED_MEMORY 1) +set (WAMR_BUILD_TAIL_CALL 1) +set (WAMR_BUILD_THREAD_MGR 1) + +# APP SDK Features +set (WAMR_BUILD_APP_FRAMEWORK 1) +set (WAMR_BUILD_APP_LIST WAMR_APP_BUILD_BASE) + +# +# set (EXTRA_SDK_INCLUDE_PATH "") + diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/wamr_config_ubuntu_release.cmake b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/wamr_config_ubuntu_release.cmake new file mode 100644 index 00000000..8919c4e4 --- /dev/null +++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/wamr_config_ubuntu_release.cmake @@ -0,0 +1,40 @@ +set (WAMR_BUILD_PLATFORM "linux") +set (WAMR_BUILD_TARGET X86_64) + +# Running mode +set (WAMR_BUILD_AOT 1) +set (WAMR_BUILD_INTERP 1) +set (WAMR_BUILD_JIT 0) + +# Runtime SDK Features +set (WAMR_BUILD_CUSTOM_NAME_SECTION 0) +set (WAMR_BUILD_DEBUG_INTERP 0) +set (WAMR_BUILD_DEBUG_AOT 0) +set (WAMR_BUILD_DUMP_CALL_STACK 0) +set (WAMR_BUILD_LIBC_UVWASI 0) +set (WAMR_BUILD_LIBC_EMCC 0) +set (WAMR_BUILD_LIB_RATS 0) +set (WAMR_BUILD_LOAD_CUSTOM_SECTION 0) +set (WAMR_BUILD_MEMORY_PROFILING 0) +set (WAMR_BUILD_MINI_LOADER 0) +set (WAMR_BUILD_MULTI_MODULE 0) +set (WAMR_BUILD_PERF_PROFILING 0) +set (WAMR_BUILD_SPEC_TEST 0) +set (WAMR_BUILD_BULK_MEMORY 1) +set (WAMR_BUILD_LIB_PTHREAD 1) +set (WAMR_BUILD_LIB_PTHREAD_SEMAPHORE 1) +set (WAMR_BUILD_LIBC_BUILTIN 1) +set (WAMR_BUILD_LIBC_WASI 1) +set (WAMR_BUILD_REF_TYPES 1) +set (WAMR_BUILD_SIMD 1) +set (WAMR_BUILD_SHARED_MEMORY 1) +set (WAMR_BUILD_TAIL_CALL 1) +set (WAMR_BUILD_THREAD_MGR 1) + +# APP SDK Features +set (WAMR_BUILD_APP_FRAMEWORK 1) +set (WAMR_BUILD_APP_LIST WAMR_APP_BUILD_BASE) + +# +# set (EXTRA_SDK_INCLUDE_PATH "") + |