[Gluster-devel] FreeBSD issue

田口毅 taguchi at iij.ad.jp
Wed Jul 29 02:12:14 UTC 2009


Hi, all
I'm try to use glusterfs 2.0.4 on my FreeBSD7.2 box.

In libgrusterfs/src/compat.h:
#ifdef GF_BSD_HOST_OS
....<snip>...
#ifndef ino64_t
#define ino64_t ino_t
#endif
... <snip>...

But on FreeBSD (and other OS which has UFS based FS),
ino_t is unsigned 32bit integer. not unsigned 64bit
integer.
I think this is a big probrem.

And on FreeBSD, sizeof size_t is depend on machine arch.
on amd64(EM64T), it is long uint, but on i386, it is uint.
So I made a tiny patch. it seem work.

But I can not make patch for ino_t probrem.
Does anyone support 32bit ino_t?

Thanks.


----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.

-------------- next part --------------
--- libglusterfs/src/logging.h.orig	2009-07-29 10:27:46.000000000 +0900
+++ libglusterfs/src/logging.h	2009-07-29 10:55:22.000000000 +0900
@@ -57,9 +57,19 @@
 #    error '64 bit ino_t is must for GlusterFS to work, Compile with "CFLAGS=-D__DARWIN_64_BIT_INO_T"'
 #  endif /* __DARWIN_64_BIT_INO_T */
 
-#else /* !LINUX && !DARWIN */
+#elif GF_BSD_HOST_OS
+#  include <machine/param.h>
+#  undef ALIGN
+#  ifndef i386_btop   /* amd64 arch */
+#    define GF_PRI_SIZET     "lu"
+#  else
+#    define GF_PRI_SIZET     "u"
+#  endif
+#  define GF_PRI_NLINK     "u"
+
+#else /* !LINUX && !DARWIN && !BSD */
 
-/* BSD and Solaris : Change as per testing there.. */
+/* Solaris : Change as per testing there.. */
 #  define GF_PRI_SIZET     "lu"
 #  define GF_PRI_NLINK     "u"
 


More information about the Gluster-devel mailing list