Bug#1102068: libfabric: FTBFS on 32-bit arches: ofi_cma.h: error: passing argument 2 of 'ofi_consume_iov' from incompatible pointer type
Source: libfabric
Severity: serious
Tags: ftbfs
Justification: ftbfs
X-Debbugs-Cc: debian-amd64@lists.debian.org, debian-arm@lists.debian.org, debian-hppa@lists.debian.org, debian-powerpc@lists.debian.org, debian-superh@lists.debian.org
User: debian-arm@lists.debian.org
Usertags: armel armhf
User: debian-qa@lists.debian.org
Usertags: i386
User: debian-hppa@lists.debian.org
Usertags: hppa
User: debian-powerpc@lists.debian.org
Usertags: powerpc
User: debian-superh@lists.debian.org
Usertags: sh4
User: debian-x32@lists.debian.org
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.
Reply to: