mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
gnu: hurd: Build against glibc 2.28.
Version 2.28 of glibc is the first in a long time that fully supports GNU/Hurd. This change updates the Hurd and Mach to provide the features glibc 2.28 expects and adjusts the cross-compilation tool chain for "i586-pc-gnu". * gnu/packages/base.scm (glibc/linux): Rename to... (glibc): ... this. [propagated-inputs]: Add 'hurd-target?' case. [arguments]: Use '--disable-werror' when 'hurd-target?'. Add 'augment-libc.so' phase when 'hurd-target?'. [native-inputs]: Add MIG and PERL when 'hurd-target?'. (glibc/hurd, glibc-for-target): Remove (glibc/hurd-headers): Inherit from GLIBC, not GLIBC/HURD. [arguments]: Remove "--enable-obsolete-rpc" configure flag and 'patch-configure-script' phase. * gnu/packages/cross-base.scm (cross-kernel-headers)[xglibc/hurd-headers]: Move 'set-cross-headers-path' after 'unpack'. * gnu/packages/cross-base.scm (cross-libc)[cross-libc-for-target]: Remove. Pass "--disable-werror" when TARGET matches 'hurd-triplet?'. * gnu/packages/hurd.scm (hurd-target?, patch-url): New procedures. (gnumach-headers)[source](patches, modules, snippet): New fields. (hurd-headers): Use Git commit 98b3390. [native-inputs]: Add AUTOCONF and AUTOMAKE. [arguments]: Add "ac_cv_func_*" configure flags. (hurd-minimal)[native-inputs]: Remove. [arguments]: In 'build' phase, build "include/assert-backtrace.h" first.
This commit is contained in:
parent
8504d19222
commit
2d546858b1
3 changed files with 138 additions and 155 deletions
|
@ -577,7 +577,9 @@ (define* (make-ld-wrapper name #:key
|
||||||
|
|
||||||
(export make-ld-wrapper)
|
(export make-ld-wrapper)
|
||||||
|
|
||||||
(define-public glibc/linux
|
(define-public glibc
|
||||||
|
;; This is the GNU C Library, used on GNU/Linux and GNU/Hurd. Prior to
|
||||||
|
;; version 2.28, GNU/Hurd used a different glibc branch.
|
||||||
(package
|
(package
|
||||||
(name "glibc")
|
(name "glibc")
|
||||||
;; Note: Always use a dot after the minor version since various places rely
|
;; Note: Always use a dot after the minor version since various places rely
|
||||||
|
@ -608,8 +610,13 @@ (define-public glibc/linux
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
|
|
||||||
;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc
|
;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc
|
||||||
;; users should automatically pull Linux headers as well.
|
;; users should automatically pull Linux headers as well. On GNU/Hurd,
|
||||||
(propagated-inputs `(("kernel-headers" ,linux-libre-headers)))
|
;; libc provides <hurd.h>, which includes a bunch of Hurd and Mach headers,
|
||||||
|
;; so both should be propagated.
|
||||||
|
(propagated-inputs
|
||||||
|
(if (hurd-target?)
|
||||||
|
`(("hurd-core-headers" ,hurd-core-headers))
|
||||||
|
`(("kernel-headers" ,linux-libre-headers))))
|
||||||
|
|
||||||
(outputs '("out" "debug"
|
(outputs '("out" "debug"
|
||||||
"static")) ;9 MiB of .a files
|
"static")) ;9 MiB of .a files
|
||||||
|
@ -664,7 +671,13 @@ (define-public glibc/linux
|
||||||
;; Use our Bash instead of /bin/sh.
|
;; Use our Bash instead of /bin/sh.
|
||||||
(string-append "BASH_SHELL="
|
(string-append "BASH_SHELL="
|
||||||
(assoc-ref %build-inputs "bash")
|
(assoc-ref %build-inputs "bash")
|
||||||
"/bin/bash"))
|
"/bin/bash")
|
||||||
|
|
||||||
|
;; On GNU/Hurd we get discarded-qualifiers warnings for
|
||||||
|
;; 'device_write_inband' among other things. Ignore them.
|
||||||
|
,@(if (hurd-target?)
|
||||||
|
'("--disable-werror")
|
||||||
|
'()))
|
||||||
|
|
||||||
#:tests? #f ; XXX
|
#:tests? #f ; XXX
|
||||||
#:phases (modify-phases %standard-phases
|
#:phases (modify-phases %standard-phases
|
||||||
|
@ -769,7 +782,18 @@ (define (linker-script? file)
|
||||||
(filter linker-script?
|
(filter linker-script?
|
||||||
(map (cut string-append slib "/" <>)
|
(map (cut string-append slib "/" <>)
|
||||||
files)))
|
files)))
|
||||||
#t))))))
|
#t)))
|
||||||
|
|
||||||
|
,@(if (hurd-target?)
|
||||||
|
'((add-after 'install 'augment-libc.so
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(let* ((out (assoc-ref outputs "out")))
|
||||||
|
(substitute* (string-append out "/lib/libc.so")
|
||||||
|
(("/[^ ]+/lib/libc.so.0.3")
|
||||||
|
(string-append out "/lib/libc.so.0.3"
|
||||||
|
" libmachuser.so libhurduser.so"))))
|
||||||
|
#t)))
|
||||||
|
'()))))
|
||||||
|
|
||||||
(inputs `(("static-bash" ,static-bash)))
|
(inputs `(("static-bash" ,static-bash)))
|
||||||
|
|
||||||
|
@ -778,7 +802,12 @@ (define (linker-script? file)
|
||||||
(native-inputs `(("texinfo" ,texinfo)
|
(native-inputs `(("texinfo" ,texinfo)
|
||||||
("perl" ,perl)
|
("perl" ,perl)
|
||||||
("bison" ,bison)
|
("bison" ,bison)
|
||||||
("gettext" ,gettext-minimal)))
|
("gettext" ,gettext-minimal)
|
||||||
|
|
||||||
|
,@(if (hurd-target?)
|
||||||
|
`(("mig" ,mig)
|
||||||
|
("perl" ,perl))
|
||||||
|
'())))
|
||||||
|
|
||||||
(native-search-paths
|
(native-search-paths
|
||||||
;; Search path for packages that provide locale data. This is useful
|
;; Search path for packages that provide locale data. This is useful
|
||||||
|
@ -800,89 +829,6 @@ (define (linker-script? file)
|
||||||
(license lgpl2.0+)
|
(license lgpl2.0+)
|
||||||
(home-page "https://www.gnu.org/software/libc/")))
|
(home-page "https://www.gnu.org/software/libc/")))
|
||||||
|
|
||||||
(define-public glibc/hurd
|
|
||||||
;; The Hurd's libc variant.
|
|
||||||
(package (inherit glibc/linux)
|
|
||||||
(name "glibc-hurd")
|
|
||||||
(version "2.23")
|
|
||||||
(source (origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri (string-append "http://alpha.gnu.org/gnu/hurd/glibc-"
|
|
||||||
version "-hurd+libpthread-20161218" ".tar.gz"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"0vpdv05j6j3ria5bw8gp468i64gij94cslxkxj9xkfgi6p615b8p"))))
|
|
||||||
|
|
||||||
;; Libc provides <hurd.h>, which includes a bunch of Hurd and Mach headers,
|
|
||||||
;; so both should be propagated.
|
|
||||||
(propagated-inputs `(("hurd-core-headers" ,hurd-core-headers)))
|
|
||||||
(native-inputs
|
|
||||||
`(,@(package-native-inputs glibc/linux)
|
|
||||||
("mig" ,mig)
|
|
||||||
("perl" ,perl)))
|
|
||||||
|
|
||||||
(arguments
|
|
||||||
(substitute-keyword-arguments (package-arguments glibc/linux)
|
|
||||||
((#:phases original-phases)
|
|
||||||
;; Add libmachuser.so and libhurduser.so to libc.so's search path.
|
|
||||||
;; See <http://lists.gnu.org/archive/html/bug-hurd/2015-07/msg00051.html>.
|
|
||||||
`(modify-phases ,original-phases
|
|
||||||
(add-after 'install 'augment-libc.so
|
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
|
||||||
(let* ((out (assoc-ref outputs "out")))
|
|
||||||
(substitute* (string-append out "/lib/libc.so")
|
|
||||||
(("/[^ ]+/lib/libc.so.0.3")
|
|
||||||
(string-append out "/lib/libc.so.0.3" " libmachuser.so" " libhurduser.so"))))
|
|
||||||
#t))
|
|
||||||
(add-after 'pre-configure 'pre-configure-set-pwd
|
|
||||||
(lambda _
|
|
||||||
;; Use the right 'pwd'.
|
|
||||||
(substitute* "configure"
|
|
||||||
(("/bin/pwd") "pwd"))
|
|
||||||
#t))
|
|
||||||
(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 ((flags (list "-j" (number->string (parallel-job-count)))))
|
|
||||||
(define (make target)
|
|
||||||
(apply invoke "make" target flags))
|
|
||||||
(make "mach/subdir_lib")
|
|
||||||
(make "hurd/subdir_lib")
|
|
||||||
(make "libpthread/subdir_lib")
|
|
||||||
(apply invoke "make" flags))))))
|
|
||||||
((#:configure-flags original-configure-flags)
|
|
||||||
`(append (list "--host=i586-pc-gnu"
|
|
||||||
|
|
||||||
;; We need this to get a working openpty() function.
|
|
||||||
"--enable-pt_chown"
|
|
||||||
|
|
||||||
;; <https://lists.gnu.org/archive/html/bug-hurd/2016-10/msg00033.html>
|
|
||||||
"--disable-werror"
|
|
||||||
|
|
||||||
;; nscd fails to build for GNU/Hurd:
|
|
||||||
;; <https://lists.gnu.org/archive/html/bug-hurd/2014-07/msg00006.html>.
|
|
||||||
;; Disable it.
|
|
||||||
"--disable-nscd")
|
|
||||||
(filter (lambda (flag)
|
|
||||||
(not (string-prefix? "--enable-kernel=" flag)))
|
|
||||||
,original-configure-flags)))))
|
|
||||||
(synopsis "The GNU C Library (GNU Hurd variant)")
|
|
||||||
(supported-systems %hurd-systems)))
|
|
||||||
|
|
||||||
(define* (glibc-for-target #:optional
|
|
||||||
(target (or (%current-target-system)
|
|
||||||
(%current-system))))
|
|
||||||
"Return the glibc for TARGET, GLIBC/LINUX for a Linux host or
|
|
||||||
GLIBC/HURD for a Hurd host"
|
|
||||||
(match target
|
|
||||||
((or "i586-pc-gnu" "i586-gnu") glibc/hurd)
|
|
||||||
(_ glibc/linux)))
|
|
||||||
|
|
||||||
(define-syntax glibc
|
|
||||||
(identifier-syntax (glibc-for-target)))
|
|
||||||
|
|
||||||
;; Below are old libc versions, which we use mostly to build locale data in
|
;; Below are old libc versions, which we use mostly to build locale data in
|
||||||
;; the old format (which the new libc cannot cope with.)
|
;; the old format (which the new libc cannot cope with.)
|
||||||
|
|
||||||
|
@ -1121,18 +1067,17 @@ (define-public which
|
||||||
(license gpl3+))) ; some files are under GPLv2+
|
(license gpl3+))) ; some files are under GPLv2+
|
||||||
|
|
||||||
(define-public glibc/hurd-headers
|
(define-public glibc/hurd-headers
|
||||||
(package (inherit glibc/hurd)
|
(package (inherit glibc)
|
||||||
(name "glibc-hurd-headers")
|
(name "glibc-hurd-headers")
|
||||||
(outputs '("out"))
|
(outputs '("out"))
|
||||||
(propagated-inputs `(("gnumach-headers" ,gnumach-headers)
|
(propagated-inputs `(("gnumach-headers" ,gnumach-headers)
|
||||||
("hurd-headers" ,hurd-headers)))
|
("hurd-headers" ,hurd-headers)))
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments (package-arguments glibc/hurd)
|
(substitute-keyword-arguments (package-arguments glibc)
|
||||||
;; We just pass the flags really needed to build the headers.
|
;; We just pass the flags really needed to build the headers.
|
||||||
((#:configure-flags _)
|
((#:configure-flags _)
|
||||||
`(list "--enable-add-ons"
|
`(list "--enable-add-ons"
|
||||||
"--host=i586-pc-gnu"
|
"--host=i586-pc-gnu"))
|
||||||
"--enable-obsolete-rpc"))
|
|
||||||
((#:phases _)
|
((#:phases _)
|
||||||
'(modify-phases %standard-phases
|
'(modify-phases %standard-phases
|
||||||
(replace 'install
|
(replace 'install
|
||||||
|
@ -1147,13 +1092,7 @@ (define-public glibc/hurd-headers
|
||||||
(open-output-file
|
(open-output-file
|
||||||
(string-append out "/include/gnu/stubs.h"))))
|
(string-append out "/include/gnu/stubs.h"))))
|
||||||
#t))
|
#t))
|
||||||
(delete 'build) ; nothing to build
|
(delete 'build))))))) ; nothing to build
|
||||||
(add-before 'configure 'patch-configure-script
|
|
||||||
(lambda _
|
|
||||||
;; Use the right 'pwd'.
|
|
||||||
(substitute* "configure"
|
|
||||||
(("/bin/pwd") "pwd"))
|
|
||||||
#t))))))))
|
|
||||||
|
|
||||||
(define-public tzdata
|
(define-public tzdata
|
||||||
(package
|
(package
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
|
||||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||||
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||||
|
@ -356,7 +356,7 @@ (define xglibc/hurd-headers
|
||||||
,@(package-arguments glibc/hurd-headers))
|
,@(package-arguments glibc/hurd-headers))
|
||||||
((#:phases phases)
|
((#:phases phases)
|
||||||
`(modify-phases ,phases
|
`(modify-phases ,phases
|
||||||
(add-before 'pre-configure 'set-cross-headers-path
|
(add-after 'unpack 'set-cross-headers-path
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
(let* ((mach (assoc-ref inputs "gnumach-headers"))
|
(let* ((mach (assoc-ref inputs "gnumach-headers"))
|
||||||
(hurd (assoc-ref inputs "hurd-headers"))
|
(hurd (assoc-ref inputs "hurd-headers"))
|
||||||
|
@ -426,17 +426,9 @@ (define* (cross-libc target
|
||||||
(xheaders (cross-kernel-headers target)))
|
(xheaders (cross-kernel-headers target)))
|
||||||
"Return a libc cross-built for TARGET, a GNU triplet. Use XGCC and
|
"Return a libc cross-built for TARGET, a GNU triplet. Use XGCC and
|
||||||
XBINUTILS and the cross tool chain."
|
XBINUTILS and the cross tool chain."
|
||||||
(define (cross-libc-for-target target)
|
|
||||||
"Return libc depending on TARGET."
|
|
||||||
(match target
|
|
||||||
((or "i586-pc-gnu" "i586-gnu") glibc/hurd)
|
|
||||||
(_ glibc/linux)))
|
|
||||||
|
|
||||||
;; Use (cross-libc-for-target ...) to determine the correct libc to use.
|
|
||||||
|
|
||||||
(if (cross-newlib? target)
|
(if (cross-newlib? target)
|
||||||
(native-libc target)
|
(native-libc target)
|
||||||
(let ((libc (cross-libc-for-target target)))
|
(let ((libc glibc))
|
||||||
(package (inherit libc)
|
(package (inherit libc)
|
||||||
(name (string-append "glibc-cross-" target))
|
(name (string-append "glibc-cross-" target))
|
||||||
(arguments
|
(arguments
|
||||||
|
@ -457,7 +449,9 @@ (define (cross-libc-for-target target)
|
||||||
,@(package-arguments libc))
|
,@(package-arguments libc))
|
||||||
((#:configure-flags flags)
|
((#:configure-flags flags)
|
||||||
`(cons ,(string-append "--host=" target)
|
`(cons ,(string-append "--host=" target)
|
||||||
,flags))
|
,(if (hurd-triplet? target)
|
||||||
|
`(cons "--disable-werror" ,flags)
|
||||||
|
flags)))
|
||||||
((#:phases phases)
|
((#:phases phases)
|
||||||
`(modify-phases ,phases
|
`(modify-phases ,phases
|
||||||
(add-before 'configure 'set-cross-kernel-headers-path
|
(add-before 'configure 'set-cross-kernel-headers-path
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2014, 2015, 2016, 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
;;; Copyright © 2014, 2015, 2016, 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||||
|
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -24,17 +25,25 @@ (define-module (gnu packages hurd)
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
#:use-module (guix build-system trivial)
|
#:use-module (guix build-system trivial)
|
||||||
|
#:use-module (gnu packages autotools)
|
||||||
#:use-module (gnu packages flex)
|
#:use-module (gnu packages flex)
|
||||||
#:use-module (gnu packages bison)
|
#:use-module (gnu packages bison)
|
||||||
#:use-module (gnu packages perl)
|
#:use-module (gnu packages perl)
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
#:use-module (guix git-download)
|
#:use-module (guix git-download)
|
||||||
#:export (hurd-triplet?))
|
#:export (hurd-triplet?
|
||||||
|
hurd-target?))
|
||||||
|
|
||||||
(define (hurd-triplet? triplet)
|
(define (hurd-triplet? triplet)
|
||||||
(and (string-suffix? "-gnu" triplet)
|
(and (string-suffix? "-gnu" triplet)
|
||||||
(not (string-contains triplet "linux"))))
|
(not (string-contains triplet "linux"))))
|
||||||
|
|
||||||
|
(define (hurd-target?)
|
||||||
|
"Return true if the cross-compilation target or the current system is
|
||||||
|
GNU/Hurd."
|
||||||
|
(or (and=> (%current-target-system) hurd-triplet?)
|
||||||
|
(string-suffix? (%current-system) "-gnu")))
|
||||||
|
|
||||||
(define (gnumach-source-url version)
|
(define (gnumach-source-url version)
|
||||||
(string-append "mirror://gnu/gnumach/gnumach-"
|
(string-append "mirror://gnu/gnumach/gnumach-"
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
|
@ -43,6 +52,10 @@ (define (hurd-source-url version)
|
||||||
(string-append "mirror://gnu/hurd/hurd-"
|
(string-append "mirror://gnu/hurd/hurd-"
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
|
|
||||||
|
(define (patch-url repository commit)
|
||||||
|
(string-append "https://git.savannah.gnu.org/cgit/hurd/" repository
|
||||||
|
".git/patch/?id=" commit))
|
||||||
|
|
||||||
(define-public gnumach-headers
|
(define-public gnumach-headers
|
||||||
(package
|
(package
|
||||||
(name "gnumach-headers")
|
(name "gnumach-headers")
|
||||||
|
@ -53,7 +66,24 @@ (define-public gnumach-headers
|
||||||
(uri (gnumach-source-url version))
|
(uri (gnumach-source-url version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"02hygsfpd2dljl5lg1vjjg9pizi9jyxd4aiiqzjshz6jax62jm9f"))))
|
"02hygsfpd2dljl5lg1vjjg9pizi9jyxd4aiiqzjshz6jax62jm9f"))
|
||||||
|
(patches (list (origin
|
||||||
|
;; This patch adds <mach/vm_wire.h>, which defines the
|
||||||
|
;; VM_WIRE_* constants needed by glibc 2.28.
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (patch-url "gnumach" "2b0f19f602e08fd9d37268233b962674fd592634"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"01iajnwsmka0w9hwjkxxijc4xfhwqbvlkw1w8n71hpnhfixd0y28"))
|
||||||
|
(file-name "gnumach-vm-wire-header.patch"))))
|
||||||
|
(modules '((guix build utils)))
|
||||||
|
(snippet
|
||||||
|
'(begin
|
||||||
|
;; Actually install vm_wire.h.
|
||||||
|
(substitute* "Makefile.in"
|
||||||
|
(("^include_mach_HEADERS =")
|
||||||
|
"include_mach_HEADERS = include/mach/vm_wire.h"))
|
||||||
|
#t))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:phases
|
||||||
|
@ -110,56 +140,71 @@ (define-public mig
|
||||||
(license gpl2+)))
|
(license gpl2+)))
|
||||||
|
|
||||||
(define-public hurd-headers
|
(define-public hurd-headers
|
||||||
(package
|
;; Resort to a post-0.9 snapshot that provides the 'file_utimens' and
|
||||||
(name "hurd-headers")
|
;; 'file_exec_paths' RPCs that glibc 2.28 expects.
|
||||||
(version "0.9")
|
(let ((revision "0")
|
||||||
(source (origin
|
(commit "98b33905c89b7e5c309c74ae32302a5745901a6e"))
|
||||||
(method url-fetch)
|
(package
|
||||||
(uri (hurd-source-url version))
|
(name "hurd-headers")
|
||||||
(sha256
|
(version "0.9")
|
||||||
(base32
|
(source (origin
|
||||||
"1nw9gly0n7pyv3cpfm4mmxy4yccrx4g0lyrvd3vk2vil26jpbggw"))))
|
(method git-fetch)
|
||||||
(build-system gnu-build-system)
|
(uri (git-reference
|
||||||
(native-inputs
|
(url "https://git.savannah.gnu.org/git/hurd/hurd.git")
|
||||||
`(("mig" ,mig)))
|
(commit commit)))
|
||||||
(arguments
|
(sha256
|
||||||
`(#:phases
|
(base32
|
||||||
(modify-phases %standard-phases
|
"1mj22sxgscas2675vrbxr477mwbxdj68pqcrh65lbir8qlssrgrf"))
|
||||||
(replace 'install
|
(file-name (git-file-name name version))))
|
||||||
(lambda _
|
(build-system gnu-build-system)
|
||||||
(invoke "make" "install-headers" "no_deps=t")))
|
(native-inputs
|
||||||
(delete 'build))
|
`(("mig" ,mig)
|
||||||
|
("autoconf" ,autoconf)
|
||||||
|
("automake" ,automake)))
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(replace 'install
|
||||||
|
(lambda _
|
||||||
|
(invoke "make" "install-headers" "no_deps=t")))
|
||||||
|
(delete 'build))
|
||||||
|
|
||||||
#:configure-flags '(;; Pretend we're on GNU/Hurd; 'configure' wants
|
#:configure-flags '( ;; Pretend we're on GNU/Hurd; 'configure' wants
|
||||||
;; that.
|
;; that.
|
||||||
,@(if (%current-target-system)
|
,@(if (%current-target-system)
|
||||||
'()
|
'()
|
||||||
'("--host=i586-pc-gnu"))
|
'("--host=i586-pc-gnu"))
|
||||||
|
|
||||||
;; Reduce set of dependencies.
|
;; Reduce set of dependencies.
|
||||||
"--without-parted"
|
"--without-parted"
|
||||||
"--disable-ncursesw"
|
"--disable-ncursesw"
|
||||||
"--disable-test"
|
"--disable-test"
|
||||||
"--without-libbz2"
|
"--without-libbz2"
|
||||||
"--without-libz"
|
"--without-libz"
|
||||||
;; Skip the clnt_create check because it expects
|
;; Skip the clnt_create check because it expects
|
||||||
;; a working glibc causing a circular dependency.
|
;; a working glibc causing a circular dependency.
|
||||||
"ac_cv_search_clnt_create=no")
|
"ac_cv_search_clnt_create=no"
|
||||||
|
|
||||||
#:tests? #f))
|
;; Annihilate the checks for the 'file_exec_paths'
|
||||||
(home-page "https://www.gnu.org/software/hurd/hurd.html")
|
;; & co. libc functions to avoid "link tests are
|
||||||
(synopsis "GNU Hurd headers")
|
;; not allowed after AC_NO_EXECUTABLES" error.
|
||||||
(description
|
"ac_cv_func_file_exec_paths=no"
|
||||||
"This package provides C headers of the GNU Hurd, used to build the GNU C
|
"ac_cv_func_exec_exec_paths=no"
|
||||||
|
"ac_cv_func__hurd_exec_paths=no"
|
||||||
|
"ac_cv_func_file_futimens=no")
|
||||||
|
|
||||||
|
#:tests? #f))
|
||||||
|
(home-page "https://www.gnu.org/software/hurd/hurd.html")
|
||||||
|
(synopsis "GNU Hurd headers")
|
||||||
|
(description
|
||||||
|
"This package provides C headers of the GNU Hurd, used to build the GNU C
|
||||||
Library and other user programs.")
|
Library and other user programs.")
|
||||||
(license gpl2+)))
|
(license gpl2+))))
|
||||||
|
|
||||||
(define-public hurd-minimal
|
(define-public hurd-minimal
|
||||||
(package (inherit hurd-headers)
|
(package (inherit hurd-headers)
|
||||||
(name "hurd-minimal")
|
(name "hurd-minimal")
|
||||||
(inputs `(("glibc-hurd-headers" ,glibc/hurd-headers)))
|
(inputs `(("glibc-hurd-headers" ,glibc/hurd-headers)))
|
||||||
(native-inputs
|
|
||||||
`(("mig" ,mig)))
|
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments (package-arguments hurd-headers)
|
(substitute-keyword-arguments (package-arguments hurd-headers)
|
||||||
((#:phases _)
|
((#:phases _)
|
||||||
|
@ -178,6 +223,11 @@ (define-public hurd-minimal
|
||||||
#t)))
|
#t)))
|
||||||
(replace 'build
|
(replace 'build
|
||||||
(lambda _
|
(lambda _
|
||||||
|
;; Install <assert-backtrace.h> & co.
|
||||||
|
(invoke "make" "-Clibshouldbeinlibc"
|
||||||
|
"../include/assert-backtrace.h")
|
||||||
|
|
||||||
|
;; Build libihash.
|
||||||
(invoke "make" "-Clibihash" "libihash.a")))))))
|
(invoke "make" "-Clibihash" "libihash.a")))))))
|
||||||
(home-page "https://www.gnu.org/software/hurd/hurd.html")
|
(home-page "https://www.gnu.org/software/hurd/hurd.html")
|
||||||
(synopsis "GNU Hurd libraries")
|
(synopsis "GNU Hurd libraries")
|
||||||
|
|
Loading…
Reference in a new issue