Compilation problem.
Lars Bj|rnfot
bjornfot at erix.ericsson.se
Mon Nov 19 00:49:18 PST 2001
Hi,
I posted an answer for this some months ago, patch added below.
Hope it works though the versions is slightly newer.
Regards,
Lars
> "Zhifeng F. Chen" wrote:
>
> Hi,
>
> When compiling mvich-1.0a6.1 under mpich-1.2.2.3,
>
> ./configure --with-device=via --with-arch=LINUX --without-romio -cflags="-DUSE_STDARG -O2 -DCPU_X86 -DNIC_GIGANET -DVIPL095" -lib="-lgnivipl -lpthread"
> is fine.
>
> When I came to make, it reports:
> cc1: warnings being treated as errors
> queue.c: In function `MPID_Search_unexpected_for_request':
> queue.c:296: warning: implicit declaration of function `MPID_AINT_CMP'
> make[3]: *** [queue.o] Error 1
> Exit status from make was 2
> make[2]: *** [mpilib] Error 1
> make[1]: *** [mpi-modules] Error 2
> make: *** [mpi] Error 2
> Can anyone help me out?
>
> ZF
The reason seems to be mpid.h that exists in two versions,
and the mpid/via/mpid.h seems outdated. I send a patch that
works for me (mpich-1.2.1 and mvich-1.0a6.1). It's rough, just
to get it to compile.
make mpilib
# fails
# queue.c:296: warning: implicit declaration of function `MPID_AINT_CMP'
# see diff ./mpid/ch2/mpid.h ./mpid/via/mpid.h
patch -p1 < patch-mpid.h
# make mpilib succeeds w/o errors.
Regards,
Lars
> Jeffrey Tilson wrote:
>
> Hi,
> This is my first attempt with mvich (1.0a6.1). I'm using mpich 1.2.2. I have a small
Emulex (cLAN 1000) connected cluster running RH 6.2/2.2.19. I've pretty much followed
the mvich installation instructions. The problem is the function MPID_AINT_CMP. It
doesn't appear to be defined anywhere not used by any code other than queue.c. Can
someone suggest a solution to this?
> Thanks,
> --jeff
>
*** mpich-1.2.1/mpid/via/mpid.h.orig Tue Jul 4 01:58:12 2000
--- mpich-1.2.1/mpid/via/mpid.h Wed Jun 20 23:57:51 2001
***************
*** 99,108 ****
--- 99,110 ----
typedef int MPID_Aint;
#define MPID_AINT_SET(a,b) a = b
#define MPID_AINT_GET(a,b) a = b
+ #define MPID_AINT_CMP(a,b) (a) == (b)
#elif defined(MPID_LONG8)
typedef long MPID_Aint;
#define MPID_AINT_SET(a,b) a = b
#define MPID_AINT_GET(a,b) a = b
+ #define MPID_AINT_CMP(a,b) (a) == (b)
#else
#define MPID_AINT_IS_STRUCT
/* This is complicated by the need to set only the significant bits when
***************
*** 115,123 ****
--- 117,127 ----
#ifndef POINTER_64_BITS
#define MPID_AINT_SET(a,b) (a).low = (unsigned)(b)
#define MPID_AINT_GET(a,b) (a) = (void *)(b).low
+ #define MPID_AINT_CMP(a,b) ((a).low == (b).low)
#else
#define MPID_AINT_SET(a,b) (a) = *(MPID_Aint *)&(b)
#define MPID_AINT_GET(a,b) *(MPID_Aint *)&(a) = *&(b)
+ #define MPID_AINT_CMP(a,b) ((a).low == (b).low) && ((a).high == (b).high)
#endif
#endif
#else /* Not MPID_HAS_HETERO */
***************
*** 131,136 ****
--- 135,141 ----
a = b;\
DEBUG_H_INT(fprintf( stderr, "[%d] Aint get %x <- %x\n", MPID_MyWorldRank, a, b ));\
}
+ #define MPID_AINT_CMP(a,b) (a) == (b)
#endif
typedef int MPID_RNDV_T;
More information about the Beowulf
mailing list