Re: [ceph-users] compile error on centos 5.9

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



于 2013/8/5 12:03, Sage Weil 写道:
[Moving to ceph-devel]

On Mon, 5 Aug 2013, huangjun wrote:
hi,all
i compiled ceph 0.61.3 on centos 5.9,the "sh autogen.sh" and
"./configure " is ok, but when i "make", an error occurs, the err log:
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/concurrence.h:
In function ?int rados::cls::lock::lock(librados::IoCtx*, const
std::string&, const std::string&, ClsLockType, const std::string&, const
std::string&, const std::string&, const utime_t&, uint8_t)?:
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/concurrence.h:83:
error: ?class __gnu_cxx::lock? is not a function,
cls/lock/cls_lock_client.cc:59: error: conflict with ?int
rados::cls::lock::lock(librados::IoCtx*, const std::string&, const
std::string&, ClsLockType, const std::string&, const std::string&, const
std::string&, const utime_t&, uint8_t)?
cls/lock/cls_lock_client.cc:62: error: in call to ?lock?
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/concurrence.h:
In member function ?void
rados::cls::lock::Lock::lock_shared(librados::ObjectWriteOperation*)?:
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/concurrence.h:83:
error: ?class __gnu_cxx::lock? is not a function,
cls/lock/cls_lock_client.cc:59: error: conflict with ?int
rados::cls::lock::lock(librados::IoCtx*, const std::string&, const
std::string&, ClsLockType, const std::string&, const std::string&, const
std::string&, const utime_t&, uint8_t)?
cls/lock/cls_lock_client.cc:181: error: in call to ?lock?
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/concurrence.h:
In member function ?int
rados::cls::lock::Lock::lock_shared(librados::IoCtx*, const std::string&)?:
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/concurrence.h:83:
error: ?class __gnu_cxx::lock? is not a function,
cls/lock/cls_lock_client.cc:59: error: conflict with ?int
rados::cls::lock::lock(librados::IoCtx*, const std::string&, const
std::string&, ClsLockType, const std::string&, const std::string&, const
std::string&, const utime_t&, uint8_t)?
cls/lock/cls_lock_client.cc:187: error: in call to ?lock?
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/concurrence.h:
In member function ?void
rados::cls::lock::Lock::lock_exclusive(librados::ObjectWriteOperation*)?:
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/concurrence.h:83:
error: ?class __gnu_cxx::lock? is not a function,
cls/lock/cls_lock_client.cc:59: error: conflict with ?int
rados::cls::lock::lock(librados::IoCtx*, const std::string&, const
std::string&, ClsLockType, const std::string&, const std::string&, const
std::string&, const utime_t&, uint8_t)?
cls/lock/cls_lock_client.cc:193: error: in call to ?lock?
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/concurrence.h:
In member function ?int
rados::cls::lock::Lock::lock_exclusive(librados::IoCtx*, const
std::string&)?:
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/concurrence.h:83:
error: ?class __gnu_cxx::lock? is not a function,
cls/lock/cls_lock_client.cc:59: error: conflict with ?int
rados::cls::lock::lock(librados::IoCtx*, const std::string&, const
std::string&, ClsLockType, const std::string&, const std::string&, const
std::string&, const utime_t&, uint8_t)?
cls/lock/cls_lock_client.cc:199: error: in call to ?lock?
make[3]: *** [cls_lock_client.o] Error 1

the gcc version is 4.1.2, does this make a difference?
I suspect so.  Mark Nelson successfully built on RHEL5 a while back but
needed to use a newer gcc.

what should i do if i want to use ceph-fuse client on centos 5.9? must
compile the ceph? or just compile the ceph-fuse code?
Right.. you only need the ceph-fuse code.  'make ceph-fuse' may do the
trick.  Otherwise, you'll need to just strip out the osd stuff from
Makefile.am.

Either way, let us know how it goes, as others would benefit from this as
well!

Thanks-
sage
unfortunatly, i installed gcc4.4.7 and recompiled source code, but failed again:

