-
Notifications
You must be signed in to change notification settings - Fork 178
Debian with 2.6.26 : Compilation fails #14
Comments
Actually, it looks to me like an flaw in the autoconf tests. Can you #undef HAVE_2ARGS_SET_FS_PWD in spl_config.h and try the build again. |
I launched the ./configure, I edited the spl_config.h file and relaunched the make. And now I have a new error : sql:~/spl-0.4.9# make make all-recursive make[1]: Entering directory `/root/spl-0.4.9' Making all in lib make[2]: Entering directory `/root/spl-0.4.9/lib' /bin/sh ../libtool --tag=CC --silent --mode=compile gcc -DHAVE_CONFIG_H -include ../spl_config.h -Wall -Wstrict-prototypes -Werror -Wshadow -D__USE_LARGEFILE64 -g -O2 -MT list.lo -MD -MP -MF .deps/list.Tpo -c -o list.lo list.c mv -f .deps/list.Tpo .deps/list.Plo /bin/sh ../libtool --tag=CC --silent --mode=link gcc -Wall -Wstrict-prototypes -Werror -Wshadow -D__USE_LARGEFILE64 -g -O2 -o libcommon.la list.lo make[2]: Leaving directory `/root/spl-0.4.9/lib' Making all in cmd make[2]: Entering directory `/root/spl-0.4.9/cmd' gcc -DHAVE_CONFIG_H -include ../spl_config.h -I../lib -Wall -Wstrict-prototypes -Werror -Wshadow -D__USE_LARGEFILE64 -g -O2 -MT spl.o -MD -MP -MF .deps/spl.Tpo -c -o spl.o spl.c mv -f .deps/spl.Tpo .deps/spl.Po /bin/sh ../libtool --tag=CC --silent --mode=link gcc -Wall -Wstrict-prototypes -Werror -Wshadow -D__USE_LARGEFILE64 -g -O2 -o spl spl.o gcc -DHAVE_CONFIG_H -include ../spl_config.h -I../lib -Wall -Wstrict-prototypes -Werror -Wshadow -D__USE_LARGEFILE64 -g -O2 -MT splat.o -MD -MP -MF .deps/splat.Tpo -c -o splat.o splat.c mv -f .deps/splat.Tpo .deps/splat.Po /bin/sh ../libtool --tag=CC --silent --mode=link gcc -Wall -Wstrict-prototypes -Werror -Wshadow -D__USE_LARGEFILE64 -g -O2 ../lib/libcommon.la -o splat splat.o make[2]: Leaving directory `/root/spl-0.4.9/cmd' Making all in scripts make[2]: Entering directory `/root/spl-0.4.9/scripts' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/root/spl-0.4.9/scripts' Making all in module make[2]: Entering directory `/root/spl-0.4.9/module' make -C /usr/src/linux-headers-2.6.26-2-amd64/ SUBDIRS=`pwd` O=/usr/src/linux-headers-2.6.26-2-amd64/ modules make[3]: Entering directory `/usr/src/linux-headers-2.6.26-2-amd64' CC [M] /root/spl-0.4.9/module/spl/spl-debug.o CC [M] /root/spl-0.4.9/module/spl/spl-proc.o CC [M] /root/spl-0.4.9/module/spl/spl-kmem.o CC [M] /root/spl-0.4.9/module/spl/spl-thread.o CC [M] /root/spl-0.4.9/module/spl/spl-taskq.o CC [M] /root/spl-0.4.9/module/spl/spl-rwlock.o CC [M] /root/spl-0.4.9/module/spl/spl-vnode.o /root/spl-0.4.9/module/spl/spl-vnode.c:629: error: conflicting types for ‘set_fs_pwd’ include/linux/fs_struct.h:24: error: previous declaration of ‘set_fs_pwd’ was here /root/spl-0.4.9/module/spl/spl-vnode.c: In function ‘set_fs_pwd’: /root/spl-0.4.9/module/spl/spl-vnode.c:634: error: incompatible types in assignment /root/spl-0.4.9/module/spl/spl-vnode.c:635: error: ‘struct fs_struct’ has no member named ‘pwdmnt’ /root/spl-0.4.9/module/spl/spl-vnode.c:636: error: ‘struct fs_struct’ has no member named ‘pwdmnt’ /root/spl-0.4.9/module/spl/spl-vnode.c:637: error: incompatible types in assignment make[6]: *** [/root/spl-0.4.9/module/spl/spl-vnode.o] Error 1 make[5]: *** [/root/spl-0.4.9/module/spl] Error 2 make[4]: *** [_module_/root/spl-0.4.9/module] Error 2 make[3]: *** [sub-make] Error 2 make[3]: Leaving directory `/usr/src/linux-headers-2.6.26-2-amd64' make[2]: *** [modules] Error 2 make[2]: Leaving directory `/root/spl-0.4.9/module' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/root/spl-0.4.9' make: *** [all] Error 2 Thanks. |
Trying this under Lenny which does things just a little bit differently than the distros I'd tried exposed quite a few rough edges. I've fixed the following issue and now everything builds clean for me at least under a stock Lenny install. Please try it. Check sourcelink is set before passing (8fd4e3a) |
Hi. Sorry for the delay, I was very busy. So the 3 patches are working. I've tried on 32 and 64 bits machines. And no problems, all is working well, the "splat -a" is not returning any problems. I'm testing the ZFS now. Thanks. |
During the make install I see a little issue : splzfs32:~/spl-0.4.9# make install Making install in lib make[1]: Entering directory `/root/spl-0.4.9/lib' make[2]: Entering directory `/root/spl-0.4.9/lib' make[2]: Nothing to be done for `install-exec-am'. make[2]: Nothing to be done for `install-data-am'. make[2]: Leaving directory `/root/spl-0.4.9/lib' make[1]: Leaving directory `/root/spl-0.4.9/lib' Making install in cmd make[1]: Entering directory `/root/spl-0.4.9/cmd' make[2]: Entering directory `/root/spl-0.4.9/cmd' test -z "/usr/local/sbin" || /bin/mkdir -p "/usr/local/sbin" /bin/sh ../libtool --silent --mode=install /usr/bin/install -c spl splat '/usr/local/sbin' make[2]: Nothing to be done for `install-data-am'. make[2]: Leaving directory `/root/spl-0.4.9/cmd' make[1]: Leaving directory `/root/spl-0.4.9/cmd' Making install in scripts make[1]: Entering directory `/root/spl-0.4.9/scripts' make[2]: Entering directory `/root/spl-0.4.9/scripts' make[2]: Nothing to be done for `install-exec-am'. make[2]: Nothing to be done for `install-data-am'. make[2]: Leaving directory `/root/spl-0.4.9/scripts' make[1]: Leaving directory `/root/spl-0.4.9/scripts' Making install in module make[1]: Entering directory `/root/spl-0.4.9/module' make -C /usr/src/linux-headers-2.6.26-2-686/ SUBDIRS=`pwd` \ INSTALL_MOD_PATH= \ INSTALL_MOD_DIR=addon/spl modules_install make[2]: Entering directory `/usr/src/linux-headers-2.6.26-2-686' INSTALL /root/spl-0.4.9/module/spl/spl.ko INSTALL /root/spl-0.4.9/module/splat/splat.ko DEPMOD 2.6.26-2-686 make[2]: Leaving directory `/usr/src/linux-headers-2.6.26-2-686' find /lib/modules/ -name 'modules.*' | xargs rm -f make[1]: Leaving directory `/root/spl-0.4.9/module' Making install in include make[1]: Entering directory `/root/spl-0.4.9/include' make[2]: Entering directory `/root/spl-0.4.9/include' make[2]: Nothing to be done for `install-exec-am'. destname=spl-0.4.9/2.6.26-2-686; \ instdest=//usr/local/src/$destname; \ instfiles=`find . -name '*.h'`; \ for instfile in $instfiles; do \ /usr/bin/install -c -D $instfile $instdest/$instfile; \ done make[2]: Leaving directory `/root/spl-0.4.9/include' make[1]: Leaving directory `/root/spl-0.4.9/include' make[1]: Entering directory `/root/spl-0.4.9' make[2]: Entering directory `/root/spl-0.4.9' make[2]: Nothing to be done for `install-exec-am'. destname=spl-0.4.9/2.6.26-2-686; \ instdest=//usr/local/src/$destname; \ echo "0.4.9" >$instdest/spl.release; \ for instfile in spl_config.h module/NONE; do \ /usr/bin/install -c -D $instfile $instdest/$instfile; \ done /usr/bin/install: cannot stat `module/NONE': No such file or directory make[2]: *** [install-data-local] Error 1 make[2]: Leaving directory `/root/spl-0.4.9' make[1]: *** [install-am] Error 2 make[1]: Leaving directory `/root/spl-0.4.9' make: *** [install-recursive] Error 1 splzfs32:~/spl-0.4.9# It's also on 64 bits. And when I try to compile ZFS, it fails because the module/NONE file is not present. I'm creating it by hand to continue testing ZFS. Thanks. |
I tried to compile spl under the regular debian stable kernel (on a 64 bit server).
Here are the results :
./configure --with-linux=/usr/src/linux-headers-2.6.26-2-common/ --with-linux-obj=/usr/src/linux-headers-2.6.26-2-amd64/ : Ok, no problems.
make : it fails
Apparently, the 2.6.26 kernel doesn't have functions which are required to compile and use the SPL.
I think this problem cannot be resolved by patching the spl, I think the "only" solution is to use the backport kernel, which is reported in the issue #10
What are your thoughts about it ?
The text was updated successfully, but these errors were encountered: