aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManolis Ragkousis <manolis837@gmail.com>2016-11-13 15:19:46 +0200
committerManolis Ragkousis <manolis837@gmail.com>2016-11-30 15:17:38 +0200
commit9b5f498deff516a9799a132fb04b40fb9ccfd7a6 (patch)
treebc622ef59b0afe34480afa8d5b1084130fe39a67
parentf265a3cee55c5fbbd9e05ec351ae562274b55df6 (diff)
downloadguix-9b5f498deff516a9799a132fb04b40fb9ccfd7a6.tar
guix-9b5f498deff516a9799a132fb04b40fb9ccfd7a6.tar.gz
gnu: glibc-hurd: Force mach/hurd/libpthread subdirs to build first.
* gnu/packages/base.scm (glibc/hurd)[arguments]: Replace 'build' phase. Co-authored-by: Ludovic Court<C3><A8>s <ludo@gnu.org>
-rw-r--r--gnu/packages/base.scm16
1 files changed, 15 insertions, 1 deletions
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 8aa426959f..9fb8c3a56d 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -715,7 +715,21 @@ with the Linux kernel.")
;; Use the right 'pwd'.
(substitute* "configure"
(("/bin/pwd") "pwd")))
- ,original-phases)))
+ (alist-replace
+ 'build
+ (lambda _
+ ;; Force mach/hurd/libpthread subdirs to build first in order to avoid
+ ;; linking errors.
+ ;; See <https://lists.gnu.org/archive/html/bug-hurd/2016-11/msg00045.html>
+ (let ((-j (list "-j" (number->string (parallel-job-count)))))
+ (let-syntax ((make (syntax-rules ()
+ ((_ target)
+ (zero? (apply system* "make" target -j))))))
+ (and (make "mach/subdir_lib")
+ (make "hurd/subdir_lib")
+ (make "libpthread/subdir_lib")
+ (zero? (apply system* "make" -j))))))
+ ,original-phases))))
((#:configure-flags original-configure-flags)
`(append (list "--host=i586-pc-gnu"