/usr/include/sys/types.h:46: error: conflicting declaration ‘typedef __loff_t loff_t’ /usr/include/linux/types.h:30: error: ‘loff_t’ has a previous declaration as ‘typedef __kernel_loff_t loff_t’ /usr/include/sys/types.h:62: error: conflicting declaration ‘typedef __dev_t dev_t’ /usr/include/linux/types.h:13: error: ‘dev_t’ has a previous declaration as ‘typedef __kernel_dev_t dev_t’
In file included from /usr/include/sys/types.h:133,
from /usr/include/stdlib.h:438,
from ./include/buffer.h:29,
from mds/Capability.h:19,
from mds/Capability.cc:15:
/usr/include/time.h:105: error: conflicting declaration ‘typedef void* timer_t’ /usr/include/linux/types.h:22: error: ‘timer_t’ has a previous declaration as ‘typedef __kernel_timer_t timer_t’
In file included from /usr/include/stdlib.h:438,
from ./include/buffer.h:29,
from mds/Capability.h:19,
from mds/Capability.cc:15:
/usr/include/sys/types.h:198: error: conflicting declaration ‘typedef long int int64_t’ /usr/include/linux/types.h:98: error: ‘int64_t’ has a previous declaration as ‘typedef __s64 int64_t’ /usr/include/sys/types.h:204: error: conflicting declaration ‘typedef long unsigned int u_int64_t’ /usr/include/linux/types.h:97: error: ‘u_int64_t’ has a previous declaration as ‘typedef __u64 u_int64_t’
In file included from /usr/include/sys/types.h:220,
from /usr/include/stdlib.h:438,
from ./include/buffer.h:29,
from mds/Capability.h:19,
from mds/Capability.cc:15:
/usr/include/sys/select.h:78: error: conflicting declaration ‘typedef struct fd_set fd_set’ /usr/include/linux/types.h:12: error: ‘fd_set’ has a previous declaration as ‘typedef struct __kernel_fd_set fd_set’
In file included from /usr/include/stdlib.h:438,
from ./include/buffer.h:29,
from mds/Capability.h:19,
from mds/Capability.cc:15:
/usr/include/sys/types.h:248: error: conflicting declaration ‘typedef __blkcnt64_t blkcnt_t’ /usr/include/linux/types.h:114: error: ‘blkcnt_t’ has a previous declaration as ‘typedef long unsigned int blkcnt_t’
In file included from ./include/buffer.h:48,
from mds/Capability.h:19,
from mds/Capability.cc:15:
/usr/include/stdint.h:56: error: conflicting declaration ‘typedef long unsigned int uint64_t’ /usr/include/linux/types.h:96: error: ‘uint64_t’ has a previous declaration as ‘typedef __u64 uint64_t’
In file included from mds/Capability.h:24,
from mds/Capability.cc:15:
mds/mdstypes.h: In member function ‘size_t __gnu_cxx::hash<vinodeno_t>::operator()(const vinodeno_t&) const’: mds/mdstypes.h:252: error: no match for call to ‘(__gnu_cxx::hash<long long unsigned int>) (const snapid_t&)’ mds/mdstypes.h: In member function ‘void dentry_key_t::encode(ceph::bufferlist&) const’: mds/mdstypes.h:531: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 4 has type ‘uint64_t’ mds/mdstypes.h:531: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 4 has type ‘uint64_t’ mds/mdstypes.h: In member function ‘size_t __gnu_cxx::hash<metareqid_t>::operator()(const metareqid_t&) const’: mds/mdstypes.h:673: error: no match for call to ‘(__gnu_cxx::hash<long long unsigned int>) (int64_t)’ mds/mdstypes.h:673: error: no match for call to ‘(__gnu_cxx::hash<long long unsigned int>) (int)’ mds/mdstypes.h:673: error: no match for call to ‘(__gnu_cxx::hash<long long unsigned int>) (const uint64_t&)’
make[3]: *** [Capability.o] Error 1

Mark, do you have meet this problem before, and would you like to share your experiences on centos 5?

thanks!
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux