tagarsi, arun
2006-Dec-05 06:41 UTC
[Lustre-discuss] Lustre-1.4.7.3 & e2fsprogs-1.39.cvfs1 Compile problems
Hi I wanted to update anyone that was interested in the progress of getting lustre compiled for PPC64 on IBM JS21 blades. I have a catch 22 situation which makes no sense to me maybe someone out there knows why I have this situation and why this is happening. The make of lustre-1.4.7.3 fails with make[3]: Leaving directory `/scr2/src/lustre-1.4.7.3/lustre/obdecho'' Making all in doc make[3]: Entering directory `/scr2/src/lustre-1.4.7.3/lustre/doc'' make[3]: Nothing to be done for `all''. make[3]: Leaving directory `/scr2/src/lustre-1.4.7.3/lustre/doc'' Making all in utils make[3]: Entering directory `/scr2/src/lustre-1.4.7.3/lustre/utils'' Making all in Lustre make[4]: Entering directory `/scr2/src/lustre-1.4.7.3/lustre/utils/Lustre'' make[4]: Nothing to be done for `all''. make[4]: Leaving directory `/scr2/src/lustre-1.4.7.3/lustre/utils/Lustre'' make[4]: Entering directory `/scr2/src/lustre-1.4.7.3/lustre/utils'' gcc -m64 -g -Wall -fPIC -g -O2 -L../../lnet/utils -o llverdev llverdev.o -lext2fs -lblkid /usr/bin/ld: skipping incompatible /usr/lib/gcc/ppc64-redhat-linux/3.4.5/../../../libblkid.a when searching for -lblkid /usr/bin/ld: skipping incompatible /usr/lib/libblkid.a when searching for -lblkid /usr/bin/ld: cannot find -lblkid collect2: ld returned 1 exit status make[4]: *** [llverdev] Error 1 make[4]: Leaving directory `/scr2/src/lustre-1.4.7.3/lustre/utils'' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/scr2/src/lustre-1.4.7.3/lustre/utils'' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/scr2/src/lustre-1.4.7.3/lustre'' make[1]: *** [all-recursive] Error 1 Now I have found where the libblkid.a file is built in the e2fsprogs-1.39.cfs1 and this fails with the following if I try to compile it. I configured this with --with-lustre=/scr2/src/lustre-1.4.7.3/ lfsck.c: In function `get_response'': lfsck.c:1553: warning: comparison is always false due to limited range of data type LD lfsck cc -pthread -I /scr2/src/lustre-1.4.7.3//lustre/include -Wall lfsck_common.o lfsck.o -o lfsck -L /scr2/src/lustre-1.4.7.3//lustre/utils -llustreapi ../lib/libext2fs.a ../lib/libcom_err.a ../lib/libblkid.a ../lib/libuuid.a -ldb-4.2 /usr/bin/ld: skipping incompatible /scr2/src/lustre-1.4.7.3//lustre/utils/liblustreapi.a when searching for -llustreapi /usr/bin/ld: cannot find -llustreapi collect2: ld returned 1 exit status make[2]: *** [lfsck] Error 1 make[2]: Leaving directory `/scr2/src/lustre-1.4.7.3/e2fsprogs-1.39.cfs1/e2fsck'' make[1]: *** [all-progs-recursive] Error 1 make[1]: Leaving directory `/scr2/src/lustre-1.4.7.3/e2fsprogs-1.39.cfs1'' make: *** [all] Error 2 But at this point the library I need to continue to build the lustre-1.4.7.3 tools is now available in the failed build in the e2fsprogs tree. If I copy the needed library out to my search path and then do a make with tests and liblustre disabled I can build the lustre tools ok. Unfortunately I need the e2fsprogs to build fully and so I need a complete liblustre library to get the e2fsprogs to build it seems. I need lustre-1.4.7.3 to build first but I have no idea where to get the library archive it needs to do it with. I also know that I am looking at a further problem with liblustre if I cannot get the e2fsprogs to build without them.>From the client perspective I have a running lustre kernel and I am able to mount the lustre file system but I need the e2fsprogs for the oss''s .Thanks Arun -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.clusterfs.com/pipermail/lustre-discuss/attachments/20061205/cf0daeaa/attachment.html
tagarsi, arun
2006-Dec-05 10:05 UTC
[Lustre-discuss] Lustre-1.4.7.3 & e2fsprogs-1.39.cvfs1 Compile problems
Thanks for the reply, Did you compile the e2fsprogs first ? as this seems to be the only place where I can get the library libblkid.a from . My last mail to group showed that if you try to install the lustre tools first even with --disable-liblustre it fails to compile and complains about the missing 64bit archive libblkid.a . I managed to compile the e2fsprogs with --disable-lfsck but found the default compile is 32bit using Redhat RHEL4.4 PPC64( I checked by doing a objdump -f of the libblkid.a file) If I try to compile in 64bit the e2fsprogs fails with ./configure --disable-lfsck CC=''cc -m64'' LD=''ld -melfppc64'' Then make I get the following result :-( CC mke2fs.c CC util.c LD mke2fs CC badblocks.c In file included from ../lib/ext2fs/ext2_fs.h:19, from badblocks.c:55: ../lib/ext2fs/ext2_types.h:98: error: conflicting types for ''__u64'' /usr/include/asm-ppc64/types.h:36: error: previous declaration of ''__u64'' was here ../lib/ext2fs/ext2_types.h:114: error: conflicting types for ''__s64'' /usr/include/asm-ppc64/types.h:35: error: previous declaration of ''__s64'' was here make[2]: *** [badblocks.o] Error 1 make[2]: Leaving directory `/scr2/src/lustre-1.4.7.3/e2fsprogs-1.39.cfs1/misc'' make[1]: *** [all-progs-recursive] Error 1 make[1]: Leaving directory `/scr2/src/lustre-1.4.7.3/e2fsprogs-1.39.cfs1'' make: *** [all] Error 2 But at this stage it has created a 64bit libblkid.a which I can use to complete the compile of lustre ( if I manually copy it to the right place :-) ), what I do not know is what this may impact and I do not like this as a fix to my problems even though the testing of the product seems to work ok. thanks Arun -----Original Message----- From: Stephen Simms [mailto:ssimms@indiana.edu] Sent: Tuesday, December 05, 2006 4:23 PM To: tagarsi, arun Subject: Re: [Lustre-discuss] Lustre-1.4.7.3 & e2fsprogs-1.39.cvfs1 Compile problems we''re running sles 9 on our js-21 blades and were able to get 1.4.7.1 to go though we had to disable liblustre in the process. not sure if this was suggested on list or not, but it worked for us. All the best! Stephen Simms
Andreas Dilger
2006-Dec-05 17:07 UTC
[Lustre-discuss] Lustre-1.4.7.3 & e2fsprogs-1.39.cvfs1 Compile problems
On Dec 05, 2006 13:40 -0000, tagarsi, arun wrote:> I wanted to update anyone that was interested in the progress of getting lustre compiled for PPC64 on IBM JS21 blades. I have a catch 22 situation which makes no sense to me maybe someone out there knows why I have this situation and why this is happening. > > The make of lustre-1.4.7.3 fails with > gcc -m64 -g -Wall -fPIC -g -O2 -L../../lnet/utils -o llverdev llverdev.o -lext2fs -lblkid > /usr/bin/ld: skipping incompatible /usr/lib/gcc/ppc64-redhat-linux/3.4.5/../../../libblkid.a when searching for -lblkid > /usr/bin/ld: skipping incompatible /usr/lib/libblkid.a when searching for -lblkidYou can just remove llverdev and llverfs from the build targets. They are diagnostic programs for testing block device and raw filesystem integrity, but are not needed for actual operations.> lfsck.c: In function `get_response'': > lfsck.c:1553: warning: comparison is always false due to limited range of data typeCould you please supply the code that corresponds to this line number.> Unfortunately I need the e2fsprogs to build fully and so I need a complete liblustre library to get the e2fsprogs to build it seems.You can use ./configure --with-lustre=/path/to/lustre/lustre so that it can access the liblustreapi.h and lustre_user.h headers. Cheers, Andreas -- Andreas Dilger Principal Software Engineer Cluster File Systems, Inc.
tagarsi, arun
2006-Dec-06 04:35 UTC
[Lustre-discuss] Lustre-1.4.7.3 & e2fsprogs-1.39.cvfs1 Compile problems
Thanks for your mail, disabling llverdev and llverfs still gets me no further , the compile still is looking for a 64bit version of the libblkid.a. It seems I have to build e2fsprogs first!!! To build the e2fsprogs in 64bit I had to do the following, again I am not sure if this is ok to do or not but it was the only way to get the e2fsprogs to compile properly and create the libblkid.a file needed to complete the build of lustre Compile in 64bit the e2fsprogs fails with ./configure --disable-lfsck CC=''cc -m64'' Then make I get the following result :-( CC mke2fs.c CC util.c LD mke2fs CC badblocks.c In file included from ../lib/ext2fs/ext2_fs.h:19, from badblocks.c:55: ../lib/ext2fs/ext2_types.h:98: error: conflicting types for ''__u64'' /usr/include/asm-ppc64/types.h:36: error: previous declaration of ''__u64'' was here ../lib/ext2fs/ext2_types.h:114: error: conflicting types for ''__s64'' /usr/include/asm-ppc64/types.h:35: error: previous declaration of ''__s64'' was here make[2]: *** [badblocks.o] Error 1 make[2]: Leaving directory `/scr2/src/lustre-1.4.7.3/e2fsprogs-1.39.cfs1/misc'' make[1]: *** [all-progs-recursive] Error 1 make[1]: Leaving directory `/scr2/src/lustre-1.4.7.3/e2fsprogs-1.39.cfs1'' The lustre kernel type.h in the /usr/src/linux/include/asm-ppc64 shows typedef __signed__ long __s64; typedef unsigned long __u64; But the e2fsprogs looks at s64 and u64 as using long long in the lib/ext2fs/ext2_types.h I changed this to match the kernel and it compiles ok . As the make install of e2fsprogs still does not place the libblkid.a in the library path I had to copy it manually , I am not sure why this is . After that I got lustre to build but with liblustre disabled.>From all this I am not sure if we can rely on this installation , testing the OST''s gives us a OS hang and no logs to debug so it may be due to my lack of compile/library prowess :-).The code you wanted is :- 1537 log_write("%s: pass5 finished\n", progname); 1538 out: 1539 dbcp->c_close(dbcp); 1540 #endif 1541 return rc; 1542 } 1543 1544 int get_response() 1545 { 1546 char yes[] = "Yy"; 1547 char no[] = "Nn"; 1548 char c; 1549 int rc = -1; 1550 1551 while (1) { 1552 c = getchar(); 1553 if ( c == EOF) 1554 break; 1555 1556 if (strchr(yes, c)) { 1557 rc = 1; 1558 break; 1559 } 1560 1561 if (strchr(no, c)) { 1562 rc = 0; 1563 break; 1564 } 1565 } 1566 return(rc); 1567 } Thanks Arun -----Original Message----- From: Andreas Dilger [mailto:adilger@clusterfs.com] Sent: Wednesday, December 06, 2006 12:08 AM To: tagarsi, arun Cc: lustre-discuss@clusterfs.com Subject: Re: [Lustre-discuss] Lustre-1.4.7.3 & e2fsprogs-1.39.cvfs1 Compile problems On Dec 05, 2006 13:40 -0000, tagarsi, arun wrote:> I wanted to update anyone that was interested in the progress of getting lustre compiled for PPC64 on IBM JS21 blades. I have a catch 22 situation which makes no sense to me maybe someone out there knows why I have this situation and why this is happening. > > The make of lustre-1.4.7.3 fails with > gcc -m64 -g -Wall -fPIC -g -O2 -L../../lnet/utils -o llverdev llverdev.o -lext2fs -lblkid > /usr/bin/ld: skipping incompatible /usr/lib/gcc/ppc64-redhat-linux/3.4.5/../../../libblkid.a when searching for -lblkid > /usr/bin/ld: skipping incompatible /usr/lib/libblkid.a when searching for -lblkidYou can just remove llverdev and llverfs from the build targets. They are diagnostic programs for testing block device and raw filesystem integrity, but are not needed for actual operations.> lfsck.c: In function `get_response'': > lfsck.c:1553: warning: comparison is always false due to limited range of data typeCould you please supply the code that corresponds to this line number.> Unfortunately I need the e2fsprogs to build fully and so I need a complete liblustre library to get the e2fsprogs to build it seems.You can use ./configure --with-lustre=/path/to/lustre/lustre so that it can access the liblustreapi.h and lustre_user.h headers. Cheers, Andreas -- Andreas Dilger Principal Software Engineer Cluster File Systems, Inc.