GNU bug report logs - #65486
[PATCH] syscalls: Add support for musl libc

Previous Next

Package: guix-patches;

Reported by: soeren <at> soeren-tempel.net

Date: Thu, 24 Aug 2023 06:35:01 UTC

Severity: normal

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Ludovic Courtès <ludo <at> gnu.org>
To: Sören Tempel <tempel <at> uni-bremen.de>
Cc: 65486 <at> debbugs.gnu.org
Subject: [bug#65486] [PATCH] syscalls: Add support for musl libc
Date: Wed, 13 Sep 2023 22:39:50 +0200
Hi,

Sören Tempel <tempel <at> uni-bremen.de> skribis:

> Ludovic Courtès <ludo <at> gnu.org> wrote:

[...]

>> So what we want to check is whether we’re using the GNU libc or Musl,
>> regardless of the kernel.
>
> Keep in mind that—contrary to glibc—musl only supports Linux and not
> GNU/Hurd. Therefore, it should be sufficient to simply check for a
> linux-musl host and then use statfs/readdir over statfs64/readdir64:
>
> 	(let ((proc (syscall->procedure (if linux-musl?
> 	                                      "readdir"
> 	                                      "readdir64"))))
> 	  ........
>
> Would that be acceptable?

You could call it ‘musl?’ instead, to (hopefully) convey we’re
interested in the C library specifically.

>> Now, instead of checking the libc’s identity, we could check whether
>> “statfs64” is available, and if not, fall back to “statfs”.
>
> You mean using a GNU ./configure check?

No no, I meant something like:

  (or (false-if-exception (dynamic-func "readdir64" (dynamic-link)))
      (dynamic-func "readdir" (dynamic-link)))

Of course, it’s not as simple as this because we’d rather have it
integrated with ‘syscall->procedure’ (maybe by adding an
#:alternative-name argument for the Musl name?), but you get the idea.

HTH!

Ludo’.




This bug report was last modified 1 year and 271 days ago.

Previous Next


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