* Errors compiling ceph argonaut
@ 2012-08-02 19:39 Nick Couchman
2012-08-07 19:23 ` Josh Durgin
0 siblings, 1 reply; 5+ messages in thread
From: Nick Couchman @ 2012-08-02 19:39 UTC (permalink / raw)
To: ceph-devel
Running into some errors compiling ceph-0.48 (argonaut) on RHEL5. It gets most of the way through the build process and then throws the following:
CXX librbd_la-cls_rbd_client.lo
/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'
/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'
/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'
/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'
/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'
/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'
make[3]: *** [librbd_la-cls_rbd_client.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory `/usr/src/redhat/BUILD/ceph-0.48argonaut.test/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/usr/src/redhat/BUILD/ceph-0.48argonaut.test/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/src/redhat/BUILD/ceph-0.48argonaut.test/src'
make: *** [all-recursive] Error 1
So, looks like a source file is pulling in both sys/types.h and linux/types.h, and that's causing problems. From what I can see, most of the files only pull in one or the other (via some ifdef/elif code blocks), but evidently one of them does not. I have not been able to track it down, yet - is this something anyone else has encountered? 0.44 seemed to work fine, this seems to be unique to 0.48.
Thanks,
Nick
--------
This e-mail may contain confidential and privileged material for the sole use of the intended recipient. If this email is not intended for you, or you are not responsible for the delivery of this message to the intended recipient, please note that this message may contain SEAKR Engineering (SEAKR) Privileged/Proprietary Information. In such a case, you are strictly prohibited from downloading, photocopying, distributing or otherwise using this message, its contents or attachments in any way. If you have received this message in error, please notify us immediately by replying to this e-mail and delete the message from your mailbox. Information contained in this message that does not relate to the business of SEAKR is neither endorsed by nor attributable to SEAKR.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Errors compiling ceph argonaut
2012-08-02 19:39 Errors compiling ceph argonaut Nick Couchman
@ 2012-08-07 19:23 ` Josh Durgin
2012-08-09 15:26 ` Nick Couchman
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Josh Durgin @ 2012-08-07 19:23 UTC (permalink / raw)
To: Nick Couchman; +Cc: ceph-devel
On 08/02/2012 12:39 PM, Nick Couchman wrote:
> Running into some errors compiling ceph-0.48 (argonaut) on RHEL5. It gets most of the way through the build process and then throws the following:
>
> CXX librbd_la-cls_rbd_client.lo
> /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'
> /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'
> /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'
> /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'
> /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'
> /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'
> make[3]: *** [librbd_la-cls_rbd_client.lo] Error 1
> make[3]: *** Waiting for unfinished jobs....
> make[3]: Leaving directory `/usr/src/redhat/BUILD/ceph-0.48argonaut.test/src'
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory `/usr/src/redhat/BUILD/ceph-0.48argonaut.test/src'
> make[1]: *** [all] Error 2
> make[1]: Leaving directory `/usr/src/redhat/BUILD/ceph-0.48argonaut.test/src'
> make: *** [all-recursive] Error 1
>
> So, looks like a source file is pulling in both sys/types.h and linux/types.h, and that's causing problems. From what I can see, most of the files only pull in one or the other (via some ifdef/elif code blocks), but evidently one of them does not. I have not been able to track it down, yet - is this something anyone else has encountered? 0.44 seemed to work fine, this seems to be unique to 0.48.
It looks like this might be src/include/types.h including sys/types.h
and src/include/rbd_types.h, which is including linux/types.h.
Does adding ifdefs to src/include/types.h so it includes linux/types.h
on linux work?
> Thanks,
> Nick
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Errors compiling ceph argonaut
2012-08-07 19:23 ` Josh Durgin
@ 2012-08-09 15:26 ` Nick Couchman
2012-08-09 19:09 ` Nick Couchman
2012-08-09 21:04 ` Nick Couchman
2 siblings, 0 replies; 5+ messages in thread
From: Nick Couchman @ 2012-08-09 15:26 UTC (permalink / raw)
To: Josh Durgin; +Cc: ceph-devel
>>> On 2012/08/07 at 13:23, Josh Durgin <josh.durgin@inktank.com> wrote:
>
> It looks like this might be src/include/types.h including sys/types.h
> and src/include/rbd_types.h, which is including linux/types.h.
>
> Does adding ifdefs to src/include/types.h so it includes
linux/types.h
> on linux work?
>
Here's what I put in src/include/types.h:
#if defined(__linux__)
#include <linux/types.h>
#elif defined(__FreeBSD__)
#include <sys/types.h>
#endif
(this is copied from other include files in the ceph tree).
This actually causes the compile to fail earlier, on
librgw_a-librgw.o:
make[3]: Entering directory `/root/ceph-0.48argonaut/src'
CXX librgw_a-librgw.o
/usr/include/stdint.h:41: 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/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*
/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*
/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*
/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*
/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*
/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*
make[3]: *** [librgw_a-librgw.o] Error 1
-Nick
--------
This e-mail may contain confidential and privileged material for the sole use of the intended recipient. If this email is not intended for you, or you are not responsible for the delivery of this message to the intended recipient, please note that this message may contain SEAKR Engineering (SEAKR) Privileged/Proprietary Information. In such a case, you are strictly prohibited from downloading, photocopying, distributing or otherwise using this message, its contents or attachments in any way. If you have received this message in error, please notify us immediately by replying to this e-mail and delete the message from your mailbox. Information contained in this message that does not relate to the business of SEAKR is neither endorsed by nor attributable to SEAKR.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Errors compiling ceph argonaut
2012-08-07 19:23 ` Josh Durgin
2012-08-09 15:26 ` Nick Couchman
@ 2012-08-09 19:09 ` Nick Couchman
2012-08-09 21:04 ` Nick Couchman
2 siblings, 0 replies; 5+ messages in thread
From: Nick Couchman @ 2012-08-09 19:09 UTC (permalink / raw)
To: Josh Durgin; +Cc: ceph-devel
>>> On 2012/08/07 at 13:23, Josh Durgin <josh.durgin@inktank.com> wrote:
>
> It looks like this might be src/include/types.h including sys/types.h
> and src/include/rbd_types.h, which is including linux/types.h.
>
> Does adding ifdefs to src/include/types.h so it includes linux/types.h
> on linux work?
>
I enabled GCC verbose mode and I get the following output...maybe someone can spot something...
CXX librbd_la-cls_rbd_client.lo
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --disable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=x86_64-redhat-linux
Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-52)
/usr/libexec/gcc/x86_64-redhat-linux/4.1.2/cc1plus -quiet -v -I. -MD .libs/librbd_la-cls_rbd_client.d -MF .deps/librbd_la-cls_rbd_client.Tpo -MP -MT librbd_la-cls_rbd_client.lo -MQ .libs/librbd_la-cls_rbd_client.o -D_GNU_SOURCE -DHAVE_CONFIG_H -D__CEPH__ -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_THREAD_SAFE -D__STDC_FORMAT_MACROS -D_GNU_SOURCE -DCEPH_LIBDIR="/usr/local/lib" -DPIC librbd/cls_rbd_client.cc -quiet -dumpbase cls_rbd_client.cc -mtune=generic -auxbase-strip .libs/librbd_la-cls_rbd_client.o -g -O2 -Wall -Winit-self -Wpointer-arith -Wnon-virtual-dtor -Wno-invalid-offsetof -Wstrict-null-sentinel -version -fno-strict-aliasing -fPIC -o /tmp/ccaA79WL.s
ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../x86_64-redhat-linux/include"
#include "..." search starts here:
#include <...> search starts here:
.
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/x86_64-redhat-linux
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/backward
/usr/local/include
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include
/usr/include
End of search list.
GNU C++ version 4.1.2 20080704 (Red Hat 4.1.2-52) (x86_64-redhat-linux)
compiled by GNU C version 4.1.2 20080704 (Red Hat 4.1.2-52).
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 9850d5c14c968e608f9414a15e0e39d2
/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'
/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'
/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'
/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'
/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'
/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'
make[3]: *** [librbd_la-cls_rbd_client.lo] Error 1
make[3]: Leaving directory `/root/ceph-0.48argonaut/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/root/ceph-0.48argonaut/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/root/ceph-0.48argonaut/src'
make: *** [all-recursive] Error 1
--------
This e-mail may contain confidential and privileged material for the sole use of the intended recipient. If this email is not intended for you, or you are not responsible for the delivery of this message to the intended recipient, please note that this message may contain SEAKR Engineering (SEAKR) Privileged/Proprietary Information. In such a case, you are strictly prohibited from downloading, photocopying, distributing or otherwise using this message, its contents or attachments in any way. If you have received this message in error, please notify us immediately by replying to this e-mail and delete the message from your mailbox. Information contained in this message that does not relate to the business of SEAKR is neither endorsed by nor attributable to SEAKR.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Errors compiling ceph argonaut
2012-08-07 19:23 ` Josh Durgin
2012-08-09 15:26 ` Nick Couchman
2012-08-09 19:09 ` Nick Couchman
@ 2012-08-09 21:04 ` Nick Couchman
2 siblings, 0 replies; 5+ messages in thread
From: Nick Couchman @ 2012-08-09 21:04 UTC (permalink / raw)
To: ceph-devel
> On 08/02/2012 12:39 PM, Nick Couchman wrote:
>> Running into some errors compiling ceph-0.48 (argonaut) on RHEL5. It gets
> most of the way through the build process and then throws the following:
>>
>> CXX librbd_la-cls_rbd_client.lo
>> /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'
>> /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'
>> /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'
>> /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'
>> /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'
>> /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'
>> make[3]: *** [librbd_la-cls_rbd_client.lo] Error 1
>> make[3]: *** Waiting for unfinished jobs....
>> make[3]: Leaving directory `/usr/src/redhat/BUILD/ceph-0.48argonaut.test/src'
>> make[2]: *** [all-recursive] Error 1
>> make[2]: Leaving directory `/usr/src/redhat/BUILD/ceph-0.48argonaut.test/src'
>> make[1]: *** [all] Error 2
>> make[1]: Leaving directory `/usr/src/redhat/BUILD/ceph-0.48argonaut.test/src'
>> make: *** [all-recursive] Error 1
>>
>> So, looks like a source file is pulling in both sys/types.h and
> linux/types.h, and that's causing problems. From what I can see, most of the
> files only pull in one or the other (via some ifdef/elif code blocks), but
> evidently one of them does not. I have not been able to track it down, yet -
> is this something anyone else has encountered? 0.44 seemed to work fine,
> this seems to be unique to 0.48.
>
Well, I got it to build, but had to do a couple of things that I'm not sure how they will affect the functionality. Hopefully someone can tell me if I've misstepped. Here's what I did:
- Remove all includes for linux/types.h and just went with sys/types.h. This fixed the above compile issues.
- Then ran into a "undefined reference to sync_file_range", which I traced back to the following RHEL5 bug: https://bugzilla.redhat.com/show_bug.cgi?id=518581. This is marked as CANTFIX, so I used the code mentioned in one of the comments as a work around - I placed it in the FileStore.cc file.
I can send over the full patch if anyone is interested - most of the folks using Ceph are probably building on newer platforms that don't have these issues, but I have a good collection of EL5 systems that I need to keep around that I'd like to run Ceph on, so it's fairly important for me. I have packages build in the OpenSuSE Build System for CentOS5, SLES11, openSuSE 11.4/12.1/12.2.
-Nick
--------
This e-mail may contain confidential and privileged material for the sole use of the intended recipient. If this email is not intended for you, or you are not responsible for the delivery of this message to the intended recipient, please note that this message may contain SEAKR Engineering (SEAKR) Privileged/Proprietary Information. In such a case, you are strictly prohibited from downloading, photocopying, distributing or otherwise using this message, its contents or attachments in any way. If you have received this message in error, please notify us immediately by replying to this e-mail and delete the message from your mailbox. Information contained in this message that does not relate to the business of SEAKR is neither endorsed by nor attributable to SEAKR.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-08-09 21:04 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-02 19:39 Errors compiling ceph argonaut Nick Couchman
2012-08-07 19:23 ` Josh Durgin
2012-08-09 15:26 ` Nick Couchman
2012-08-09 19:09 ` Nick Couchman
2012-08-09 21:04 ` Nick Couchman
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.