diff options
Diffstat (limited to 'distro/packages')
-rw-r--r-- | distro/packages/base.scm | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/distro/packages/base.scm b/distro/packages/base.scm index e153077424..92c58e9d88 100644 --- a/distro/packages/base.scm +++ b/distro/packages/base.scm @@ -2169,6 +2169,35 @@ store.") #t)))) (inputs `(("libc" ,glibc-final))))) +(define %gcc-stripped + (package (inherit gcc-final) + (name "gcc-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")) + (bindir (string-append out "/bin")) + (libdir (string-append out "/lib")) + (gcc (assoc-ref %build-inputs "gcc"))) + (copy-recursively (string-append gcc "/bin") bindir) + (for-each remove-store-references + (find-files bindir ".*")) + + (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 gcc "/lib") "^libgcc_s.*")) + #t)))) + (inputs `(("gcc" ,gcc-final))))) + (define %guile-static ;; A statically-linked Guile that is relocatable--i.e., it can search ;; .scm and .go files relative to its installation directory, rather @@ -2283,6 +2312,10 @@ store.") ;; A tarball with GNU libc's shared libraries, dynamic linker, and headers. (tarball-package %glibc-stripped)) +(define %gcc-bootstrap-tarball + ;; A tarball with a dynamic-linked GCC and its headers. + (tarball-package %gcc-stripped)) + (define %guile-bootstrap-tarball ;; A tarball with the statically-linked, relocatable Guile. (tarball-package %guile-static-stripped)) |