summaryrefslogtreecommitdiffstats
path: root/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/native-lib/wasm-app
diff options
context:
space:
mode:
Diffstat (limited to 'fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/native-lib/wasm-app')
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/native-lib/wasm-app/CMakeLists.txt35
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/native-lib/wasm-app/main.c70
2 files changed, 105 insertions, 0 deletions
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/native-lib/wasm-app/CMakeLists.txt b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/native-lib/wasm-app/CMakeLists.txt
new file mode 100644
index 000000000..ffcd9005a
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/native-lib/wasm-app/CMakeLists.txt
@@ -0,0 +1,35 @@
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+cmake_minimum_required(VERSION 3.0)
+project(wasm-app)
+
+set (WAMR_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../..)
+
+if (APPLE)
+ set (HAVE_FLAG_SEARCH_PATHS_FIRST 0)
+ set (CMAKE_C_LINK_FLAGS "")
+ set (CMAKE_CXX_LINK_FLAGS "")
+endif ()
+
+set (CMAKE_SYSTEM_PROCESSOR wasm32)
+set (CMAKE_SYSROOT ${WAMR_ROOT_DIR}/wamr-sdk/app/libc-builtin-sysroot)
+
+if (NOT DEFINED WASI_SDK_DIR)
+ set (WASI_SDK_DIR "/opt/wasi-sdk")
+endif ()
+
+set (CMAKE_C_FLAGS "-nostdlib")
+set (CMAKE_C_COMPILER_TARGET "wasm32")
+set (CMAKE_C_COMPILER "${WASI_SDK_DIR}/bin/clang")
+
+set (CMAKE_EXE_LINKER_FLAGS
+ "-Wl,--max-memory=131072 -z stack-size=8192 \
+ -Wl,--no-entry,--strip-all \
+ -Wl,--export=__main_argc_argv \
+ -Wl,--export=__heap_base,--export=__data_end \
+ -Wl,--allow-undefined"
+)
+
+add_executable(test.wasm main.c)
+target_link_libraries(test.wasm)
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/native-lib/wasm-app/main.c b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/native-lib/wasm-app/main.c
new file mode 100644
index 000000000..dba652daf
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/samples/native-lib/wasm-app/main.c
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2019 Intel Corporation. All rights reserved.
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+int
+test_add(int x, int y);
+
+int
+test_sqrt(int x, int y);
+
+int
+test_hello(const char *name, char *buf, size_t buflen);
+
+int
+test_hello2(const char *name, char *buf, size_t buflen);
+
+int
+main(int argc, char **argv)
+{
+ const char *name = __func__;
+ char *buf;
+ size_t buflen;
+ int x = 10, y = 20, res;
+
+ printf("Hello World!\n");
+
+ res = test_add(x, y);
+ printf("%d + %d = %d\n", x, y, res);
+
+ res = test_sqrt(x, y);
+ printf("sqrt(%d, %d) = %d\n", x, y, res);
+
+ res = test_hello(name, NULL, 0);
+ printf("test_hello(\"%s\", %p, %zu) = %d\n", name, NULL, (size_t)0, res);
+ if (res == -1) {
+ return -1;
+ }
+ buflen = res + 1;
+ buf = malloc(buflen);
+ printf("malloc(%zu) = %p\n", buflen, buf);
+ res = test_hello(__func__, buf, buflen);
+ if (res == -1) {
+ return -1;
+ }
+ printf("test_hello(\"%s\", %p, %zu) = %d\n", name, buf, buflen, res);
+ printf("Message from test_hello: %s", buf);
+ free(buf);
+
+ res = test_hello2(name, NULL, 0);
+ printf("test_hello2(\"%s\", %p, %zu) = %d\n", name, NULL, (size_t)0, res);
+ if (res == -1) {
+ return -1;
+ }
+ buflen = res + 1;
+ buf = malloc(buflen);
+ printf("malloc(%zu) = %p\n", buflen, buf);
+ res = test_hello2(__func__, buf, buflen);
+ if (res == -1) {
+ return -1;
+ }
+ printf("test_hello2(\"%s\", %p, %zu) = %d\n", name, buf, buflen, res);
+ printf("Message from test_hello2: %s", buf);
+ free(buf);
+
+ return 0;
+}