Subject: [bug#72643] [PATCH core-updates 3/6] gnu: make-bootstrap: Include libdl.a and libutil.a in ‘glibc-stripped’.

From: Ludovic Courtès <[email-masked]>
Date: Thu, 15 Aug 2024 18:58:31 +0200

As of glibc 2.39, libdl.so and libutil.so are gone (they are part of
libc proper since 2.34), but empty .a files are provided for backward
compatibility with code using -ldl and -lutil.  Keep them.

* guix/build/make-bootstrap.scm (make-stripped-libc)[%libc-object-files-rx]:
Mach libdl.a and libutil.a.

Change-Id: I967c6f34a443366224293362b8a2302fe86fd5a0
---
 guix/build/make-bootstrap.scm | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/guix/build/make-bootstrap.scm b/guix/build/make-bootstrap.scm
index 6cb5262f8e..287e4db2c7 100644
--- a/guix/build/make-bootstrap.scm
+++ b/guix/build/make-bootstrap.scm
@@ -110,9 +110,11 @@ (define (make-stripped-libc output libc kernel-headers)
       (copy-recursively (string-append libc "/include") incdir)
       (copy-linux-headers output kernel-headers)))
 
+  ;; Include *.so, *.so.*, but also empty ar archives provided for backward
+  ;; compatibility as of libc 2.39: libdl.a and libutil.a.
   (define %libc-object-files-rx "^(crt.*|ld.*|lib(c|m|dl|rt|pthread|nsl|\
 util).*\\.so(\\..*)?|lib(machuser|hurduser).so.*|(libc(rt|)|libpthread)\
-_nonshared\\.a)$")
+_nonshared\\.a|lib(dl|util)\\.a)$")
 
   (setvbuf (current-output-port) 'line)
   (let* ((libdir (string-append output "/lib")))
-- 
2.45.2