mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-25 13:58:15 -05:00
distro: Add a bootstrap glibc tarball.
* distro/packages/base.scm (%glibc-stripped, %glibc-bootstrap-tarball): New variables.
This commit is contained in:
parent
17ff4ccdf5
commit
58a7891ccf
1 changed files with 35 additions and 0 deletions
|
@ -2138,6 +2138,37 @@ (define %binutils-static-stripped
|
||||||
#t))))
|
#t))))
|
||||||
(inputs `(("binutils" ,%binutils-static)))))
|
(inputs `(("binutils" ,%binutils-static)))))
|
||||||
|
|
||||||
|
(define %glibc-stripped
|
||||||
|
;; GNU libc's essential shared libraries, dynamic linker, and headers,
|
||||||
|
;; with all references to store directories stripped. As a result,
|
||||||
|
;; libc.so is unusable and need to be patched for proper relocation.
|
||||||
|
(package (inherit glibc-final)
|
||||||
|
(name "glibc-stripped")
|
||||||
|
(build-system trivial-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:modules ((guix build utils))
|
||||||
|
#:builder
|
||||||
|
(begin
|
||||||
|
(use-modules (guix build utils))
|
||||||
|
|
||||||
|
(setvbuf (current-output-port) _IOLBF)
|
||||||
|
(let* ((out (assoc-ref %outputs "out"))
|
||||||
|
(libdir (string-append out "/lib"))
|
||||||
|
(incdir (string-append out "/include"))
|
||||||
|
(libc (assoc-ref %build-inputs "libc")))
|
||||||
|
(mkdir-p libdir)
|
||||||
|
(for-each (lambda (file)
|
||||||
|
(let ((target (string-append libdir "/"
|
||||||
|
(basename file))))
|
||||||
|
(copy-file file target)
|
||||||
|
(remove-store-references target)))
|
||||||
|
(find-files (string-append libc "/lib")
|
||||||
|
"^(crt.*|ld.*|lib(c|m|dl|rt|pthread|nsl|util).*\\.so|libc_nonshared\\.a)$"))
|
||||||
|
|
||||||
|
(copy-recursively (string-append libc "/include") incdir)
|
||||||
|
#t))))
|
||||||
|
(inputs `(("libc" ,glibc-final)))))
|
||||||
|
|
||||||
(define %guile-static
|
(define %guile-static
|
||||||
;; A statically-linked Guile that is relocatable--i.e., it can search
|
;; A statically-linked Guile that is relocatable--i.e., it can search
|
||||||
;; .scm and .go files relative to its installation directory, rather
|
;; .scm and .go files relative to its installation directory, rather
|
||||||
|
@ -2248,6 +2279,10 @@ (define %binutils-bootstrap-tarball
|
||||||
;; A tarball with the statically-linked Binutils programs.
|
;; A tarball with the statically-linked Binutils programs.
|
||||||
(tarball-package %binutils-static-stripped))
|
(tarball-package %binutils-static-stripped))
|
||||||
|
|
||||||
|
(define %glibc-bootstrap-tarball
|
||||||
|
;; A tarball with GNU libc's shared libraries, dynamic linker, and headers.
|
||||||
|
(tarball-package %glibc-stripped))
|
||||||
|
|
||||||
(define %guile-bootstrap-tarball
|
(define %guile-bootstrap-tarball
|
||||||
;; A tarball with the statically-linked, relocatable Guile.
|
;; A tarball with the statically-linked, relocatable Guile.
|
||||||
(tarball-package %guile-static-stripped))
|
(tarball-package %guile-static-stripped))
|
||||||
|
|
Loading…
Reference in a new issue