On Wed, 16 Oct 2024 09:56:22 +0200 Natanael Copa <nc...@alpinelinux.org> wrote:
> Hi, > > I get this error message when compiling guile 3.0.9 and 3.0.10 with gcc > 14 / musl libc on 32 bit Alpine Linux: > > filesys.c: In function 'scm_sendfile': > filesys.c:1405:16: error: assignment to 'off_t *' {aka 'long long int *'} > from incompatible pointer type 'scm_t_off *' {aka 'long int *'} > [-Wincompatible-pointer-types] > 1405 | offset_ptr = SCM_UNBNDP (offset) ? NULL : &c_offset; > | ^ > > It looks like an assumption that off_t is 32 bit, which is not true on musl > libc. > > -nc This appears to solve it: diff --git a/libguile/filesys.c b/libguile/filesys.c index 70a6ef6..0500d45 100644 --- a/libguile/filesys.c +++ b/libguile/filesys.c @@ -1388,7 +1388,7 @@ SCM_DEFINE (scm_sendfile, "sendfile", 3, 1, 0, ssize_t result SCM_UNUSED; size_t c_count, total = 0; - scm_t_off c_offset; + off_t c_offset; int in_fd, out_fd; VALIDATE_FD_OR_PORT (out_fd, out, 1);