[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