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
-lblkid
You 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 type
Could 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.