Hi, Jerome and Yan, Thanks for reporting the bug. I have piled a ticket #1973 to track this bug in http://trac.mpich.org/projects/mpich/ticket/1973. We will let you know when we fixed it. I think the line of "#define _XOPEN_SOURCE 600” is used for compilation portability on Mac. But I don’t know why it causes an error in quota.h. -- Huiwei Lu http://www.mcs.anl.gov/~huiweilu/ On Nov 11, 2013, at 4:14 PM, Jerome Vienne <[email protected]> wrote:
Hi,
I would like to report a similar issue with mpich-3.1rc1 on Stampede cluster which is using Lustre 2.4 on login nodes.
Configure used: ./configure --enable-romio --with-file-system=lustre
Result: make[3]: Entering directory `/work/01538/viennej/MPI/mpich-3.1rc1/src/mpi/romio' CC adio/ad_lustre/ad_lustre_rwcontig.lo /usr/include/sys/quota.h(221): error: identifier "caddr_t" is undefined caddr_t __addr) __THROW;
Thanks, Jerome
-- Jerome Vienne, Ph.D HPC Software Tools Group Texas Advanced Computing Center (TACC) [email protected] | Phone: (512) 475-9322 Office: ROC 1.455B | Fax: (512) 475-9445
On Wed, Oct 23, 2013 at 6:28 PM, Yan Li <[email protected]> wrote: Hello,
I'm trying to compile mpich-3.0.4 on CentOS 6.4 x86-64 running Lustre 2.4.0, which was installed by using RPMs from http://zfsonlinux.org/lustre.html
Configure command used: ./configure --prefix=/share/ --with-file-system=ufs+lustre
There's a compilation error:
~~~~ [snip] ~~~~ CC adio/ad_lustre/ad_lustre_open.lo CC adio/ad_lustre/ad_lustre_rwcontig.lo In file included from /usr/include/linux/lustre_user.h:46, from /usr/include/lustre/lustre_user.h:54, from adio/ad_lustre/ad_lustre.h:30, from adio/ad_lustre/ad_lustre_rwcontig.c:14: /usr/include/sys/quota.h:221: error: expected declaration specifiers or '...' before 'caddr_t' ~~~~ [snip] ~~~~
As you can see that the file ad_lustre_open.c compiles OK. The difference between it and ad_lustre_rwcontig.c is that the latter includes this line: #define _XOPEN_SOURCE 600 before including the lustre header file.
It seems to me that defining _XOPEN_SOURCE to 600 on Linux implies that caddr_t is defined somewhere else, suppressing the definition of caddr_t in <sys/types.h>, thus leads to the compilation error of <sys/quota.h>.
Removing the definition of _XOPEN_SOURCE from ad_lustre_rwcontig.c seems fixed this problem, but I want to know why the definition was put there in the first place and whether removing it can cause any potential problem.
Thanks for your help in advance.
Yan Li Graduate Student Researcher, Storage Systems Research Center, Computer Science, University of California, Santa Cruz
_______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss
_______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss