Skip to content

Commit 1e79741

Browse files
committed
Migrate to new wasi module name format
1 parent e6c2025 commit 1e79741

File tree

2 files changed

+31
-18
lines changed

2 files changed

+31
-18
lines changed

CMakeLists.txt

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,18 +81,30 @@ endif()
8181
add_subdirectory("${catch2_SOURCE_DIR}")
8282
list(APPEND CMAKE_MODULE_PATH "${catch2_SOURCE_DIR}/contrib")
8383

84-
if (${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "x86_64" OR ${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "AMD64")
84+
string(TOLOWER "${CMAKE_HOST_SYSTEM_PROCESSOR}" CMAKE_HOST_SYSTEM_PROCESSOR_LOWER)
85+
86+
if (${CMAKE_HOST_SYSTEM_PROCESSOR_LOWER} MATCHES "x86_64" OR ${CMAKE_HOST_SYSTEM_PROCESSOR_LOWER} MATCHES "amd64")
87+
if (WIN32)
88+
set (wasi-clang-url "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-27/wasi-sdk-27.0-x86_64-windows.tar.gz")
89+
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
90+
set (wasi-clang-url "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-27/wasi-sdk-27.0-x86_64-macos.tar.gz")
91+
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
92+
set (wasi-clang-url "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-27/wasi-sdk-27.0-x86_64-linux.tar.gz")
93+
else()
94+
set (wasi-clang-url "")
95+
endif()
96+
elseif (${CMAKE_HOST_SYSTEM_PROCESSOR_LOWER} MATCHES "arm64")
8597
if (WIN32)
86-
set (wasi-clang-url "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-21/wasi-sdk-21.0.m-mingw.tar.gz")
98+
set (wasi-clang-url "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-27/wasi-sdk-27.0-arm64-windows.tar.gz")
8799
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
88-
set (wasi-clang-url "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-21/wasi-sdk-21.0-macos.tar.gz")
100+
set (wasi-clang-url "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-27/wasi-sdk-27.0-arm64-macos.tar.gz")
89101
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
90-
set (wasi-clang-url "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-21/wasi-sdk-21.0-linux.tar.gz")
102+
set (wasi-clang-url "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-27/wasi-sdk-27.0-arm64-linux.tar.gz")
91103
else()
92104
set (wasi-clang-url "")
93105
endif()
94106
else()
95-
message(STATUS "Host platform found: ${CMAKE_HOST_SYSTEM_PROCESSOR}")
107+
message(STATUS "Host platform found: ${CMAKE_HOST_SYSTEM_PROCESSOR_LOWER}")
96108
set (wasi-clang-url "")
97109
endif()
98110

include/rlbox_wasm2c_sandbox.hpp

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,15 @@
114114
# error "Expected definition for RLBOX_WASM2C_MODULE_NAME"
115115
#endif
116116

117+
// Concat after macro expansion
118+
#define RLBOX_WASM2C_CONCAT2_HELPER(x, y) x##y
119+
#define RLBOX_WASM2C_CONCAT(x, y) RLBOX_WASM2C_CONCAT2_HELPER(x, y)
120+
#define RLBOX_WASM2C_CONCAT3_HELPER(x, y, z) x##y##z
121+
#define RLBOX_WASM2C_CONCAT3(x, y, z) RLBOX_WASM2C_CONCAT3_HELPER(x, y, z)
122+
123+
// #define RLBOX_WASM2C_MANGLED_MODULE_NAME() RLBOX_WASM2C_MODULE_NAME
124+
#define RLBOX_WASM2C_MANGLED_MODULE_NAME() RLBOX_WASM2C_CONCAT3(0x24, RLBOX_WASM2C_MODULE_NAME, 0x2Ewasm)
125+
117126
// Need an extra macro to expand RLBOX_WASM2C_MODULE_NAME
118127
#define INVOKE_DEFINE_RLBOX_WASM2C_MODULE_TYPE(modname) \
119128
DEFINE_RLBOX_WASM2C_MODULE_TYPE(modname)
@@ -125,27 +134,19 @@
125134
DEFINE_RLBOX_WASM2C_EXPORTED_MODULE_ATTRIBS(modname)
126135

127136
// Define the base wasm2c module type
128-
INVOKE_DEFINE_RLBOX_WASM2C_MODULE_TYPE(RLBOX_WASM2C_MODULE_NAME);
129-
130-
// Concat after macro expansion
131-
#define RLBOX_WASM2C_CONCAT2(x, y) x##y
132-
#define RLBOX_WASM2C_CONCAT(x, y) RLBOX_WASM2C_CONCAT2(x, y)
137+
INVOKE_DEFINE_RLBOX_WASM2C_MODULE_TYPE(RLBOX_WASM2C_MANGLED_MODULE_NAME());
133138

134139
#define RLBOX_WASM_MODULE_TYPE_CURR \
135-
RLBOX_WASM2C_CONCAT(rlbox_wasm2c_module_type_, RLBOX_WASM2C_MODULE_NAME)
140+
RLBOX_WASM2C_CONCAT(rlbox_wasm2c_module_type_, RLBOX_WASM2C_MANGLED_MODULE_NAME())
136141

137142
#define RLBOX_WASM2C_STRINGIFY(x) RLBOX_WASM2C_STRINGIFY2(x)
138143
#define RLBOX_WASM2C_STRINGIFY2(x) #x
139144

140145
#define RLBOX_WASM2C_MODULE_NAME_STR \
141146
RLBOX_WASM2C_STRINGIFY(RLBOX_WASM2C_MODULE_NAME)
142147

143-
#define RLBOX_WASM2C_MODULE_FUNC_HELPER2(part1, part2, part3) \
144-
part1##part2##part3
145-
#define RLBOX_WASM2C_MODULE_FUNC_HELPER(part1, part2, part3) \
146-
RLBOX_WASM2C_MODULE_FUNC_HELPER2(part1, part2, part3)
147148
#define RLBOX_WASM2C_MODULE_FUNC(name) \
148-
RLBOX_WASM2C_MODULE_FUNC_HELPER(w2c_, RLBOX_WASM2C_MODULE_NAME, name)
149+
RLBOX_WASM2C_CONCAT3(w2c_, RLBOX_WASM2C_MANGLED_MODULE_NAME(), name)
149150

150151
namespace rlbox {
151152

@@ -558,7 +559,7 @@ class rlbox_wasm2c_sandbox
558559
sandbox_memory_info = &local_sandbox_memory_info;
559560
sandbox_callback_table = &local_sandbox_callback_table;
560561

561-
INVOKE_DEFINE_RLBOX_WASM2C_IMPORTED_MODULE_ATTRIBS(RLBOX_WASM2C_MODULE_NAME);
562+
INVOKE_DEFINE_RLBOX_WASM2C_IMPORTED_MODULE_ATTRIBS(RLBOX_WASM2C_MANGLED_MODULE_NAME());
562563

563564
*sandbox_memory_info = create_wasm2c_memory(
564565
*initial_memory_pages, custom_capacity, instance_name? instance_name : "rlbox_wasm2c");
@@ -583,7 +584,7 @@ class rlbox_wasm2c_sandbox
583584
auto create_instance_func = (RLBOX_WASM_MODULE_TYPE_CURR::create_instance_imported_t) RLBOX_WASM_MODULE_TYPE_CURR::create_instance;
584585
create_instance_func(&wasm2c_instance, &sandbox_memory_env, &wasi_env);
585586
} else {
586-
INVOKE_DEFINE_RLBOX_WASM2C_EXPORTED_MODULE_ATTRIBS(RLBOX_WASM2C_MODULE_NAME);
587+
INVOKE_DEFINE_RLBOX_WASM2C_EXPORTED_MODULE_ATTRIBS(RLBOX_WASM2C_MANGLED_MODULE_NAME());
587588
sandbox_memory_info = get_exported_memory(&wasm2c_instance);
588589
sandbox_callback_table = get_exported_table(&wasm2c_instance);
589590

0 commit comments

Comments
 (0)