#topicpath
----
*Dazukofs cannot be complied with kernel-2.6.30 &br;Dazukofs が kernel-2.6.30ではコンパイルできない? [#u73cd5bc]
:Environment(環境)|linux-image 2.6.30-5~
gcc version 4.3.4 (Debian 4.3.4-1) 
:Date|2009/10/10 (2009/08/25)

kernel-2.6.30 の環境では、 dazukofs-3.1.0-rc2 はビルドできません。((3.1.0は rc2と中身は変わらないので同じ現象がおこります - 2009/09/28))

This problem was solved in release 3.1.1.~
dazukofs-3.1.1で解決されました。 (2009/10/09)~
http://lists.gnu.org/archive/html/dazuko-devel/2009-10/msg00001.html


~Error Message
 make -C /lib/modules/`uname -r`/build SUBDIRS="`pwd`" modules
 make[1]: Entering directory `/usr/src/linux-headers-2.6.30-1-686'
   CC [M]  /dazukofs-3.1.0-rc2/file.o
 /dazukofs-3.1.0-rc2/file.c: In function 'dazukofs_open':
 /dazukofs-3.1.0-rc2/file.c:185: error: dereferencing pointer to incomplete type
 make[4]: *** [/dazukofs-3.1.0-rc2/file.o] Error 1
 make[3]: *** [_module_dazukofs-3.1.0-rc2] Error 2
 make[2]: *** [sub-make] Error 2
 make[1]: *** [all] Error 2
 make[1]: Leaving directory `/usr/src/linux-headers-2.6.30-1-686'
 make: *** [dazukofs_modules] Error 2

[[Dazuko Help ML のスレッド:http://lists.gnu.org/archive/html/dazuko-help/2009-08/msg00007.html]]によると、 file.c および ign_dev.c に

 #include <linux/sched.h>

を入れてやれば良いようです。~
3.1.0 releaseには入っていないのでパッチを当てることが必要です。~
ref: http://lists.gnu.org/archive/html/dazuko-devel/2009-09/msg00001.html
~dazukofs-3.1.1で解決されました。 (2009/10/09)~
ref: http://lists.gnu.org/archive/html/dazuko-devel/2009-10/msg00001.html

また、Lino Sanfilippoによると以下のパッチをあてることも推奨されています。~
John Ognessは、以下のパッチを重要なものとは考えていないので 3.1.0リリースには含まれていません。(2009/09/25)~
(Following patches are also recommended by Lino Sanfilippo,but these are not included in 3.1.0 release).
~http://lists.gnu.org/archive/html/dazuko-devel/2009-07/msg00020.html~
http://lists.gnu.org/archive/html/dazuko-devel/2009-07/msg00021.html

~パッチされたファイルのビルド結果は以下のようになりました。
 make -C /lib/modules/`uname -r`/build SUBDIRS="`pwd`" modules
 make[1]: Entering directory `/usr/src/linux-headers-2.6.30-1-686'
   CC [M]  /O/dazukofs-3.1.0-rc2.patched/super.o
   CC [M]  /dazukofs-3.1.0-rc2.patched/inode.o
   CC [M]  /dazukofs-3.1.0-rc2.patched/file.o
   CC [M]  /dazukofs-3.1.0-rc2.patched/dentry.o
   CC [M]  /dazukofs-3.1.0-rc2.patched/mmap.o
   CC [M]  /dazukofs-3.1.0-rc2.patched/group_dev.o
   CC [M]  /dazukofs-3.1.0-rc2.patched/ign_dev.o
   CC [M]  /dazukofs-3.1.0-rc2.patched/ctrl_dev.o
   CC [M]  /dazukofs-3.1.0-rc2.patched/dev.o
   CC [M]  /dazukofs-3.1.0-rc2.patched/event.o
 /dazukofs-3.1.0-rc2.patched/event.c: In function 'dazukofs_get_event':
 /dazukofs-3.1.0-rc2.patched/event.c:1064: warning: 'grp' may be used uninitialized in this function
   LD [M]  /dazukofs-3.1.0-rc2.patched/dazukofs.o
   Building modules, stage 2.
   MODPOST 1 modules
   CC      /dazukofs-3.1.0-rc2.patched/dazukofs.mod.o
   LD [M]  /dazukofs-3.1.0-rc2.patched/dazukofs.ko
 make[1]: Leaving directory `/usr/src/linux-headers-2.6.30-1-686'

となり warning は出ているものの うまく動作しているようです。

*Dazukofs cannot be complied with kernel-2.6.33/34 &br;Dazukofs が kernel-2.6.33/34 ではコンパイルできない? [#j0b781ea]
(Newest rc3 cannot be compiled with kernel-2.6.32/30 &br;rc2 rc3 が 2.6.32/30ではコンパイルできない。 )

According to the thread of [[linux-fs-devel:http://www.kerneltrap.com/mailarchive/linux-fsdevel/2009/12/3/6614393]], get_nlinks param is removed from fsstack_copy_attr_all.

linux/fs/fs_stack.h~
before 2.6.32 
 extern void fsstack_copy_attr_all(struct inode *dest, const struct inode *src,
                                 int (*get_nlinks)(struct inode *));
 
after 2.6.33
 extern void fsstack_copy_attr_all(struct inode *dest, const struct inode *src);

Use following version .
|kernel version|dazuko-fs version|
|before 2.6.32|3.1.3-rc1|
|2.6.33,2.6.34,2.6.35|3.1.3|
|2.6.36|3.1.4|


or Add NULL parameter to fsstack_copy_attr_all function in inode.c and dentry.c .

if you want to use 3.1.3 , the patch was posted at dazuko-devel forum.
-[[[Dazuko-devel] Patch to build DazukoFS 3.1.3 with 3.6.32 / Ubuntu LTS 10:http://lists.gnu.org/archive/html/dazuko-devel/2010-08/msg00002.html]]

*Dazukofs cannot be complied with kernel-2.6.35 &br;Dazukofs が kernel-2.6.35ではコンパイルできない? [#ie7238aa]
with Ubuntu 10.10  both DazukoFS 3.1.3 and DazukoFS 3.1.4-rc2 are not compiled.

3.1.3
 /home/user1/dazukofs-3.1.3# make
 make -C /lib/modules/`uname -r`/build SUBDIRS="`pwd`" modules
 make[1]: Entering directory `/usr/src/linux-headers-2.6.35-22-generic'
   CC [M]  /home/user1/dazukofs-3.1.3/super.o
   CC [M]  /home/user1/dazukofs-3.1.3/inode.o
   CC [M]  /home/user1/dazukofs-3.1.3/file.o
 /home/user1/dazukofs-3.1.3/file.c: In function ‘dazukofs_fsync’: 
 /home/user1/dazukofs-3.1.3/file.c:243: warning: passing argument 2 of ‘lower_file->f_op->fsync’ makes integer from pointer without a cast
 /home/user1/dazukofs-3.1.3/file.c:243: note: expected ‘int’ but argument is of type ‘struct dentry *’
 /home/user1/dazukofs-3.1.3/file.c:243: error: too many arguments to function ‘lower_file->f_op->fsync’
 /home/user1/dazukofs-3.1.3/file.c: At top level:
 /home/user1/dazukofs-3.1.3/file.c:304: warning: initialization from incompatible pointer type
 /home/user1/dazukofs-3.1.3/file.c:339: warning: initialization from incompatible pointer type
  make[2]: *** [/home/user1/dazukofs-3.1.3/file.o] Error 1
  make[1]: *** [_module_/home/user1/dazukofs-3.1.3] Error 2
  make[1]: Leaving directory `/usr/src/linux-headers-2.6.35-22-generic'
  make: *** [dazukofs_modules] Error 2

3.1.4rc2
 /home/user1/dazukofs-3.1.4-rc2# make
 make -C /lib/modules/`uname -r`/build SUBDIRS="`pwd`" modules
 make[1]: Entering directory `/usr/src/linux-headers-2.6.35-22-generic'
  CC [M]   /home/user1/dazukofs-3.1.4-rc2/super.o
 /home/user1/dazukofs-3.1.4-rc2/super.c: In function ‘dazukofs_evict_inode’:
 /home/user1/dazukofs-3.1.4-rc2/super.c:74: error: implicit declaration of function ‘end_writeback’
 /home/user1/dazukofs-3.1.4-rc2/super.c: At top level:
 /home/user1/dazukofs-3.1.4-rc2/super.c:108: error: unknown field ‘evict_inode’ specified in initializer
 /home/user1/dazukofs-3.1.4-rc2/super.c:108: warning: initialization from incompatible pointer type
 make[2]: *** [/home/user1/dazukofs-3.1.4-rc2/super.o] Error 1
 make[1]: *** [_module_/home/user1/dazukofs-3.1.4-rc2] Error 2
 make[1]: Leaving directory `/usr/src/linux-headers-2.6.35-22-generic'
 make: *** [dazukofs_modules] Error 2

Solution
 copy file.c and ctl_dev.c form 3.1.4-rc2 to 3.1.3
only tested with ext2,ext3,ext4 filesystem

success log
 /home/user1/dazukofs-3.1.3#make
 make -C /lib/modules/`uname -r`/build SUBDIRS="`pwd`" modules
 make[1]: Entering directory `/usr/src/linux-headers-2.6.35-22-generic'
  CC [M]  /home/user1/dazukofs-3.1.3/super.o
  CC [M]  /home/user1/dazukofs-3.1.3/inode.o
  CC [M]  /home/user1/dazukofs-3.1.3/file.o
  CC [M]  /home/user1/dazukofs-3.1.3/dentry.o
  CC [M]  /home/user1/dazukofs-3.1.3/mmap.o
  CC [M]  /home/user1/dazukofs-3.1.3/group_dev.o
  CC [M]  /home/user1/dazukofs-3.1.3/ign_dev.o
  CC [M]  /home/user1/dazukofs-3.1.3/ctrl_dev.o
  CC [M]  /home/user1/dazukofs-3.1.3/dev.o
  CC [M]  /home/user1/dazukofs-3.1.3/event.o
  LD [M]  /home/user1/dazukofs-3.1.3/dazukofs.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/user1/dazukofs-3.1.3/dazukofs.mod.o
  LD [M]  /home/user1/dazukofs-3.1.3/dazukofs.ko
 make[1]: Leaving directory `/usr/src/linux-headers-2.6.35-22-generic'



*** Commnet [#p02b7b5a]
-dazukofs のテストプロセス(test/showfilesを使った場合)はうまく動いていることが確認されていますが、avira-antivir 3.0.5との組み合わせで固まります。(Merlin) 2009/08/31~
test/showfiles with libdazukofs.so works well but we found that Avira-Antivir_3.5.0 with this dazukofs-3.1.0-rc2.patched makes Kernel down.
-avira-aintivir 3.0.5.0 及び 3.0.5.11 のどちらもだめです。また、3.0.5.11のcontrib ディレクトリに変更はありませんので、まだ 2.6.30以降との組み合わせではうまく動かないようです。(Merlin) 2009/09/12~
-dazukofs-3.1.2と avira-antivir-3.0.5.11の組み合わせで動作しているように見えます。解決か? (avira-antivir 側のcontribディレクトリには、 3.0.5.12,3.0.5.13でも変化なし。)
-Avira AntiVir Server (Unix) も Version: 3.0.5-12(2009/08/31)でも問題があるようです。(Merlin) 2009/10/09~
-avira-antivir-3.1.3.4-1でも kernel-2.6.30 以降用のdazukoは、contribに無い。(Merlin) 2010/06/09~

-avira-antivir-3.1.3.5-0 でも contrib に変わりはない。(Merlin) 2011/04/28~

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS