GNU bug report logs - #73835
Build failure with gcc 14 and musl on 32 bit

Previous Next

Package: guile;

Reported by: Natanael Copa <ncopa <at> alpinelinux.org>

Date: Wed, 16 Oct 2024 07:57:01 UTC

Severity: normal

To reply to this bug, email your comments to 73835 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guile <at> gnu.org:
bug#73835; Package guile. (Wed, 16 Oct 2024 07:57:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Natanael Copa <ncopa <at> alpinelinux.org>:
New bug report received and forwarded. Copy sent to bug-guile <at> gnu.org. (Wed, 16 Oct 2024 07:57:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Natanael Copa <ncopa <at> alpinelinux.org>
To: bug-guile <at> gnu.org
Subject: Build failure with gcc 14 and musl on 32 bit
Date: Wed, 16 Oct 2024 09:56:22 +0200
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




Information forwarded to bug-guile <at> gnu.org:
bug#73835; Package guile. (Wed, 16 Oct 2024 08:03:02 GMT) Full text and rfc822 format available.

Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Natanael Copa <ncopa <at> alpinelinux.org>
To: bug-guile <at> gnu.org
Subject: Re: Build failure with gcc 14 and musl on 32 bit
Date: Wed, 16 Oct 2024 10:02:01 +0200
On Wed, 16 Oct 2024 09:56:22 +0200
Natanael Copa <ncopa <at> 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);





This bug report was last modified 243 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.