Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incompatible pointer type when compiling on 32-bit PPC with MPICH #29

Open
hpckurt opened this issue Jun 17, 2024 · 0 comments
Open

Incompatible pointer type when compiling on 32-bit PPC with MPICH #29

hpckurt opened this issue Jun 17, 2024 · 0 comments

Comments

@hpckurt
Copy link

hpckurt commented Jun 17, 2024

This is more than likely not anywhere close to a supported environment, but thought I'd submit the issue anyways.

Both GKLib and Metis compile without issue on 32-bit PPC, however, ParMETIS does not.

The 32-bit PPC system I'm working with is running MPICH for the MPI implementation as well.

Full error is the following:

[ 21%] Building C object libparmetis/CMakeFiles/parmetis.dir/gkmpi.c.o
cd /root/ParMETIS/build/Linux-ppc/libparmetis && /usr/bin/mpicc  -I/root/ParMETIS/include -I"/root/ParMETIS/~/local/include" -I/root/local/include -I/root/ParMETIS/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -mtune=native -fPIC -Werror -Wall -pedantic -Wno-unused-function -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -Wno-unused-label -DNDEBUG -DNDEBUG2 -DHAVE_EXECINFO_H -DHAVE_GETLINE -O3 -MD -MT libparmetis/CMakeFiles/parmetis.dir/gkmpi.c.o -MF CMakeFiles/parmetis.dir/gkmpi.c.o.d -o CMakeFiles/parmetis.dir/gkmpi.c.o -c /root/ParMETIS/libparmetis/gkmpi.c
/root/ParMETIS/libparmetis/gkmpi.c: In function ‘libparmetis__gkMPI_Alltoallv’:
/root/ParMETIS/libparmetis/gkmpi.c:230:47: error: passing argument 3 of ‘MPI_Alltoallv_c’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  230 |   return MPI_Alltoallv_c(sendbuf, sendcounts, sdispls, sendtype,
      |                                               ^~~~~~~
      |                                               |
      |                                               idx_t * {aka long long int *}
In file included from /usr/lib/powerpc-linux-gnu/mpich/include/mpi.h:958,
                 from /root/ParMETIS/libparmetis/./parmetislib.h:19,
                 from /root/ParMETIS/libparmetis/gkmpi.c:15:
/usr/lib/powerpc-linux-gnu/mpich/include/mpi_proto.h:948:87: note: expected ‘const MPI_Aint *’ {aka ‘const int *’} but argument is of type ‘idx_t *’ {aka ‘long long int *’}
  948 | int MPI_Alltoallv_c(const void *sendbuf, const MPI_Count sendcounts[], const MPI_Aint sdispls[],
      |                                                                        ~~~~~~~~~~~~~~~^~~~~~~~~
/root/ParMETIS/libparmetis/gkmpi.c:231:37: error: passing argument 7 of ‘MPI_Alltoallv_c’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  231 |                recvbuf, recvcounts, rdispls, recvtype, comm);
      |                                     ^~~~~~~
      |                                     |
      |                                     idx_t * {aka long long int *}
/usr/lib/powerpc-linux-gnu/mpich/include/mpi_proto.h:950:36: note: expected ‘const MPI_Aint *’ {aka ‘const int *’} but argument is of type ‘idx_t *’ {aka ‘long long int *’}
  950 |                     const MPI_Aint rdispls[], MPI_Datatype recvtype, MPI_Comm comm)
      |                     ~~~~~~~~~~~~~~~^~~~~~~~~
/root/ParMETIS/libparmetis/gkmpi.c: In function ‘libparmetis__gkMPI_Allgatherv’:
/root/ParMETIS/libparmetis/gkmpi.c:282:28: error: passing argument 6 of ‘MPI_Allgatherv_c’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  282 |                recvcounts, rdispls, recvtype, comm);
      |                            ^~~~~~~
      |                            |
      |                            idx_t * {aka long long int *}
/usr/lib/powerpc-linux-gnu/mpich/include/mpi_proto.h:927:67: note: expected ‘const MPI_Aint *’ {aka ‘const int *’} but argument is of type ‘idx_t *’ {aka ‘long long int *’}
  927 |                      const MPI_Count recvcounts[], const MPI_Aint displs[], MPI_Datatype recvtype,
      |                                                    ~~~~~~~~~~~~~~~^~~~~~~~
/root/ParMETIS/libparmetis/gkmpi.c: In function ‘libparmetis__gkMPI_Scatterv’:
/root/ParMETIS/libparmetis/gkmpi.c:332:46: error: passing argument 3 of ‘MPI_Scatterv_c’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  332 |   return MPI_Scatterv_c(sendbuf, sendcounts, sdispls, sendtype,
      |                                              ^~~~~~~
      |                                              |
      |                                              idx_t * {aka long long int *}
/usr/lib/powerpc-linux-gnu/mpich/include/mpi_proto.h:1155:86: note: expected ‘const MPI_Aint *’ {aka ‘const int *’} but argument is of type ‘idx_t *’ {aka ‘long long int *’}
 1155 | int MPI_Scatterv_c(const void *sendbuf, const MPI_Count sendcounts[], const MPI_Aint displs[],
      |                                                                       ~~~~~~~~~~~~~~~^~~~~~~~
/root/ParMETIS/libparmetis/gkmpi.c: In function ‘libparmetis__gkMPI_Gatherv’:
/root/ParMETIS/libparmetis/gkmpi.c:385:28: error: passing argument 6 of ‘MPI_Gatherv_c’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  385 |                recvcounts, rdispls, recvtype, root, comm);
      |                            ^~~~~~~
      |                            |
      |                            idx_t * {aka long long int *}
/usr/lib/powerpc-linux-gnu/mpich/include/mpi_proto.h:985:64: note: expected ‘const MPI_Aint *’ {aka ‘const int *’} but argument is of type ‘idx_t *’ {aka ‘long long int *’}
  985 |                   const MPI_Count recvcounts[], const MPI_Aint displs[], MPI_Datatype recvtype,
      |                                                 ~~~~~~~~~~~~~~~^~~~~~~~
cc1: all warnings being treated as errors
make[3]: *** [libparmetis/CMakeFiles/parmetis.dir/build.make:233: libparmetis/CMakeFiles/parmetis.dir/gkmpi.c.o] Error 1
make[3]: Leaving directory '/root/ParMETIS/build/Linux-ppc'
make[2]: *** [CMakeFiles/Makefile2:145: libparmetis/CMakeFiles/parmetis.dir/all] Error 2
make[2]: Leaving directory '/root/ParMETIS/build/Linux-ppc'
make[1]: *** [Makefile:139: all] Error 2
make[1]: Leaving directory '/root/ParMETIS/build/Linux-ppc'
make: *** [Makefile:62: all] Error 2

Looks like the error happens when it tries to build gkmpi.c

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant