Skip to content

Commit 76f5324

Browse files
committed
use .wasi ext, fix WASI.cmake
1 parent 7acaf06 commit 76f5324

File tree

3 files changed

+85
-31
lines changed

3 files changed

+85
-31
lines changed

scripts/wasisdk-fetch.sh

Lines changed: 17 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,9 @@ then
2222
2323
" 1>&2
2424
else
25+
export LC_ALL=C
2526
pushd wasisdk
26-
if [ -f /pp ]
27-
then
28-
wget -c http://192.168.1.66/cfake/wasi-sdk-20.0-linux.tar.gz
29-
else
30-
wget -c https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-linux.tar.gz
31-
fi
27+
wget -c https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-linux.tar.gz
3228
tar xfz wasi-sdk-20.0-linux.tar.gz
3329
mv wasi-sdk-20.0 upstream && rm wasi-sdk-20.0-linux.tar.gz
3430
ln ${SDKROOT}/wasisdk/bin/wasi ${SDKROOT}/wasisdk/bin/wasi-c
@@ -38,19 +34,13 @@ then
3834

3935
$HPIP install cmake wasmtime
4036

41-
# /opt/python-wasm-sdk/devices/x86_64/usr/lib/python3.11/site-packages/cmake/data/share/cmake-3.27/Modules/Platform/
42-
cp -v wasisdk/share/cmake/WASI.cmake ${SDKROOT}/devices/$(arch)/usr/lib/python${PYBUILD}/site-packages/cmake/data/share/cmake-*/Modules/Platform/
43-
44-
45-
#cat > ${SDKROOT}/devices/$(arch)/usr/lib/python${PYBUILD}/site-packages/cmake/data/share/cmake-*/Modules/Platform/WASI.cmake <<END
46-
4737
mkdir -p ${SDKROOT}/wasisdk/share/cmake/Modules/Platform/
4838

4939
cat > ${CMAKE_TOOLCHAIN_FILE} <<END
5040
# Cmake toolchain description file for the Makefile
5141
5242
# set(CMAKE_TOOLCHAIN_FILE "${CMAKE_TOOLCHAIN_FILE}")
53-
# list(APPEND CMAKE_MODULE_PATH "${WASISDK}/share/cmake/Modules")
43+
list(APPEND CMAKE_MODULE_PATH "${WASISDK}/share/cmake/Modules")
5444
5545
5646
# This is arbitrary, AFAIK, for now.
@@ -187,29 +177,27 @@ END
187177
export AR="${WASI_SDK_PREFIX}/bin/llvm-ar"
188178
export RANLIB="${WASI_SDK_PREFIX}/bin/ranlib"
189179

190-
WASI_CFG="--sysroot=${WASI_SDK_PREFIX}/share/wasi-sysroot -I${WASISDK}/hotfix"
191-
WASI_DEF="-D_WASI_EMULATED_MMAN -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -D_WASI_EMULATED_GETPID"
192-
193-
# wasi assembly
194-
WASI_ALL="${WASI_CFG} ${WASI_DEF} -fPIC -fno-rtti -fno-exceptions"
195-
196-
WASI_ALL="$WASI_ALL -Wno-unused-but-set-variable -Wno-unused-command-line-argument -Wno-unsupported-floating-point-opt"
180+
export CC="${WASISDK}/bin/wasi-c"
181+
export CPP="${WASISDK}/bin/wasi-cpp"
182+
export CXX="${WASISDK}/bin/wasi-c++"
197183

198-
# wasi linking
199-
WASI_LNK="-lwasi-emulated-getpid -lwasi-emulated-mman -lwasi-emulated-signal -lwasi-emulated-process-clocks -lc++experimental -fno-exceptions"
200184

201-
# export CC="${WASISDK}/bin/wasi-c"
202-
# export CPP="${WASISDK}/bin/wasi-cpp"
203-
# export CXX="${WASISDK}/bin/wasi++"
185+
# WASI_CFG="--sysroot=${WASI_SDK_PREFIX}/share/wasi-sysroot -I${WASISDK}/hotfix"
186+
# WASI_DEF="-D_WASI_EMULATED_MMAN -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_PROCESS_CLOCKS -D_WASI_EMULATED_GETPID"
204187

