Bug#1102068: libfabric: FTBFS on 32-bit arches: ofi_cma.h: error: passing argument 2 of 'ofi_consume_iov' from incompatible pointer type

Drew Parsons <[email protected]>
Newsgroups gmane.linux.debian.ports.powerpc
Message-ID <174377206207.180396.6251959061707738288.reportbug__23908.3331705601$1743772196$gmane$org@sandy>
Source: libfabric
Severity: serious
Tags: ftbfs
Justification: ftbfs
X-Debbugs-Cc: [email protected], [email protected], [email protected], [email protected], [email protected]
User: [email protected]
Usertags: armel armhf
User: [email protected]
Usertags: i386
User: [email protected]
Usertags: hppa
User: [email protected]
Usertags: powerpc
User: [email protected]
Usertags: sh4
User: [email protected]
Usertags: x32

libfabric is failing to build on 32-bit architectures. The failure is
blocking migration to testing, and will therefore block mpich migration.

e.g. armhf https://buildd.debian.org/status/fetch.php?pkg=libfabric&arch=armhf&ver=2.0.0-4&stamp=1742062166&raw=0

/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I./include -D_GNU_SOURCE -D__USE_XOPEN2K8 -DSYSCONFDIR=\"/etc\" -DRDMADIR=\"@rdmadir@\" -DPROVDLDIR=\"/usr/lib/arm-linux-gnueabihf/libfabric\" -I./prov/sockets/include -I./prov/sockets  -I./prov/lpp/include -I./prov/lpp -I./prov/verbs/include -I./prov/verbs/include/linux -I./prov/verbs/src/ep_rdm -I./prov/verbs/src/ep_dgram        -I./prov/lnx/include -I./prov/hook/include -I./prov/hook/perf/include  -I./prov/hook/hook_debug/include -I./prov/hook/hook_hmem/include -I./prov/hook/dmabuf_peer_mem/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2   -Wall -O2 -DNDEBUG -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/libfabric-2.0.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -c -o prov/hook/src/src_libfabric_la-hook.lo `test -f 'prov/hook/src/hook.c' || echo './'`prov/hook/src/hook.c
In file included from ./include/ofi_util.h:59,
                 from src/fabric.c:47:
./include/ofi_mr.h: In function 'ofi_mr_get_iov_from_dmabuf':
./include/ofi_mr.h:345:35: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  345 |                 iov[i].iov_base = (void *) (
      |                                   ^
In file included from ./include/ofi_util.h:61:
./include/ofi_mem.h: In function 'smr_freestack_init':
./include/ofi_mem.h:281:53: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  281 |         next_aligned_addr = ofi_get_aligned_size((( (uint64_t) fs) +
      |                                                     ^
./include/ofi_mem.h:283:54: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  283 |         fs->entry_base_offset = next_aligned_addr - ((uint64_t) fs);
      |                                                      ^
In file included from ./include/ofi_shm_p2p.h:37,
                 from src/fabric.c:54:
./include/ofi_cma.h: In function 'cma_copy':
./include/ofi_cma.h:67:40: error: passing argument 2 of 'ofi_consume_iov' from incompatible pointer type [-Wincompatible-pointer-types]
   67 |                 ofi_consume_iov(local, &local_cnt, (size_t) ret);
      |                                        ^~~~~~~~~~
      |                                        |
      |                                        long unsigned int *
In file included from ./include/ofi_cma.h:41:
./include/ofi_iov.h:204:51: note: expected 'size_t *' {aka 'unsigned int *'} but argument is of type 'long unsigned int *'


This might be a gcc-15 error, which tightened type checking.

Upstream has released v2.1.0 with gcc-15 fixes, though I don't know
if it fixes this 32-bit build error.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.