fix wasm build
authorJérémy Lal <kapouer@melix.org>
Fri, 8 Nov 2024 04:35:57 +0000 (04:35 +0000)
committerPeter Michael Green <plugwash@raspbian.org>
Fri, 8 Nov 2024 04:35:57 +0000 (04:35 +0000)
Forwarded: not-needed
Reviewed-By: Yadd <yadd@debian.org>
Last-Update: 2024-04-05

Gbp-Pq: Name fix-wasm-build.patch

build/wasm.js
llhttp/Makefile
llhttp/bin/build_wasm.ts

index fd90ac26fc9e8b4dc495acf5c24ac1472ba1f87a..eded00ac611f0b9bc42aaf87a9f3ea5ccc240d95 100644 (file)
@@ -8,6 +8,7 @@ const ROOT = resolve(__dirname, '../')
 const WASM_SRC = resolve(__dirname, '../deps/llhttp')
 const WASM_OUT = resolve(__dirname, '../lib/llhttp')
 const DOCKERFILE = resolve(__dirname, './Dockerfile')
+const { CLANG } = process.env
 
 let platform = process.env.WASM_PLATFORM
 if (!platform && process.argv[2]) {
@@ -35,22 +36,16 @@ if (process.argv[2] === '--docker') {
   process.exit(0)
 }
 
-// Gather information about the tools used for the build
-const buildInfo = execSync('apk info -v').toString()
-if (!buildInfo.includes('wasi-sdk')) {
-  console.log('Failed to generate build environment information')
-  process.exit(-1)
-}
-writeFileSync(join(WASM_OUT, 'wasm_build_env.txt'), buildInfo)
-
 // Build wasm binary
-execSync(`clang \
- --sysroot=/usr/share/wasi-sysroot \
+execSync(`${CLANG} \
+ -nodefaultlibs \
+ --sysroot=/usr \
  -target wasm32-unknown-wasi \
  -Ofast \
  -fno-exceptions \
  -fvisibility=hidden \
  -mexec-model=reactor \
+ -Wl,-lc \
  -Wl,-error-limit=0 \
  -Wl,-O3 \
  -Wl,--lto-O3 \
@@ -72,14 +67,16 @@ writeFileSync(
 )
 
 // Build wasm simd binary
-execSync(`clang \
- --sysroot=/usr/share/wasi-sysroot \
+execSync(`${CLANG} \
+ -nodefaultlibs \
+ --sysroot=/usr \
  -target wasm32-unknown-wasi \
  -msimd128 \
  -Ofast \
  -fno-exceptions \
  -fvisibility=hidden \
  -mexec-model=reactor \
+ -Wl,-lc \
  -Wl,-error-limit=0 \
  -Wl,-O3 \
  -Wl,--lto-O3 \
index d9c6d35d8c231f4492f0b2a4e25ddfe42d2828d1..f3afeba481e29b9f69df6e58edc158f9456f01bf 100644 (file)
@@ -81,7 +81,7 @@ postversion: release
        git checkout main
 
 generate:
-       npx ts-node bin/generate.ts
+       ts-node bin/generate.ts
 
 install: build/libllhttp.a build/libllhttp.so
        $(INSTALL) -d $(DESTDIR)$(INCLUDEDIR)
index 95c1ceda691320e9c082fe8e03d17b36b5e0bfdc..d6183b58501cd4d183612aa7ea60da66c61f6888 100644 (file)
@@ -25,6 +25,7 @@ if (process.argv[2] === '--setup') {
     mkdirSync(join(WASM_SRC, 'build'));
     process.exit(0);
   } catch (error: unknown) {
+// @ts-ignore
     if (isErrorWithCode(error) && error.code !== 'EEXIST') {
       throw error;
     }
@@ -52,6 +53,7 @@ if (process.argv[2] === '--docker') {
 try {
   mkdirSync(WASM_OUT);
 } catch (error: unknown) {
+// @ts-ignore
   if (isErrorWithCode(error) && error.code !== 'EEXIST') {
     throw error;
   }
@@ -63,12 +65,14 @@ execSync('npm run build', { cwd: WASM_SRC, stdio: 'inherit' });
 // Build wasm binary
 execSync(
   `clang \
- --sysroot=/usr/share/wasi-sysroot \
+ -nodefaultlibs \
+ --sysroot=/usr \
  -target wasm32-unknown-wasi \
  -Ofast \
  -fno-exceptions \
  -fvisibility=hidden \
  -mexec-model=reactor \
+ -Wl,-lc \
  -Wl,-error-limit=0 \
  -Wl,-O3 \
  -Wl,--lto-O3 \