[DRE-maint] Bug#1076063: ruby-mpi: FTBFS with mpich as default MPI implementation on 32 bit architectures: mpi.c:64:13: error: ‘MPI_2COMPLEX’ undeclared (first use in this function); did you mean ‘MPI_COMPLEX’?

Sebastian Ramacher sramacher at debian.org
Wed Jul 10 07:50:14 BST 2024


Source: ruby-mpi
Version: 0.3.2-4
Severity: serious
Tags: ftbfs
Justification: fails to build from source (but built successfully in the past)
X-Debbugs-Cc: sramacher at debian.org

https://buildd.debian.org/status/fetch.php?pkg=ruby-mpi&arch=armel&ver=0.3.2-4%2Bb4&stamp=1720481652&raw=0

mpi.c: In function ‘rb_comm_send’:
mpi.c:64:13: error: ‘MPI_2COMPLEX’ undeclared (first use in this function); did you mean ‘MPI_COMPLEX’?
   64 |       typ = MPI_2COMPLEX;\
      |             ^~~~~~~~~~~~
mpi.c:356:3: note: in expansion of macro ‘OBJ2C’
  356 |   OBJ2C(rb_obj, len, buffer, type, 0);
      |   ^~~~~
mpi.c:64:13: note: each undeclared identifier is reported only once for each function it appears in
   64 |       typ = MPI_2COMPLEX;\
      |             ^~~~~~~~~~~~
mpi.c:356:3: note: in expansion of macro ‘OBJ2C’
  356 |   OBJ2C(rb_obj, len, buffer, type, 0);
      |   ^~~~~
mpi.c:68:13: error: ‘MPI_2DOUBLE_COMPLEX’ undeclared (first use in this function); did you mean ‘MPI_DOUBLE_COMPLEX’?
   68 |       typ = MPI_2DOUBLE_COMPLEX;\
      |             ^~~~~~~~~~~~~~~~~~~
mpi.c:356:3: note: in expansion of macro ‘OBJ2C’
  356 |   OBJ2C(rb_obj, len, buffer, type, 0);
      |   ^~~~~
mpi.c: In function ‘rb_comm_isend’:
mpi.c:64:13: error: ‘MPI_2COMPLEX’ undeclared (first use in this function); did you mean ‘MPI_COMPLEX’?
   64 |       typ = MPI_2COMPLEX;\
      |             ^~~~~~~~~~~~
mpi.c:374:3: note: in expansion of macro ‘OBJ2C’
  374 |   OBJ2C(rb_obj, len, buffer, type, 0);
      |   ^~~~~
mpi.c:68:13: error: ‘MPI_2DOUBLE_COMPLEX’ undeclared (first use in this function); did you mean ‘MPI_DOUBLE_COMPLEX’?
   68 |       typ = MPI_2DOUBLE_COMPLEX;\
      |             ^~~~~~~~~~~~~~~~~~~
mpi.c:374:3: note: in expansion of macro ‘OBJ2C’
  374 |   OBJ2C(rb_obj, len, buffer, type, 0);
      |   ^~~~~
mpi.c: In function ‘rb_comm_recv’:
mpi.c:64:13: error: ‘MPI_2COMPLEX’ undeclared (first use in this function); did you mean ‘MPI_COMPLEX’?
   64 |       typ = MPI_2COMPLEX;\
      |             ^~~~~~~~~~~~
mpi.c:404:3: note: in expansion of macro ‘OBJ2C’
  404 |   OBJ2C(rb_obj, len, buffer, type, offset);
      |   ^~~~~
mpi.c:68:13: error: ‘MPI_2DOUBLE_COMPLEX’ undeclared (first use in this function); did you mean ‘MPI_DOUBLE_COMPLEX’?
   68 |       typ = MPI_2DOUBLE_COMPLEX;\
      |             ^~~~~~~~~~~~~~~~~~~
mpi.c:404:3: note: in expansion of macro ‘OBJ2C’
  404 |   OBJ2C(rb_obj, len, buffer, type, offset);
      |   ^~~~~
mpi.c: In function ‘rb_comm_irecv’:
mpi.c:64:13: error: ‘MPI_2COMPLEX’ undeclared (first use in this function); did you mean ‘MPI_COMPLEX’?
   64 |       typ = MPI_2COMPLEX;\
      |             ^~~~~~~~~~~~
mpi.c:435:3: note: in expansion of macro ‘OBJ2C’
  435 |   OBJ2C(rb_obj, len, buffer, type, offset);
      |   ^~~~~
mpi.c:68:13: error: ‘MPI_2DOUBLE_COMPLEX’ undeclared (first use in this function); did you mean ‘MPI_DOUBLE_COMPLEX’?
   68 |       typ = MPI_2DOUBLE_COMPLEX;\
      |             ^~~~~~~~~~~~~~~~~~~
mpi.c:435:3: note: in expansion of macro ‘OBJ2C’
  435 |   OBJ2C(rb_obj, len, buffer, type, offset);
      |   ^~~~~
