mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
gnu: hurd: Build fixes for the 64bit Hurd.
* gnu/packages/patches/hurd-64bit.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/hurd.scm (hurd)[source]: Use it. [arguments]: When building for the 64bit Hurd, add "create-machine-symlink" phase. In phases "build-libdde-linux" and "install-goodies", do not assume x86, rather use actual ARCH, and follow upstream's "amd64" symlinking voodoo. Change-Id: If264a91b2433add13f9121c482f0abe67ae5f1e9
This commit is contained in:
parent
de8196f571
commit
f21fb53a8d
3 changed files with 135 additions and 48 deletions
|
@ -1555,6 +1555,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/htslib-for-stringtie.patch \
|
%D%/packages/patches/htslib-for-stringtie.patch \
|
||||||
%D%/packages/patches/hubbub-sort-entities.patch \
|
%D%/packages/patches/hubbub-sort-entities.patch \
|
||||||
%D%/packages/patches/hueplusplus-mbedtls.patch \
|
%D%/packages/patches/hueplusplus-mbedtls.patch \
|
||||||
|
%D%/packages/patches/hurd-64bit.patch \
|
||||||
%D%/packages/patches/hurd-rumpdisk-no-hd.patch \
|
%D%/packages/patches/hurd-rumpdisk-no-hd.patch \
|
||||||
%D%/packages/patches/hurd-startup.patch \
|
%D%/packages/patches/hurd-startup.patch \
|
||||||
%D%/packages/patches/hwloc-1-test-btrfs.patch \
|
%D%/packages/patches/hwloc-1-test-btrfs.patch \
|
||||||
|
|
|
@ -317,7 +317,8 @@ Hurd-minimal package which are needed for both glibc and GCC.")
|
||||||
(source (origin
|
(source (origin
|
||||||
(inherit (package-source hurd-headers))
|
(inherit (package-source hurd-headers))
|
||||||
(patches (search-patches "hurd-rumpdisk-no-hd.patch"
|
(patches (search-patches "hurd-rumpdisk-no-hd.patch"
|
||||||
"hurd-startup.patch"))))
|
"hurd-startup.patch"
|
||||||
|
"hurd-64bit.patch"))))
|
||||||
(version (package-version hurd-headers))
|
(version (package-version hurd-headers))
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f ;no "check" target
|
`(#:tests? #f ;no "check" target
|
||||||
|
@ -467,54 +468,84 @@ exec ${system}/rc \"$@\"
|
||||||
(find-files (string-append out "/libexec")))
|
(find-files (string-append out "/libexec")))
|
||||||
#t)))
|
#t)))
|
||||||
(add-after 'build 'build-libdde-linux
|
(add-after 'build 'build-libdde-linux
|
||||||
(lambda* (#:key inputs native-inputs #:allow-other-keys)
|
(lambda* (#:key inputs native-inputs #:allow-other-keys)
|
||||||
(invoke (string-append (assoc-ref (or native-inputs inputs) "make")
|
(let ((arch ,(match (or (%current-target-system)
|
||||||
"/bin/make")
|
(%current-system))
|
||||||
;; XXX There can be a race condition because subdirs
|
((? target-x86-32?)
|
||||||
;; aren't interdependent targets in the Makefile.
|
"x86")
|
||||||
"-j1" "-C" "libdde_linux26"
|
((? target-x86-64?)
|
||||||
(string-append "SHELL="
|
"amd64"))))
|
||||||
(assoc-ref (or native-inputs inputs) "bash")
|
(when ,(target-hurd64?)
|
||||||
"/bin/bash")
|
(let ((dir "libdde_linux26/build/include"))
|
||||||
(string-append "CC="
|
(mkdir-p (string-append dir "/x86"))
|
||||||
,(cc-for-target))
|
(format #t "symlink ~a -> ~a\n"
|
||||||
(string-append "WARNINGS="
|
(string-append dir "/x86/amd64") "x86")
|
||||||
" -Wno-declaration-missing-parameter-type"
|
(symlink "x86" (string-append dir "/amd64"))
|
||||||
" -Wno-implicit-function-declaration"
|
(format #t "symlink ~a -> ~a\n"
|
||||||
" -Wno-implicit-int"
|
(string-append dir "/amd64/asm-x86_64") "asm-x86")
|
||||||
" -Wno-int-conversion"
|
(symlink "asm-x86" (string-append dir "/amd64/asm-x86_64"))))
|
||||||
" -Wno-strict-prototypes")
|
(invoke (string-append (assoc-ref (or native-inputs inputs) "make")
|
||||||
"ARCH=x86")))
|
"/bin/make")
|
||||||
|
;; XXX There can be a race condition because subdirs
|
||||||
|
;; aren't interdependent targets in the Makefile.
|
||||||
|
"-j1" "-C" "libdde_linux26"
|
||||||
|
(string-append "SHELL="
|
||||||
|
(assoc-ref (or native-inputs inputs) "bash")
|
||||||
|
"/bin/bash")
|
||||||
|
(string-append "CC="
|
||||||
|
,(cc-for-target))
|
||||||
|
(string-append "WARNINGS="
|
||||||
|
" -Wno-declaration-missing-parameter-type"
|
||||||
|
" -Wno-implicit-function-declaration"
|
||||||
|
" -Wno-implicit-int"
|
||||||
|
" -Wno-int-conversion"
|
||||||
|
" -Wno-strict-prototypes")
|
||||||
|
(string-append "ARCH=" arch)))))
|
||||||
(add-after 'install 'install-goodies
|
(add-after 'install 'install-goodies
|
||||||
(lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
|
(lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
|
||||||
;; Install additional goodies.
|
;; Install additional goodies.
|
||||||
;; TODO: Build & install *.msgids for rpctrace.
|
;; TODO: Build & install *.msgids for rpctrace.
|
||||||
(let* ((out (assoc-ref outputs "out"))
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
(datadir (string-append out "/share/hurd")))
|
(datadir (string-append out "/share/hurd"))
|
||||||
;; Install libdde_linux26.
|
(arch ,(match (or (%current-target-system)
|
||||||
(invoke (string-append (assoc-ref (or native-inputs inputs) "make")
|
(%current-system))
|
||||||
"/bin/make")
|
((? target-x86-32?)
|
||||||
"-C" "libdde_linux26" "install"
|
"x86")
|
||||||
(string-append "SHELL="
|
((? target-x86-64?)
|
||||||
(assoc-ref (or native-inputs inputs) "bash")
|
"amd64")))
|
||||||
"/bin/bash")
|
(dir (string-append out "/share/libdde_linux26/build/include")))
|
||||||
(string-append "INSTALLDIR="
|
(mkdir-p dir)
|
||||||
out
|
(when ,(target-hurd64?)
|
||||||
"/share/libdde_linux26/build/include")
|
(mkdir-p (string-append dir "/amd64"))
|
||||||
"ARCH=x86")
|
(format #t "symlink ~a -> ~a\n"
|
||||||
;; Install the fancy UTF-8 motd.
|
(string-append dir "/amd64/asm-x86_64")
|
||||||
(mkdir-p (string-append out "/etc"))
|
"x86")
|
||||||
(copy-file "console/motd.UTF8"
|
(symlink "x86" (string-append dir "/amd46")))
|
||||||
(string-append out "/etc/motd"))
|
(invoke (string-append (assoc-ref (or native-inputs inputs) "make")
|
||||||
|
"/bin/make")
|
||||||
|
"-C" "libdde_linux26" "install"
|
||||||
|
(string-append "SHELL="
|
||||||
|
(assoc-ref (or native-inputs inputs) "bash")
|
||||||
|
"/bin/bash")
|
||||||
|
(string-append "INSTALLDIR=" dir)
|
||||||
|
(string-append "ARCH=" arch))
|
||||||
|
(when ,(target-hurd64?)
|
||||||
|
(format #t "symlink ~a -> ~a\n"
|
||||||
|
(string-append dir "/amd64/asm-x86_64")
|
||||||
|
"asm-x86")
|
||||||
|
(symlink "asm-x86" (string-append dir "/amd64/asm-x86_64")))
|
||||||
|
;; Install the fancy UTF-8 motd.
|
||||||
|
(mkdir-p (string-append out "/etc"))
|
||||||
|
(copy-file "console/motd.UTF8"
|
||||||
|
(string-append out "/etc/motd"))
|
||||||
|
|
||||||
;; Install the BDF font for use by the console client.
|
;; Install the BDF font for use by the console client.
|
||||||
(copy-file (assoc-ref inputs "unifont")
|
(copy-file (assoc-ref inputs "unifont")
|
||||||
"unifont.gz")
|
"unifont.gz")
|
||||||
(invoke "gunzip" "unifont.gz")
|
(invoke "gunzip" "unifont.gz")
|
||||||
(mkdir-p datadir)
|
(mkdir-p datadir)
|
||||||
(copy-file "unifont"
|
(copy-file "unifont"
|
||||||
(string-append datadir "/vga-system.bdf"))
|
(string-append datadir "/vga-system.bdf"))))))
|
||||||
#t))))
|
|
||||||
#:configure-flags
|
#:configure-flags
|
||||||
,#~(list (string-append "LDFLAGS=-Wl,-rpath="
|
,#~(list (string-append "LDFLAGS=-Wl,-rpath="
|
||||||
#$output "/lib")
|
#$output "/lib")
|
||||||
|
@ -599,7 +630,6 @@ implementing them.")
|
||||||
" -Wno-implicit-int"
|
" -Wno-implicit-int"
|
||||||
" -Wno-int-conversion"
|
" -Wno-int-conversion"
|
||||||
" -Wno-strict-prototypes")
|
" -Wno-strict-prototypes")
|
||||||
"ARCH=x86")
|
|
||||||
(let ((arch ,(match (or (%current-target-system)
|
(let ((arch ,(match (or (%current-target-system)
|
||||||
(%current-system))
|
(%current-system))
|
||||||
((? target-x86-32?)
|
((? target-x86-32?)
|
||||||
|
|
56
gnu/packages/patches/hurd-64bit.patch
Normal file
56
gnu/packages/patches/hurd-64bit.patch
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
Upstream-status: Taken from upstream:
|
||||||
|
<https://git.savannah.gnu.org/cgit/hurd/hurd.git/commit/?id=d494333e7607ea03819adcfb69d89f8248ec2044>.
|
||||||
|
|
||||||
|
From d494333e7607ea03819adcfb69d89f8248ec2044 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Flavio Cruz <flaviocruz@gmail.com>
|
||||||
|
Date: Sun, 21 Jul 2024 17:20:55 -0400
|
||||||
|
Subject: [PATCH] nfsd: fix -Werror=incompatible-pointer-types issues for
|
||||||
|
x86_64
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
|
||||||
|
Message-ID: <3pmgbk2myx4phdb6wcso54solmybulrvbytols5md3nri2p2qp@xjmfmpvwjp6t>
|
||||||
|
---
|
||||||
|
nfsd/cache.c | 2 +-
|
||||||
|
nfsd/ops.c | 4 ++--
|
||||||
|
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/nfsd/cache.c b/nfsd/cache.c
|
||||||
|
index cd5524af..864739c0 100644
|
||||||
|
--- a/nfsd/cache.c
|
||||||
|
+++ b/nfsd/cache.c
|
||||||
|
@@ -387,7 +387,7 @@ create_cached_handle (int fs, struct cache_handle *credc, file_t userport)
|
||||||
|
struct cache_handle *c;
|
||||||
|
int hash;
|
||||||
|
char *bp = fhandle.array + sizeof (int);
|
||||||
|
- size_t handlelen = NFS2_FHSIZE - sizeof (int);
|
||||||
|
+ mach_msg_type_number_t handlelen = NFS2_FHSIZE - sizeof (int);
|
||||||
|
mach_port_t newport, ref;
|
||||||
|
|
||||||
|
/* Authenticate USERPORT so that we can call file_getfh on it. */
|
||||||
|
diff --git a/nfsd/ops.c b/nfsd/ops.c
|
||||||
|
index 463a9c87..64e94b93 100644
|
||||||
|
--- a/nfsd/ops.c
|
||||||
|
+++ b/nfsd/ops.c
|
||||||
|
@@ -292,7 +292,7 @@ op_write (struct cache_handle *c,
|
||||||
|
off_t offset;
|
||||||
|
size_t count;
|
||||||
|
error_t err;
|
||||||
|
- mach_msg_type_number_t amt;
|
||||||
|
+ vm_size_t amt;
|
||||||
|
char *bp;
|
||||||
|
struct stat st;
|
||||||
|
|
||||||
|
@@ -583,7 +583,7 @@ op_readdir (struct cache_handle *c,
|
||||||
|
error_t err;
|
||||||
|
char *buf;
|
||||||
|
struct dirent *dp;
|
||||||
|
- size_t bufsize;
|
||||||
|
+ mach_msg_type_number_t bufsize;
|
||||||
|
int nentries;
|
||||||
|
int i;
|
||||||
|
int *replystart;
|
||||||
|
--
|
||||||
|
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
|
||||||
|
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue