[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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



On Fri, Apr 04, 2025 at 03:07:42PM +0200, Drew Parsons wrote:
> 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.

This is still a problem on armel, armhf, i386.

Will something be done about it?

Best,
Chris


Reply to: