[mpich-discuss] Compilation error of mpich-3.0.4 with Lustre 2.4.0
Huiwei Lu
huiweilu at mcs.anl.gov
Mon Nov 11 16:50:25 CST 2013
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 <viennej at tacc.utexas.edu> 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)
> viennej at tacc.utexas.edu | Phone: (512) 475-9322
> Office: ROC 1.455B | Fax: (512) 475-9445
>
>
> On Wed, Oct 23, 2013 at 6:28 PM, Yan Li <yanli at ucsc.edu> 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 discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss
>
> _______________________________________________
> discuss mailing list discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss
More information about the discuss
mailing list