Hello,<br><br>Following the document below, I am trying to install lustre (as oss) on Nexenta which has opensolaris kernel<br><br><a href="http://wiki.lustre.org/index.php/Lustre_OSS/MDS_with_ZFS_DMU">http://wiki.lustre.org/index.php/Lustre_OSS/MDS_with_ZFS_DMU</a><br>
<br>According to the doc, "The uOSS-DMU can run on Solaris or Linux. MDS/MGS/clients run only on Linux."<br><br>So, I followed the steps. For 'sh autogen.sh', './configure' etc. there were no problem.<br>
But, when I  tried 'make' step there were some errors:<br><br>----------<br>gcc -o lib/zpool/vdev_cache.os -c -pipe -Wall -Werror -std=c99 -Wno-switch -Wno-unused -Wno-missing-braces -Wno-parentheses -Wno-uninitialized -fno-strict-aliasing -DZFS_NO_KERNEL -D_GNU_SOURCE -D_POSIX_PTHREAD_SEMANTICS -D__EXTENSIONS__ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_REENTRANT -DTEXT_DOMAIN=\"lustre\" -ggdb -O2 -fPIC -I. -Ilib/zfscommon/include -Ilib/avl/include -Ilib/nvpair/include -Ilib/port/include lib/zpool/vdev_cache.c<br>
cc1: warnings being treated as errors<br>lib/zpool/vdev_cache.c: In function 'vdev_cache_read':<br>lib/zpool/vdev_cache.c:278: warning: implicit declaration of function 'P2CROSS'<br>scons: *** [lib/zpool/vdev_cache.os] Error 1<br>
scons: building terminated because of errors.<br>make[3]: *** [all] Error 2<br>make[3]: Leaving directory `/export/home/portakal/lustre/lustre/zfs-lustre'<br>make[2]: *** [all-recursive] Error 1<br>make[2]: Leaving directory `/export/home/portakal/lustre/lustre'<br>
make[1]: *** [all-recursive] Error 1<br>make[1]: Leaving directory `/export/home/portakal/lustre'<br>make: *** [all] Error 2<br>----------<br><br>It says "implicit declaration of function 'P2CROSS'". So, I opened vdev_cache.c and added a prototype for P2CROSS like "#define P2CROSS(x, y, align)    (((x) ^ (y)) > (align) - 1)" (btw, was this a bug ?)<br>
<br>After that, I tried 'make' step again<br><br>But now, it gives another error:<br><br>----------<br>gcc -g -Wall -fPIC -D_GNU_SOURCE -g -O2 -L../../lnet/utils  -o lustre_uoss  lustre_uoss-lustre_uoss.o ../../lustre/ost/libost.a ../../lustre/ofd/libofd.a ../../lustre/mgc/libmgc.a ../../lustre/obdclass/libobdclass.a ../../lustre/ptlrpc/libptlrpc.a ../../lustre/dmu-osd/libdmuosd.a ../../lustre/lvfs/liblvfs_dmu.a -L /export/home/portakal/lustre/lustre/zfs-lustre/src/lib/udmu -lldmu-udmu -L /export/home/portakal/lustre/lustre/zfs-lustre/src/lib/ctl -lldmu-ctl-server -L /export/home/portakal/lustre/lustre/zfs-lustre/src/lib/zpool -lldmu-zpool -L /export/home/portakal/lustre/lustre/zfs-lustre/src/lib/zfscommon -lldmu-zfscommon -L /export/home/portakal/lustre/lustre/zfs-lustre/src/lib/nvpair -lldmu-nvpair -L /export/home/portakal/lustre/lustre/zfs-lustre/src/lib/avl -lldmu-avl -L /export/home/portakal/lustre/lustre/zfs-lustre/src/lib/umem -lumem -L /export/home/portakal/lustre/lustre/zfs-lustre/src/lib/port -lldmu-port -lpthread -lz ../../lnet/lnet/liblnet.a ../../lnet/ulnds/socklnd/libsocklnd.a ../../lnet/libcfs/libcfs.a -lnsl -lsocket -lrt -lm<br>
../../lnet/libcfs/libcfs.a(libcfs_a-posix-lock.o): In function `sema_init':<br>/export/home/portakal/lustre/lnet/libcfs/posix-lock.c:46: multiple definition of `sema_init'<br>collect2: ld returned 1 exit status<br>
make[4]: *** [lustre_uoss] Error 1<br>make[4]: Leaving directory `/export/home/portakal/lustre/lustre/utils'<br>make[3]: *** [all-recursive] Error 1<br>make[3]: Leaving directory `/export/home/portakal/lustre/lustre/utils'<br>
make[2]: *** [all-recursive] Error 1<br>make[2]: Leaving directory `/export/home/portakal/lustre/lustre'<br>make[1]: *** [all-recursive] Error 1<br>make[1]: Leaving directory `/export/home/portakal/lustre'<br>make: *** [all] Error 2<br>
----------<br><br><br>What sould I do to overcome solve this problem ? I opened posix-lock.c and could not see any multiple definition of 'sema_init'. These errors are caused by another reason I guess. In my opinion, I cannot solve this by modifying source code.<br>
<br><br>Thanks in advance<br><br><br>