zfs の buildworld に成功した ― 2007年03月11日 11時35分48秒
なぜだか分からないエラーが発生して、cd cddl && make
も make buildoworld
も失敗していた。メーリングリストの様子だと、他の人達は問題ないようである。少し手間取りずつもソースを追っていくと、unistd.h に問題があるらしかった。
unistd.h は /usr/src/compat/opensolaris/include/unistd.h に zfs パッチによって作られるみたいで、それを参照している。ファイルを表示すると空のファイルになっていた。
他にもパッチが当たっていたり、独自の変更もあるので、patch -R -p0 < zfs_20061117.patch
をやり、zfs のパッチを無効にしたつもりだったが、それが正しく出来ていないのが原因だった。最初から、zfs 関連は全て削除して始めた方が良さそうだ。
zfs patchset 2 に追加して当てたパッチは以下の二つ。
--- sys/contrib/opensolaris/uts/common/fs/zfs/dnode.c.orig2 Sun Mar 4 23:09:11 2007
+++ sys/contrib/opensolaris/uts/common/fs/zfs/dnode.c Sun Mar 4 23:09:32 2007
@@ -605,7 +605,7 @@
dnode_t *winner;
dn = dnode_create(os, (dnode_phys_t *)db->db.db_data+idx,
db, object);
- winner = atomic_cas_ptr(&children_dnodes[idx], NULL, dn);
+ winner = (dnode_t*)atomic_cas_ptr(&children_dnodes[idx], NULL, dn);
if (winner != NULL) {
dnode_destroy(dn);
dn = winner;
--- Makefile.inc1.orig Sun Mar 4 01:50:22 2007
+++ Makefile.inc1 Tue Mar 6 00:06:37 2007
@@ -1013,7 +1013,7 @@
lib/libradius lib/libsbuf lib/libtacplus lib/libutil \
${_lib_libypclnt} lib/libz lib/msun \
${_secure_lib_libcrypto} ${_secure_lib_libssh} \
- ${_secure_lib_libssl}
+ ${_secure_lib_libssl} lib/libthr
_generic_libs= cddl/lib gnu/lib ${_kerberos5_lib} lib ${_secure_lib} usr.bin/lex/lib
折をみて試していきたい。
最近のコメント