guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

14/47: gnu: hurd-minimal: Include libshouldbeinlibc and libstore.


From: guix-commits
Subject: 14/47: gnu: hurd-minimal: Include libshouldbeinlibc and libstore.
Date: Sat, 3 Jun 2023 07:23:37 -0400 (EDT)

janneke pushed a commit to branch wip-hurd
in repository guix.

commit 9d14c0dc9d31720a2403b75ca202a342a62c52c7
Author: Janneke Nieuwenhuizen <janneke@gnu.org>
AuthorDate: Tue May 23 15:31:53 2023 +0200

    gnu: hurd-minimal: Include libshouldbeinlibc and libstore.
    
    * gnu/packages/hurd.scm (hurd-minimal)[inputs]: Add gnumach-headers.
    [arguments]: Rewrite to include libshouldbeinlibc and libstore.
    * gnu/packages/cross-base.scm (cross-kernel-headers*): Update xhurd-minimal
    accordingly: Add xgnumach-headers, add them to cpath, use gexps for
    modify-phases, add delete-shared-target phase.
---
 gnu/packages/cross-base.scm | 26 ++++++++++++++++++++------
 gnu/packages/hurd.scm       | 36 ++++++++++++------------------------
 2 files changed, 32 insertions(+), 30 deletions(-)

diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index b2823c73c5..08d184cbbb 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013-2018, 2020, 2023 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2016, 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2016, 2019, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
@@ -540,21 +540,35 @@ the base compiler.  Use XBINUTILS as the associated 
cross-Binutils."
                   ,(string-append "--host=" target)
                   ,flags))
          ((#:phases phases)
-          `(modify-phases ,phases
+          #~(modify-phases #$phases
+              (add-after 'unpack 'delete-shared-target
+                ;; Cannot create shared libraries due to missing crt1.o
+                (lambda _
+                  (substitute* "Makeconf"
+                    (("(targets := \\$\\(libname\\)\\.a) 
\\$\\(libname\\)\\.so" all static)
+                     static)
+                    
(("\\$\\(DESTDIR\\)\\$\\(libdir\\)/\\$\\(libname\\)\\.so\\.\\$\\(hurd-version\\)")
+                     "")
+                    (("^libs: .*\\.so\\..*" all)
+                     (string-append "# " all)))))
              (add-before 'configure 'set-cross-headers-path
                (lambda* (#:key inputs #:allow-other-keys)
                  (let* ((glibc-headers (assoc-ref inputs 
"cross-glibc-hurd-headers"))
-                        (cpath (string-append glibc-headers "/include")))
+                        (mach-headers (assoc-ref inputs 
"cross-gnumach-headers"))
+                        (cpath (string-append glibc-headers "/include"
+                                              ":" mach-headers "/include")))
                    (for-each (cut setenv <> cpath)
-                             ',%gcc-cross-include-paths)
+                             '#$%gcc-cross-include-paths)
                    #t)))))))
 
-      (inputs `(("cross-glibc-hurd-headers" ,xglibc/hurd-headers)))
+      (inputs `(("cross-glibc-hurd-headers" ,xglibc/hurd-headers)
+                ("cross-gnumach-headers" ,xgnumach-headers)))
 
       (native-inputs `(("cross-gcc" ,xgcc)
                        ("cross-binutils" ,xbinutils)
                        ("cross-mig" ,xmig)
-                       ,@(alist-delete "mig"(package-native-inputs 
hurd-minimal))))))
+                       ,@(alist-delete "mig"
+                                       (package-native-inputs 
hurd-minimal))))))
 
   (define xhurd-core-headers
     (package
diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index f365aad593..8e21e9b7e4 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -205,37 +205,25 @@ Library and other user programs.")
 (define-public hurd-minimal
   (package (inherit hurd-headers)
     (name "hurd-minimal")
-    (inputs (list glibc/hurd-headers))
+    (inputs (list glibc/hurd-headers gnumach-headers))
     (arguments
      (substitute-keyword-arguments (package-arguments hurd-headers)
+       ((#:make-flags flags '())
+        #~'(#$(string-append "lib-subdirs=libshouldbeinlibc libihash libstore")
+            "prog-subdirs="
+            "other-subdirs="
+            #$@flags))
        ((#:phases _)
-        '(modify-phases %standard-phases
-           (replace 'install
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let ((out (assoc-ref outputs "out")))
-                 ;; We need to copy libihash.a to the output directory 
manually,
-                 ;; since there is no target for that in the makefile.
-                 (mkdir-p (string-append out "/include"))
-                 (copy-file "libihash/ihash.h"
-                            (string-append out "/include/ihash.h"))
-                 (mkdir-p (string-append out "/lib"))
-                 (copy-file "libihash/libihash.a"
-                            (string-append out "/lib/libihash.a"))
-                 #t)))
-           (replace 'build
-             (lambda _
-               ;; Install <assert-backtrace.h> & co.
-               (invoke "make" "-Clibshouldbeinlibc"
-                       "../include/assert-backtrace.h")
-
-               ;; Build libihash.
-               (invoke "make" "-Clibihash" "libihash.a")))))))
+        #~%standard-phases)
+       ((#:validate-runpath? validate-runpath? #f)
+        #f)))
     (supported-systems %hurd-systems)
     (home-page "https://www.gnu.org/software/hurd/hurd.html";)
     (synopsis "GNU Hurd libraries")
     (description
-     "This package provides libihash, needed to build the GNU C
-Library for GNU/Hurd.")
+     "This package provides libshouldbeinlibc, libihash, libstore, libports,
+libiohelp, libfshelp, libtrivfs, and libmachdev, needed to build the GNU C
+Library, Parted and netdde for GNU/Hurd.")
     (license gpl2+)))
 
 (define-public hurd-core-headers



reply via email to

[Prev in Thread] Current Thread [Next in Thread]