Open5

WasmLinux: ビルド環境の整備(macOS)

okuokuokuoku

とりあえずmacOSでもビルドできるようにしておく。

Linuxをチェックアウトするには大文字小文字を区別するファイルシステムが必要だが、APFSにも大文字小文字を区別するモードがあるのでそちらが使える。

okuokuokuoku

ヘッダのインストールに失敗する

% 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じゃないので失敗する。。

https://github.com/okuoku/wasmlinux-build/commit/8a8c338fa4ba0573f140250e0b83f24cfacc001a

どうでも良いけど $* より "$@" の方が打率高いのか。

okuokuokuoku

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
okuokuokuoku

Busybox

これも特記事項無しだけど、ハードコードのパスを止められるように、そろそろツールチェインのwrapperを開発しないとな。。

% make -j10 AR=`pwd`/../_toolchain/bin/warp-ar CC=`pwd`/../_toolchain/bin/warp-hosted-cc

あと、macOS付属の sed で良いのかは確認していない。まぁGNU sed統一で良いんじゃないですかね。。