mpi.c: In function ‘rb_comm_gather’:
mpi.c:64:13: error: ‘MPI_2COMPLEX’ undeclared (first use in this function); did you mean ‘MPI_COMPLEX’?
   64 |       typ = MPI_2COMPLEX;\
      |             ^~~~~~~~~~~~
mpi.c:454:3: note: in expansion of macro ‘OBJ2C’
  454 |   OBJ2C(rb_sendbuf, sendcount, sendbuf, sendtype, 0);
      |   ^~~~~
mpi.c:68:13: error: ‘MPI_2DOUBLE_COMPLEX’ undeclared (first use in this function); did you mean ‘MPI_DOUBLE_COMPLEX’?
   68 |       typ = MPI_2DOUBLE_COMPLEX;\
      |             ^~~~~~~~~~~~~~~~~~~
mpi.c:454:3: note: in expansion of macro ‘OBJ2C’
  454 |   OBJ2C(rb_sendbuf, sendcount, sendbuf, sendtype, 0);
      |   ^~~~~
mpi.c: In function ‘rb_comm_allgather’:
mpi.c:64:13: error: ‘MPI_2COMPLEX’ undeclared (first use in this function); did you mean ‘MPI_COMPLEX’?
   64 |       typ = MPI_2COMPLEX;\
      |             ^~~~~~~~~~~~
mpi.c:476:3: note: in expansion of macro ‘OBJ2C’
  476 |   OBJ2C(rb_sendbuf, sendcount, sendbuf, sendtype, 0);
      |   ^~~~~
mpi.c:68:13: error: ‘MPI_2DOUBLE_COMPLEX’ undeclared (first use in this function); did you mean ‘MPI_DOUBLE_COMPLEX’?
   68 |       typ = MPI_2DOUBLE_COMPLEX;\
      |             ^~~~~~~~~~~~~~~~~~~
mpi.c:476:3: note: in expansion of macro ‘OBJ2C’
  476 |   OBJ2C(rb_sendbuf, sendcount, sendbuf, sendtype, 0);
      |   ^~~~~
mpi.c: In function ‘rb_comm_bcast’:
mpi.c:64:13: error: ‘MPI_2COMPLEX’ undeclared (first use in this function); did you mean ‘MPI_COMPLEX’?
   64 |       typ = MPI_2COMPLEX;\
      |             ^~~~~~~~~~~~
mpi.c:495:3: note: in expansion of macro ‘OBJ2C’
  495 |   OBJ2C(rb_buffer, count, buffer, type, 0);
      |   ^~~~~
mpi.c:68:13: error: ‘MPI_2DOUBLE_COMPLEX’ undeclared (first use in this function); did you mean ‘MPI_DOUBLE_COMPLEX’?
   68 |       typ = MPI_2DOUBLE_COMPLEX;\
      |             ^~~~~~~~~~~~~~~~~~~
mpi.c:495:3: note: in expansion of macro ‘OBJ2C’
  495 |   OBJ2C(rb_buffer, count, buffer, type, 0);
      |   ^~~~~
mpi.c: In function ‘rb_comm_scatter’:
mpi.c:64:13: error: ‘MPI_2COMPLEX’ undeclared (first use in this function); did you mean ‘MPI_COMPLEX’?
   64 |       typ = MPI_2COMPLEX;\
      |             ^~~~~~~~~~~~
mpi.c:509:3: note: in expansion of macro ‘OBJ2C’
  509 |   OBJ2C(rb_recvbuf, recvcount, recvbuf, recvtype, 0);
      |   ^~~~~
mpi.c:68:13: error: ‘MPI_2DOUBLE_COMPLEX’ undeclared (first use in this function); did you mean ‘MPI_DOUBLE_COMPLEX’?
   68 |       typ = MPI_2DOUBLE_COMPLEX;\
      |             ^~~~~~~~~~~~~~~~~~~
mpi.c:509:3: note: in expansion of macro ‘OBJ2C’
  509 |   OBJ2C(rb_recvbuf, recvcount, recvbuf, recvtype, 0);
      |   ^~~~~
mpi.c: In function ‘rb_comm_sendrecv’:
mpi.c:64:13: error: ‘MPI_2COMPLEX’ undeclared (first use in this function); did you mean ‘MPI_COMPLEX’?
   64 |       typ = MPI_2COMPLEX;\
      |             ^~~~~~~~~~~~
mpi.c:534:3: note: in expansion of macro ‘OBJ2C’
  534 |   OBJ2C(rb_sendbuf, sendcount, sendbuf, sendtype, 0);
      |   ^~~~~
mpi.c:68:13: error: ‘MPI_2DOUBLE_COMPLEX’ undeclared (first use in this function); did you mean ‘MPI_DOUBLE_COMPLEX’?
   68 |       typ = MPI_2DOUBLE_COMPLEX;\
      |             ^~~~~~~~~~~~~~~~~~~
mpi.c:534:3: note: in expansion of macro ‘OBJ2C’
  534 |   OBJ2C(rb_sendbuf, sendcount, sendbuf, sendtype, 0);
      |   ^~~~~
