guix-commits
[Top][All Lists]
Advanced

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

branch version-1.4.0 updated: syscalls: Adjust for lack of 'libutil.so'


From: guix-commits
Subject: branch version-1.4.0 updated: syscalls: Adjust for lack of 'libutil.so' on glibc >= 2.34.
Date: Fri, 02 Dec 2022 09:19:11 -0500

This is an automated email from the git hooks/post-receive script.

mbakke pushed a commit to branch version-1.4.0
in repository guix.

The following commit(s) were added to refs/heads/version-1.4.0 by this push:
     new 047425a662 syscalls: Adjust for lack of 'libutil.so' on glibc >= 2.34.
047425a662 is described below

commit 047425a662608f56ba530052e21106028c5d6eeb
Author: Ludovic Court├Ęs <ludo@gnu.org>
AuthorDate: Mon Nov 7 22:26:54 2022 +0100

    syscalls: Adjust for lack of 'libutil.so' on glibc >= 2.34.
    
    This is a re-implementation of 3c8b6fd94ceb1e898216929e8768fb518dbf1de9
    done in a way that works for both glibc >= 2.34 and earlier versions.
    
    * guix/build/syscalls.scm (syscall->procedure): When LIBRARY is true,
    fall back to global symbols if (dynamic-link library) fails.
    
    (cherry picked from commit 3f6c32a88fc7a4d707ae1ed8ef3f7bd995461aff)
---
 guix/build/syscalls.scm | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm
index 2a12567b15..0358960ff5 100644
--- a/guix/build/syscalls.scm
+++ b/guix/build/syscalls.scm
@@ -447,9 +447,14 @@ If an error occurs while creating the binding, defer the 
error report until
 the returned procedure is called."
   (catch #t
     (lambda ()
+      ;; Note: When #:library is set, try it first and fall back to libc
+      ;; proper.  This is because libraries like libutil.so have been subsumed
+      ;; by libc.so with glibc >= 2.34.
       (let ((ptr (dynamic-func name
                                (if library
-                                   (dynamic-link library)
+                                   (or (false-if-exception
+                                        (dynamic-link library))
+                                       (dynamic-link))
                                    (dynamic-link)))))
         ;; The #:return-errno? facility was introduced in Guile 2.0.12.
         (pointer->procedure return-type ptr argument-types



reply via email to

[Prev in Thread] Current Thread [Next in Thread]