zfs の buildworld に成功した2007年03月11日 11時35分48秒

zfs patchset 2 を試している。buildkernel は簡単な修正を施した後に成功した。

なぜだか分からないエラーが発生して、cd cddl && makemake 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

折をみて試していきたい。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2007/03/11/1250715/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。