mpi.c: In function ‘rb_comm_alltoall’:
mpi.c:64:13: error: ‘MPI_2COMPLEX’ undeclared (first use in this function); did you mean ‘MPI_COMPLEX’?
   64 |       typ = MPI_2COMPLEX;\
      |             ^~~~~~~~~~~~
mpi.c:554:3: note: in expansion of macro ‘OBJ2C’
  554 |   OBJ2C(rb_sendbuf, sendcount, sendbuf, sendtype, 0);
      |   ^~~~~
mpi.c:68:13: error: ‘MPI_2DOUBLE_COMPLEX’ undeclared (first use in this function); did you mean ‘MPI_DOUBLE_COMPLEX’?
   68 |       typ = MPI_2DOUBLE_COMPLEX;\
      |             ^~~~~~~~~~~~~~~~~~~
mpi.c:554:3: note: in expansion of macro ‘OBJ2C’
  554 |   OBJ2C(rb_sendbuf, sendcount, sendbuf, sendtype, 0);
      |   ^~~~~
mpi.c: In function ‘rb_comm_reduce’:
mpi.c:64:13: error: ‘MPI_2COMPLEX’ undeclared (first use in this function); did you mean ‘MPI_COMPLEX’?
   64 |       typ = MPI_2COMPLEX;\
      |             ^~~~~~~~~~~~
mpi.c:574:3: note: in expansion of macro ‘OBJ2C’
  574 |   OBJ2C(rb_sendbuf, sendcount, sendbuf, sendtype, 0);
      |   ^~~~~
mpi.c:68:13: error: ‘MPI_2DOUBLE_COMPLEX’ undeclared (first use in this function); did you mean ‘MPI_DOUBLE_COMPLEX’?
   68 |       typ = MPI_2DOUBLE_COMPLEX;\
      |             ^~~~~~~~~~~~~~~~~~~
mpi.c:574:3: note: in expansion of macro ‘OBJ2C’
  574 |   OBJ2C(rb_sendbuf, sendcount, sendbuf, sendtype, 0);
      |   ^~~~~
mpi.c: In function ‘rb_comm_allreduce’:
mpi.c:64:13: error: ‘MPI_2COMPLEX’ undeclared (first use in this function); did you mean ‘MPI_COMPLEX’?
   64 |       typ = MPI_2COMPLEX;\
      |             ^~~~~~~~~~~~
mpi.c:599:3: note: in expansion of macro ‘OBJ2C’
  599 |   OBJ2C(rb_sendbuf, sendcount, sendbuf, sendtype, 0);
      |   ^~~~~
mpi.c:68:13: error: ‘MPI_2DOUBLE_COMPLEX’ undeclared (first use in this function); did you mean ‘MPI_DOUBLE_COMPLEX’?
   68 |       typ = MPI_2DOUBLE_COMPLEX;\
      |             ^~~~~~~~~~~~~~~~~~~
mpi.c:599:3: note: in expansion of macro ‘OBJ2C’
  599 |   OBJ2C(rb_sendbuf, sendcount, sendbuf, sendtype, 0);
      |   ^~~~~
In file included from /usr/include/ruby-3.1.0/ruby/ruby.h:26,
                 from /usr/include/ruby-3.1.0/ruby.h:38,
                 from mpi.c:4:
mpi.c: In function ‘Init_mpi’:
/usr/include/ruby-3.1.0/ruby/internal/anyargs.h:337:142: warning: passing argument 3 of ‘rb_define_module_function_m1’ from incompatible pointer type [-Wincompatible-pointer-types]
  337 | #define rb_define_module_function(mod, mid, func, arity)    RBIMPL_ANYARGS_DISPATCH_rb_define_module_function((arity), (func))((mod), (mid), (func), (arity))
      |                                                                                                                                              ^~~~~~
      |                                                                                                                                              |
      |                                                                                                                                              VALUE (*)(VALUE) {aka long unsigned int (*)(long unsigned int)}
mpi.c:697:3: note: in expansion of macro ‘rb_define_module_function’
  697 |   rb_define_module_function(mMPI, "Finalize", rb_m_finalize, -1);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/ruby-3.1.0/ruby/internal/anyargs.h:273:21: note: expected ‘VALUE (*)(int,  union <anonymous>,  VALUE)’ {aka ‘long unsigned int (*)(int,  union <anonymous>,  long unsigned int)’} but argument is of type ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’}
  273 | RBIMPL_ANYARGS_DECL(rb_define_module_function, VALUE, const char *)
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/ruby-3.1.0/ruby/internal/anyargs.h:253:41: note: in definition of macro ‘RBIMPL_ANYARGS_DECL’
  253 | RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _m1(__VA_ARGS__, VALUE(*)(int, union { VALUE *x; const VALUE *y; } __attribute__((__transparent_union__)), VALUE), int); \
      |                                         ^~~
make[1]: *** [Makefile:246: mpi.o] Error 1
make[1]: Leaving directory '/<<PKGBUILDDIR>>/ext/mpi'

Cheers
-- 
Sebastian Ramacher



More information about the Pkg-ruby-extras-maintainers mailing list