mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-12 06:06:53 -05:00
gnu: make-bootstrap: Adjust ‘%glibc-stripped’ for glibc@2.39 on the Hurd.
Previously the second ‘copy-recursively’ call would fail with EEXIST since glibc@2.39 already provides $includedir/include/mach. * guix/build/make-bootstrap.scm (make-stripped-libc)[copy-mach-headers]: Pass #:select? to ‘copy-recursively’ to exclude files already present under INCDIR. Change-Id: I7e5a93e46eefa18299c231468c720072468fdb10
This commit is contained in:
parent
e8a1b10c27
commit
8b6f33a4d9
1 changed files with 20 additions and 6 deletions
|
@ -1,6 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2015, 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||
;;; Copyright © 2015, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015, 2019, 2024 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -84,13 +84,27 @@ (define (make-stripped-libc output libc kernel-headers)
|
|||
when producing a bootstrap libc."
|
||||
|
||||
(define (copy-mach-headers output kernel-headers)
|
||||
(let* ((incdir (string-append output "/include")))
|
||||
(let ((mach-headers (readlink
|
||||
(string-append kernel-headers "/include/mach")))
|
||||
(incdir (string-append output "/include")))
|
||||
(copy-recursively (string-append libc "/include") incdir)
|
||||
|
||||
(copy-recursively (string-append kernel-headers "/include/mach")
|
||||
(string-append incdir "/mach"))
|
||||
#t))
|
||||
|
||||
;; As of glibc 2.39, essential Mach headers get installed by glibc
|
||||
;; itself in its own includedir, except for most of mach/machine/*.h.
|
||||
;; Copy anything that's missing from MACH-HEADERS.
|
||||
(copy-recursively mach-headers
|
||||
(string-append incdir "/mach")
|
||||
#:select?
|
||||
(let ((prefix (string-length mach-headers))
|
||||
(target (string-append incdir "/mach")))
|
||||
(lambda (file stat)
|
||||
;; Select everything but files and symlinks that
|
||||
;; already exist under TARGET.
|
||||
(or (eq? 'directory (stat:type stat))
|
||||
(let ((suffix (string-drop file prefix)))
|
||||
(not (file-exists?
|
||||
(in-vicinity target suffix))))))))))
|
||||
|
||||
(define (copy-libc+linux-headers output kernel-headers)
|
||||
(let* ((incdir (string-append output "/include")))
|
||||
(copy-recursively (string-append libc "/include") incdir)
|
||||
|
|
Loading…
Reference in a new issue