aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/commencement.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/commencement.scm')
-rw-r--r--gnu/packages/commencement.scm141
1 files changed, 63 insertions, 78 deletions
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index fe9fbebcc2..33b957adfe 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -90,12 +91,14 @@
`(modify-phases ,phases
(replace 'build
(lambda _
- (zero? (system* "./build.sh"))))
+ (invoke "./build.sh")
+ #t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
- (install-file "make" bin)))))))))
+ (install-file "make" bin)
+ #t))))))))
(native-inputs '()) ; no need for 'pkg-config'
(inputs %bootstrap-inputs))))
@@ -183,28 +186,12 @@
,cf)))))
(inputs %boot0-inputs))))
-;; gcc-4.9 was fixed late in the core-update cycle and so this GCC is only
-;; needed to prevent a full world rebuild, and can be replaced with gcc-4.9.
-(define gcc-for-libstdc++
- (package (inherit gcc-4.9)
- (version "4.9.4")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/gcc/gcc-"
- version "/gcc-" version ".tar.bz2"))
- (sha256
- (base32
- "14l06m7nvcvb0igkbip58x59w3nq6315k6jcz3wr9ch1rn9d44bc"))
- (patches (search-patches "gcc-arm-bug-71399.patch"
- "gcc-libvtv-runpath.patch"
- "gcc-fix-texi2pod.patch"))))))
-
(define libstdc++-boot0
;; GCC's libcc1 is always built as a shared library (the top-level
;; 'Makefile.def' forcefully adds --enable-shared) and thus needs to refer
;; to libstdc++.so. We cannot build libstdc++-5.3 because it relies on
;; C++14 features missing in some of our bootstrap compilers.
- (let ((lib (package-with-bootstrap-guile (make-libstdc++ gcc-for-libstdc++))))
+ (let ((lib (package-with-bootstrap-guile (make-libstdc++ gcc-4.9))))
(package
(inherit lib)
(name "libstdc++-boot0")
@@ -262,42 +249,40 @@
"--(with-system-zlib|enable-languages.*)" <>)
,flags)))
((#:phases phases)
- `(alist-cons-after
- 'unpack 'unpack-gmp&co
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((gmp (assoc-ref %build-inputs "gmp-source"))
- (mpfr (assoc-ref %build-inputs "mpfr-source"))
- (mpc (assoc-ref %build-inputs "mpc-source")))
-
- ;; To reduce the set of pre-built bootstrap inputs, build
- ;; GMP & co. from GCC.
- (for-each (lambda (source)
- (or (zero? (system* "tar" "xvf" source))
- (error "failed to unpack tarball"
- source)))
- (list gmp mpfr mpc))
-
- ;; Create symlinks like `gmp' -> `gmp-x.y.z'.
- ,@(map (lambda (lib)
- ;; Drop trailing letters, as gmp-6.0.0a unpacks
- ;; into gmp-6.0.0.
- `(symlink ,(string-trim-right
- (package-full-name lib)
- char-set:letter)
- ,(package-name lib)))
- (list gmp-6.0 mpfr mpc))))
- (alist-cons-after
- 'install 'symlink-libgcc_eh
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "lib")))
- ;; Glibc wants to link against libgcc_eh, so provide
- ;; it.
- (with-directory-excursion
- (string-append out "/lib/gcc/"
- ,(boot-triplet)
- "/" ,(package-version gcc))
- (symlink "libgcc.a" "libgcc_eh.a"))))
- ,phases))))))
+ `(modify-phases ,phases
+ (add-after 'unpack 'unpack-gmp&co
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((gmp (assoc-ref %build-inputs "gmp-source"))
+ (mpfr (assoc-ref %build-inputs "mpfr-source"))
+ (mpc (assoc-ref %build-inputs "mpc-source")))
+
+ ;; To reduce the set of pre-built bootstrap inputs, build
+ ;; GMP & co. from GCC.
+ (for-each (lambda (source)
+ (invoke "tar" "xvf" source))
+ (list gmp mpfr mpc))
+
+ ;; Create symlinks like `gmp' -> `gmp-x.y.z'.
+ ,@(map (lambda (lib)
+ ;; Drop trailing letters, as gmp-6.0.0a unpacks
+ ;; into gmp-6.0.0.
+ `(symlink ,(string-trim-right
+ (package-full-name lib)
+ char-set:letter)
+ ,(package-name lib)))
+ (list gmp-6.0 mpfr mpc))
+ #t)))
+ (add-after 'install 'symlink-libgcc_eh
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "lib")))
+ ;; Glibc wants to link against libgcc_eh, so provide
+ ;; it.
+ (with-directory-excursion
+ (string-append out "/lib/gcc/"
+ ,(boot-triplet)
+ "/" ,(package-version gcc))
+ (symlink "libgcc.a" "libgcc_eh.a"))
+ #t))))))))
(inputs `(("gmp-source" ,(package-source gmp-6.0))
("mpfr-source" ,(package-source mpfr))
@@ -512,29 +497,29 @@ the bootstrap environment."
"--enable-obsolete-rpc")
,flags))
((#:phases phases)
- `(alist-cons-before
- 'configure 'pre-configure
- (lambda* (#:key inputs #:allow-other-keys)
- ;; Don't clobber CPATH with the bootstrap libc.
- (setenv "NATIVE_CPATH" (getenv "CPATH"))
- (unsetenv "CPATH")
-
- ;; Tell 'libpthread' where to find 'libihash' on Hurd systems.
- ,@(if (hurd-triplet? (%current-system))
- `((substitute* "libpthread/Makefile"
- (("LDLIBS-pthread.so =.*")
- (string-append "LDLIBS-pthread.so = "
- (assoc-ref %build-inputs "kernel-headers")
- "/lib/libihash.a\n"))))
- '())
-
- ;; 'rpcgen' needs native libc headers to be built.
- (substitute* "sunrpc/Makefile"
- (("sunrpc-CPPFLAGS =.*" all)
- (string-append "CPATH = $(NATIVE_CPATH)\n"
- "export CPATH\n"
- all "\n"))))
- ,phases)))))
+ `(modify-phases ,phases
+ (add-before 'configure 'pre-configure
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Don't clobber CPATH with the bootstrap libc.
+ (setenv "NATIVE_CPATH" (getenv "CPATH"))
+ (unsetenv "CPATH")
+
+ ;; Tell 'libpthread' where to find 'libihash' on Hurd systems.
+ ,@(if (hurd-triplet? (%current-system))
+ `((substitute* "libpthread/Makefile"
+ (("LDLIBS-pthread.so =.*")
+ (string-append "LDLIBS-pthread.so = "
+ (assoc-ref %build-inputs "kernel-headers")
+ "/lib/libihash.a\n"))))
+ '())
+
+ ;; 'rpcgen' needs native libc headers to be built.
+ (substitute* "sunrpc/Makefile"
+ (("sunrpc-CPPFLAGS =.*" all)
+ (string-append "CPATH = $(NATIVE_CPATH)\n"
+ "export CPATH\n"
+ all "\n")))
+ #t)))))))
(propagated-inputs `(("kernel-headers" ,(kernel-headers-boot0))))
(native-inputs
`(("texinfo" ,texinfo-boot0)