205-
CXX_LIBS="-lc++ -lc++abi -lc++experimental"
188+
# # wasi assembly
189+
# WASI_ALL="${WASI_CFG} ${WASI_DEF} -fPIC -fno-rtti -fno-exceptions"
206190

207-
export CC="${WASI_SDK_PREFIX}/bin/clang ${WASI_ALL}"
208-
export CXX="${WASI_SDK_PREFIX}/bin/clang++ ${WASI_ALL} ${CXX_LIBS}"
209-
export CPP="${WASI_SDK_PREFIX}/bin/clang-cpp ${WASI_CFG} ${WASI_DEF}"
191+
# WASI_ALL="$WASI_ALL -Wno-unused-but-set-variable -Wno-unused-command-line-argument -Wno-unsupported-floating-point-opt"
210192

193+
# # wasi linking
194+
# WASI_LNK="-lwasi-emulated-getpid -lwasi-emulated-mman -lwasi-emulated-signal -lwasi-emulated-process-clocks -lc++experimental -fno-exceptions"
211195

196+
# CXX_LIBS="-lc++ -lc++abi -lc++experimental"
212197

198+
# export CC="${WASI_SDK_PREFIX}/bin/clang ${WASI_ALL}"
199+
# export CXX="${WASI_SDK_PREFIX}/bin/clang++ ${WASI_ALL} ${CXX_LIBS}"
200+
# export CPP="${WASI_SDK_PREFIX}/bin/clang-cpp ${WASI_CFG} ${WASI_DEF}"
213201

214202

215203
else

wasisdk/bin/wasi-run

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
#!/bin/bash
2-
echo "WASI: $@"
32
WASM=$1
43
shift
5-
wasmtime run --mapdir /::/ $WASM -- $@
4+
if [ -f "${WASM}.wasi" ]
5+
then
6+
WASM="${WASM}.wasi"
7+
fi
8+
echo "WASI: $WASM $@"
9+
wasmtime --dir /::/ $WASM -- $@

wasisdk/hotfix/patch.h

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,34 @@ __randname(char *tmpl)
3333
return tmpl;
3434
}
3535

36+
static char *
37+
mktemp(char *tmpl)
38+
{
39+
size_t l = strlen(tmpl);
40+
int retries = 100;
41+
struct stat st;
42+
43+
if (l < 6 || memcmp(tmpl+l-6, "XXXXXX", 6)) {
44+
errno = EINVAL;
45+
*tmpl = 0;
46+
return tmpl;
47+
}
48+
49+
do {
50+
__randname(tmpl+l-6);
51+
if (stat(tmpl, &st)) {
52+
if (errno != ENOENT) *tmpl = 0;
53+
return tmpl;
54+
}
55+
} while (--retries);
56+
57+
*tmpl = 0;
58+
errno = EEXIST;
59+
return tmpl;
60+
}
61+
62+
#if 0
63+
3664
static char *
3765
tempnam(const char *dir, const char *pfx)
3866
{
@@ -61,6 +89,40 @@ tempnam(const char *dir, const char *pfx)
6189
return strdup(s);
6290
}
6391

92+
#else
93+
94+
static char *
95+
tempnam (const char *dir, const char *pfx)
96+
{
97+
char buf[FILENAME_MAX];
98+
99+
int dirlen = strlen(dir);
100+
if (dirlen>=FILENAME_MAX)
101+
return NULL;
102+
103+
memcpy(buf,dir,FILENAME_MAX);
104+
buf[dirlen] = '/';
105+
int all;
106+
107+
if (pfx) {
108+
all = dirlen + 1 + strlen(pfx);
109+
if (all>=FILENAME_MAX)
110+
return NULL;
111+
memcpy(buf+dirlen+1, pfx, FILENAME_MAX - all);
112+
} else {
113+
all = dirlen + 1;
114+
}
115+
116+
memcpy(buf+all, "XXXXXX", 6 );
117+
all += 6 ;
118+
buf[all]= 0;
119+
char *ptr = (char *)malloc(all);
120+
memcpy(ptr, buf, all);
121+
return mktemp(ptr);
122+
}
123+
124+
#endif
125+
64126
static int
65127
lockf(int fd, int cmd, off_t len) {
66128
return 0;

0 commit comments

Comments
 (0)