ビルド終盤の linking ruby のあとでエラーが起きています。
zlibがインストールされていない?
dpkg -l |grep zlib
を実行すると
ledsun@MSI:~/ruby.wasm[1]►dpkg -l |grep zlib ii zlib1g:amd64 1:1.2.11.dfsg-2ubuntu9.2 amd64 compression library - runtime ii zlib1g-dev:amd64 1:1.2.11.dfsg-2ubuntu9.2 amd64 compression library - development
zlib
はインストールされています。
sudo apt --reinstall install zlib1g zlib1g-dev
してみます。変わりません。
エラーログファイルをみる
build/wasm32-unknown-wasi/head-wasm32-unknown-wasi-full-js-debug/ext/zlib/mkmf.log
をみます。
build/wasm32-unknown-wasi/head-wasm32-unknown-wasi-full-js-debug/ext/zlib/mkmf.log · GitHub
15~16行目
conftest.c:3:10: fatal error: 'zlib.h' file not found #include <zlib.h>
echo '#include <zlib.h>' | gcc -o a.out -E -
は成功します。
zlib.h
が見えなくなる条件があるようです。
ビルドの出力を確認
コンパイルオプションぽいものをさがします。
HEAD is now at aabc019 Skip VM_CALL_BLOCKISEQ for Ruby < 3.3 echo aabc019684d8b4a1ed66c2a1ca48da7bbb18dcc0 | /bin/sh /home/ledsun/ruby.wasm/build/checkouts/head/tool/ifchange /home/ledsun/ruby.wasm/build/checkouts/head/.bundle/.timestamp/typeprof.revision - /home/ledsun/ruby.wasm/build/checkouts/head/.bundle/.timestamp/typeprof.revision unchanged BASERUBY = /home/ledsun/ruby.wasm/build/x86_64-pc-linux/baseruby-head/opt/bin/ruby --disable=gems CC = /home/ledsun/ruby.wasm/build/checkouts/head/tool/wasm-clangw /home/ledsun/ruby.wasm/build/toolchain/wasi-sdk/bin/clang LD = /home/ledsun/ruby.wasm/build/toolchain/wasi-sdk/bin/clang LDSHARED = /home/ledsun/ruby.wasm/build/toolchain/wasi-sdk/bin/clang CFLAGS = -fdeclspec -O3 -fno-fast-math -g -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wundef -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_MMAN -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_PROCESS_CLOCKS XCFLAGS = -DWASM_SETJMP_STACK_BUFFER_SIZE=24576 -DWASM_FIBER_STACK_BUFFER_SIZE=24576 -DWASM_SCAN_STACK_BUFFER_SIZE=24576 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fvisibility=hidden -DRUBY_EXPORT -I. -I.ext/include/wasm32-wasi -I/home/ledsun/ruby.wasm/build/checkouts/head/include -I/home/ledsun/ruby.wasm/build/checkouts/head -I/home/ledsun/ruby.wasm/build/checkouts/head/enc/unicode/15.0.0 CPPFLAGS = -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_MMAN -D_WASI_EMULATED_GETPID -D_WASI_EMULATED_PROCESS_CLOCKS DLDFLAGS = -Xlinker --stack-first -Xlinker -z -Xlinker stack-size=16777216 /home/ledsun/ruby.wasm/build/wasm32-unknown-wasi/wasi-vfs-0.1.1/libwasi_vfs.a @/home/ledsun/ruby.wasm/build/wasm32-unknown-wasi/head-wasm32-unknown-wasi-full-js-debug-ext/js/link.filelist @/home/ledsun/ruby.wasm/build/wasm32-unknown-wasi/head-wasm32-unknown-wasi-full-js-debug-ext/witapi/link.filelist /home/ledsun/ruby.wasm/build/wasm32-unknown-wasi/head-wasm32-unknown-wasi-full-js-debug-ext/extinit.o SOLIBS = -lcrypt -lm -lwasi-emulated-mman -lwasi-emulated-signal -lwasi-emulated-getpid -lwasi-emulated-process-clocks LANG = C.UTF-8 LC_ALL = LC_CTYPE = MFLAGS = RUSTC = rustc YJIT_RUSTC_ARGS = --crate-name=yjit --crate-type=staticlib --edition=2021 -g -C lto=thin -C opt-level=3 -C overflow-checks=on '--out-dir=/home/ledsun/ruby.wasm/build/wasm32-unknown-wasi/head-wasm32-unknown-wasi-full-js-debug/yjit/target/release/' /home/ledsun/ruby.wasm/build/checkouts/head/yjit/src/lib.rs clang version 13.0.0 (https://github.com/llvm/llvm-project fd1d8c2f04dde23bee0fb3a7d069a9b1046da979)
インクルードパスっぽいものをさがします。
-I. -I.ext/include/wasm32-wasi -I/home/ledsun/ruby.wasm/build/checkouts/head/include -I/home/ledsun/ruby.wasm/build/checkouts/head -I/home/ledsun/ruby.wasm/build/checkouts/head/enc/unicode/15.0.0
ここにzlib.hがないのでしょうか?
locate zlib.h
を実行すると
ledsun@MSI:~/ruby.wasm[1]►locate zlib.h /home/ledsun/.cache/node-gyp/17.0.1/include/node/zlib.h /mnt/c/Ruby30-x64/msys64/mingw64/include/bzlib.h /mnt/c/Ruby30-x64/msys64/mingw64/include/szlib.h /mnt/c/Ruby30-x64/msys64/mingw64/include/zlib.h /mnt/c/Users/led_l/.cargo/registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.26+1.3.0/libgit2/deps/zlib/zlib.h /mnt/c/Users/led_l/.cargo/registry/src/github.com-1ecc6299db9ec823/libz-sys-1.1.3/src/zlib/zlib.h /mnt/c/Users/led_l/.cargo/registry/src/github.com-1ecc6299db9ec823/libz-sys-1.1.3/src/zlib-ng/zlib.h /mnt/c/Users/led_l/AppData/Local/Programs/Python/Python311/Doc/html/library/zlib.html /mnt/c/bm311/psql/include/zlib.h /usr/include/zlib.h /usr/include/node/zlib.h /usr/share/doc/nodejs/api/zlib.html /usr/src/linux-ibm-headers-5.15.0-1034/include/linux/zlib.h /usr/src/linux-ibm-headers-5.15.0-1035/include/linux/zlib.h
/usr/include/zlib.h
があります。
コピーしたらいいのかな?
cp /usr/include/zlib.h /home/ledsun/ruby.wasm/build/wasm32-unknown-wasi/head-wasm32-unknown-wasi-full-js-debug/.ext/include/wasm32-wasi
/.
してみます。
変わりません。
ファイルが見つかってないわけじゃないのかなあ?
CIはどうなっているの?
Nightly release · ruby/ruby.wasm@d0e1445 · GitHub
同じエラーが起きています。 成功しているジョブもあります。
Ruby 3.2ならビルドが通るのでは?
rake npm:ruby-3_2-wasm-wasi
してみます。
headとおなじエラーがでます。 CIとは環境のちがいもあるのかもしれません。