diff options
author | Janneke Nieuwenhuizen <janneke@gnu.org> | 2023-05-23 15:31:53 +0200 |
---|---|---|
committer | Josselin Poiret <dev@jpoiret.xyz> | 2023-07-13 18:58:43 +0200 |
commit | c8799fafa484214f42ff9779a3ed57da7f62481d (patch) | |
tree | 1602aeb4278519c84e380ff7ae71c22f4edb0d5b | |
parent | f86de02dde89aff2f0ddddeec3a398a649764dff (diff) | |
download | guix-c8799fafa484214f42ff9779a3ed57da7f62481d.tar.gz |
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. Signed-off-by: Josselin Poiret <dev@jpoiret.xyz>
-rw-r--r-- | gnu/packages/cross-base.scm | 26 | ||||
-rw-r--r-- | 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 21d7277e22..14cb365099 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> @@ -541,21 +541,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 e6935dea9b..a8f752aa7e 100644 --- a/gnu/packages/hurd.scm +++ b/gnu/packages/hurd.scm @@ -194,37 +194,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 |