Open5
WasmLinux: ビルド環境の整備(macOS)
とりあえずmacOSでもビルドできるようにしておく。
Linuxをチェックアウトするには大文字小文字を区別するファイルシステムが必要だが、APFSにも大文字小文字を区別するモードがあるのでそちらが使える。
Makefileの挙動が違う
とりあえず touch
法にした。追いたいけどSIPが有効だとDTrace使えないからなぁ。。(面倒)
ヘッダのインストールに失敗する
% make ARCH=lkl INSTALL_HDR_PATH=../prefix headers_install
scripts/Makefile.clang:18: *** Specify CROSS_COMPILE or add '--target=' option to scripts/Makefile.clang. Stop.
make: *** [__sub-make] Error 2
非gccだとこんなん出るのか。。
% make CROSS_COMPILE=wasm32 ARCH=lkl INSTALL_HDR_PATH=../prefix headers_install
HOSTCC scripts/unifdef
./scripts/Makefile.asm-generic:25: redundant generic-y found in arch/lkl/include/uapi/asm/Kbuild: siginfo.h
HDRINST usr/include/asm-generic/ioctl.h
sed: 1: "/SPDX-License-Identifie ...": extra characters at the end of p command
sed: 4: "
s/([[:space:](])(__us ...": RE error: empty (sub)expression
make[2]: *** [usr/include/asm-generic/ioctl.h] Error 1
make[1]: *** [headers] Error 2
make: *** [__sub-make] Error 2
sed
が GNUのsedじゃないので失敗する。。
どうでも良いけど $*
より "$@"
の方が打率高いのか。
Musl
特記事項なし。
% AR=`pwd`/../_toolchain/bin/warp-ar RANLIB=`pwd`/../host/bin/llvm-ranlib ¥
CC=`pwd`/../_toolchain/bin/warp-cc CFLAGS=-fPIC ./configure --enable-debug ¥
--disable-shared --build=wasm32 --prefix=../prefix
Busybox
これも特記事項無しだけど、ハードコードのパスを止められるように、そろそろツールチェインのwrapperを開発しないとな。。
% make -j10 AR=`pwd`/../_toolchain/bin/warp-ar CC=`pwd`/../_toolchain/bin/warp-hosted-cc
あと、macOS付属の sed
で良いのかは確認していない。まぁGNU sed統一で良いんじゃないですかね。。