From 05e3a091506f0d6f1df1ae12e3068b9e14e5cd18 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Takashi Date: Tue, 17 Jun 2025 12:13:43 +0900 Subject: [PATCH] wamr-wasi-extensions: add lib-socket things (#4360) --- wamr-wasi-extensions/CMakeLists.txt | 1 + .../samples/socket-nslookup/CMakeLists.txt | 11 ++++++++++ .../samples/socket-tcp-udp/CMakeLists.txt | 10 ++++++++++ wamr-wasi-extensions/socket/CMakeLists.txt | 20 +++++++++++++++++++ wamr-wasi-extensions/test.sh | 14 +++++++++++++ 5 files changed, 56 insertions(+) create mode 100644 wamr-wasi-extensions/samples/socket-nslookup/CMakeLists.txt create mode 100644 wamr-wasi-extensions/samples/socket-tcp-udp/CMakeLists.txt create mode 100644 wamr-wasi-extensions/socket/CMakeLists.txt diff --git a/wamr-wasi-extensions/CMakeLists.txt b/wamr-wasi-extensions/CMakeLists.txt index e5fabb674..bed9f6780 100644 --- a/wamr-wasi-extensions/CMakeLists.txt +++ b/wamr-wasi-extensions/CMakeLists.txt @@ -6,3 +6,4 @@ cmake_minimum_required (VERSION 3.14) project(wamr-wasi-extensions LANGUAGES C) add_subdirectory(nn) +add_subdirectory(socket) diff --git a/wamr-wasi-extensions/samples/socket-nslookup/CMakeLists.txt b/wamr-wasi-extensions/samples/socket-nslookup/CMakeLists.txt new file mode 100644 index 000000000..3c437524a --- /dev/null +++ b/wamr-wasi-extensions/samples/socket-nslookup/CMakeLists.txt @@ -0,0 +1,11 @@ +cmake_minimum_required(VERSION 3.14) + +set(CMAKE_C_STANDARD 99) +set(CMAKE_C_STANDARD_REQUIRED YES) +set(CMAKE_C_EXTENSIONS NO) + +project(socket-nslookup LANGUAGES C) +add_executable(socket-nslookup ${CMAKE_CURRENT_SOURCE_DIR}/../../../core/iwasm/libraries/lib-socket/test/nslookup.c) +find_package(wamr-wasi-socket REQUIRED) +target_link_libraries(socket-nslookup wamr-wasi-socket) +target_link_options(socket-nslookup PRIVATE -Wl,--max-memory=262144) diff --git a/wamr-wasi-extensions/samples/socket-tcp-udp/CMakeLists.txt b/wamr-wasi-extensions/samples/socket-tcp-udp/CMakeLists.txt new file mode 100644 index 000000000..d166094a7 --- /dev/null +++ b/wamr-wasi-extensions/samples/socket-tcp-udp/CMakeLists.txt @@ -0,0 +1,10 @@ +cmake_minimum_required(VERSION 3.14) + +set(CMAKE_C_STANDARD 99) +set(CMAKE_C_STANDARD_REQUIRED YES) + +project(socket-tcp-udp LANGUAGES C) +add_executable(socket-tcp-udp ${CMAKE_CURRENT_SOURCE_DIR}/../../../core/iwasm/libraries/lib-socket/test/tcp_udp.c) +find_package(wamr-wasi-socket REQUIRED) +target_link_libraries(socket-tcp-udp wamr-wasi-socket) +target_link_options(socket-tcp-udp PRIVATE -Wl,--max-memory=262144) diff --git a/wamr-wasi-extensions/socket/CMakeLists.txt b/wamr-wasi-extensions/socket/CMakeLists.txt new file mode 100644 index 000000000..0ffdd453b --- /dev/null +++ b/wamr-wasi-extensions/socket/CMakeLists.txt @@ -0,0 +1,20 @@ +set(wasi_socket_dir ${CMAKE_CURRENT_SOURCE_DIR}/../../core/iwasm/libraries/lib-socket) +set(wasi_socket_header_dir ${wasi_socket_dir}/inc) + +set(srcs ${wasi_socket_dir}/src/wasi/wasi_socket_ext.c) +set(headers + ${wasi_socket_header_dir}/wasi_socket_ext.h +) + +add_library(wamr-wasi-socket STATIC ${srcs}) +set_property(TARGET wamr-wasi-socket PROPERTY PUBLIC_HEADER ${headers}) +target_include_directories(wamr-wasi-socket + PUBLIC + $ + $) + +install(TARGETS wamr-wasi-socket + EXPORT wamr-wasi-socket-config + PUBLIC_HEADER DESTINATION include) +install(EXPORT wamr-wasi-socket-config + DESTINATION lib/cmake/wamr-wasi-socket) diff --git a/wamr-wasi-extensions/test.sh b/wamr-wasi-extensions/test.sh index 585a444bd..bf3c45b14 100755 --- a/wamr-wasi-extensions/test.sh +++ b/wamr-wasi-extensions/test.sh @@ -3,6 +3,8 @@ # Copyright (C) 2025 Midokura Japan KK. All rights reserved. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +set -e + PREFIX=/tmp/wamr WASI_SDK=${WASI_SDK:-/opt/wasi-sdk} @@ -17,3 +19,15 @@ cmake -B build-app-nn \ -DCMAKE_PREFIX_PATH=${PREFIX} \ samples/nn cmake --build build-app-nn + +cmake -B build-app-socket-nslookup \ +-DCMAKE_TOOLCHAIN_FILE=${WASI_SDK}/share/cmake/wasi-sdk-pthread.cmake \ +-DCMAKE_PREFIX_PATH=${PREFIX} \ +samples/socket-nslookup +cmake --build build-app-socket-nslookup + +cmake -B build-app-socket-tcp-udp \ +-DCMAKE_TOOLCHAIN_FILE=${WASI_SDK}/share/cmake/wasi-sdk-pthread.cmake \ +-DCMAKE_PREFIX_PATH=${PREFIX} \ +samples/socket-tcp-udp +cmake --build build-app-socket-tcp-udp