Compilation error: mpiexec-0.76 + PGI CDK 5.1 on x86-64
Pete Wyckoff
pw at osc.edu
Wed Apr 21 14:44:47 EDT 2004
jns at ias.edu wrote on Wed, 21 Apr 2004 14:21 -0400:
> I am experiencing difficulties compiling mpiexec-0.76 using PGI CDK 5.1
> on x86-64. The configure stage
> works fine but after this I get problems:
>
> CC=/usr/pgi/linux86-64/5.1/bin/pgcc ./configure
> --with-default-comm=mpich-p4 --disable-p4-shmem
> --with-pbssrc=/usr/local/src/torque-1.0.1p6
Try
--with-pbs=/usr/local/torque
(or wherever you installed the built torque) instead of --with-pbssrc.
Without that option it picks up -lpbs from some standard system
location, perhaps /usr/local/lib.
> PGC-S-0137-Incompatible prototype declaration for function walk_buf_list
> (stdio.c: 530)
Oops. Here's a patch for that and the socklen_t warnings. Every
compiler always finds more bugs it seems.
> I am able to compile mpiexec on x86-64 using gcc-3.2.3-24, but
> unfortunately MPICH was
> built with PGI because I need F90 capability.
It's actually okay to use gcc here even though your MPI codes are
compiled with something else. mpiexec itself is not an MPI application
so it won't even look at your MPICH library.
-- Pete
Index: stdio.c
===================================================================
RCS file: /cvs/mpiexec/stdio.c,v
retrieving revision 1.29
diff -u -r1.29 stdio.c
--- stdio.c 1 Mar 2004 16:06:04 -0000 1.29
+++ stdio.c 21 Apr 2004 18:35:10 -0000
@@ -96,7 +96,7 @@
static void goodbye_from_parent(int sig);
static void listen_abort_fd(int sig);
static void catch_alarm(int sig);
-static void walk_buf_list(int which);
+static void walk_buf_list(fd_which_t which);
static void accept_pmi_conn(void);
static void handle_pmi(int rank);
@@ -649,7 +649,7 @@
{
int t;
struct sockaddr_in sin;
- int len = sizeof(sin);
+ socklen_t len = sizeof(sin);
PRINTF("%s: getting new %s from fd %d\n", __func__, which_name(which),
listener[which]);
@@ -691,7 +691,7 @@
{
int fd, cc;
struct sockaddr_in sin;
- int len = sizeof(sin);
+ socklen_t len = sizeof(sin);
fd = accept(abort_fd, (struct sockaddr *) &sin, &len);
if (fd < 0)
Index: start_tasks.c
===================================================================
RCS file: /cvs/mpiexec/start_tasks.c,v
retrieving revision 1.40
diff -u -r1.40 start_tasks.c
--- start_tasks.c 19 Apr 2004 17:01:22 -0000 1.40
+++ start_tasks.c 21 Apr 2004 18:35:10 -0000
@@ -989,7 +989,8 @@
FD_SET(fd, &wfs);
ret = select(fd+1, 0, &wfs, 0, &tv);
if (ret == 1) {
- int f, flen = sizeof(f);
+ int f;
+ socklen_t flen = sizeof(f);
ret = getsockopt(fd, SOL_SOCKET, SO_ERROR, &f, &flen);
if (ret < 0)
error_errno("%s: getsockopt SO_ERROR after connect",
More information about the mpiexec
mailing list