[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
43/48: gnu: hurd: Build fixes for the 64bit Hurd.
From: |
guix-commits |
Subject: |
43/48: gnu: hurd: Build fixes for the 64bit Hurd. |
Date: |
Sat, 9 Nov 2024 08:12:39 -0500 (EST) |
janneke pushed a commit to branch hurd-team
in repository guix.
commit 8c5682790a39a99b0feab3bde55117eddfed79f5
Author: Janneke Nieuwenhuizen <janneke@gnu.org>
AuthorDate: Thu Nov 7 20:29:22 2024 +0100
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, disable -Wstrict-prototypes and
-Wint-conversion,
and follow upstream's "amd64" symlinking voodoo.
Change-Id: Iefe9b487805a0cd5a30d71f833a275e23fb0fc68
---
gnu/local.mk | 1 +
gnu/packages/hurd.scm | 115 ++++++++++++++++++++++------------
gnu/packages/patches/hurd-64bit.patch | 58 +++++++++++++++++
3 files changed, 133 insertions(+), 41 deletions(-)
diff --git a/gnu/local.mk b/gnu/local.mk
index 4a60ddfba7..fd6c67e3a5 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1544,6 +1544,7 @@ dist_patch_DATA =
\
%D%/packages/patches/htslib-for-stringtie.patch \
%D%/packages/patches/hubbub-sort-entities.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-startup.patch \
%D%/packages/patches/hwloc-1-test-btrfs.patch \
diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index bc30f2e3fa..e3f23d8e9d 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -316,7 +316,8 @@ Hurd-minimal package which are needed for both glibc and
GCC.")
(source (origin
(inherit (package-source hurd-headers))
(patches (search-patches "hurd-rumpdisk-no-hd.patch"
- "hurd-startup.patch"))))
+ "hurd-startup.patch"
+ "hurd-64bit.patch"))))
(version (package-version hurd-headers))
(arguments
`(#:tests? #f ;no "check" target
@@ -466,48 +467,80 @@ exec ${system}/rc \"$@\"
(find-files (string-append out "/libexec")))
#t)))
(add-after 'build 'build-libdde-linux
- (lambda* (#:key inputs native-inputs #:allow-other-keys)
- (invoke (string-append (assoc-ref (or native-inputs inputs)
"make")
- "/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))
- "ARCH=x86")))
+ (lambda* (#:key inputs native-inputs #:allow-other-keys)
+ (let ((arch ,(match (or (%current-target-system)
+ (%current-system))
+ ((? target-x86-32?)
+ "x86")
+ ((? target-x86-64?)
+ "amd64"))))
+ (when ,(target-hurd64?)
+ (let ((dir "libdde_linux26/build/include"))
+ (mkdir-p (string-append dir "/x86"))
+ (format #t "symlink ~a -> ~a\n"
+ (string-append dir "/x86/amd64") "x86")
+ (symlink "x86" (string-append dir "/amd64"))
+ (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"))))
+ (invoke (string-append (assoc-ref (or native-inputs inputs)
"make")
+ "/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-int-conversion"
+ " -Wno-strict-prototypes")
+ (string-append "ARCH=" arch)))))
(add-after 'install 'install-goodies
- (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
- ;; Install additional goodies.
- ;; TODO: Build & install *.msgids for rpctrace.
- (let* ((out (assoc-ref outputs "out"))
- (datadir (string-append out "/share/hurd")))
- ;; Install libdde_linux26.
- (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="
- out
- "/share/libdde_linux26/build/include")
- "ARCH=x86")
- ;; Install the fancy UTF-8 motd.
- (mkdir-p (string-append out "/etc"))
- (copy-file "console/motd.UTF8"
- (string-append out "/etc/motd"))
+ (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
+ ;; Install additional goodies.
+ ;; TODO: Build & install *.msgids for rpctrace.
+ (let* ((out (assoc-ref outputs "out"))
+ (datadir (string-append out "/share/hurd"))
+ (arch ,(match (or (%current-target-system)
+ (%current-system))
+ ((? target-x86-32?)
+ "x86")
+ ((? target-x86-64?)
+ "amd64")))
+ (dir (string-append out
"/share/libdde_linux26/build/include")))
+ (mkdir-p dir)
+ (when ,(target-hurd64?)
+ (mkdir-p (string-append dir "/amd64"))
+ (format #t "symlink ~a -> ~a\n"
+ (string-append dir "/amd64/asm-x86_64")
+ "x86")
+ (symlink "x86" (string-append dir "/amd46")))
+ (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.
- (copy-file (assoc-ref inputs "unifont")
- "unifont.gz")
- (invoke "gunzip" "unifont.gz")
- (mkdir-p datadir)
- (copy-file "unifont"
- (string-append datadir "/vga-system.bdf"))
- #t))))
+ ;; Install the BDF font for use by the console client.
+ (copy-file (assoc-ref inputs "unifont")
+ "unifont.gz")
+ (invoke "gunzip" "unifont.gz")
+ (mkdir-p datadir)
+ (copy-file "unifont"
+ (string-append datadir "/vga-system.bdf"))))))
#:configure-flags
,#~(list (string-append "LDFLAGS=-Wl,-rpath="
#$output "/lib")
diff --git a/gnu/packages/patches/hurd-64bit.patch
b/gnu/packages/patches/hurd-64bit.patch
new file mode 100644
index 0000000000..9341c6c6b6
--- /dev/null
+++ b/gnu/packages/patches/hurd-64bit.patch
@@ -0,0 +1,58 @@
+From d04d2466ac37e4e474d49c707ba478c7c2a3c9c4 Mon Sep 17 00:00:00 2001
+From: Janneke Nieuwenhuizen <janneke@gnu.org>
+Date: Thu, 7 Nov 2024 18:33:22 +0100
+Subject: [PATCH] Build fixes for amd64 with mig 1.8+git20230520.
+Content-Transfer-Encoding: 8bit
+Content-Type: text/plain; charset=UTF-8
+
+* nfsd/cache.c (create_cached_handle): Use mach_msg_type_number_t
+instead of size_t.
+* nfsd/ops.c (op_readdir): Likewise, and vm_size_t instead of
+mach_msg_type_number_t.
+---
+ nfsd/cache.c | 2 +-
+ nfsd/ops.c | 6 +++---
+ 2 files changed, 4 insertions(+), 4 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..1a01d7d5 100644
+--- a/nfsd/ops.c
++++ b/nfsd/ops.c
+@@ -290,9 +290,9 @@ op_write (struct cache_handle *c,
+ int version)
+ {
+ off_t offset;
+- size_t count;
++ mach_msg_type_number_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_name_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
+
- 26/48: gnu: grep: Fix build for the 64bit Hurd., (continued)
- 26/48: gnu: grep: Fix build for the 64bit Hurd., guix-commits, 2024/11/09
- 24/48: gnu: bash-minimal: Fix build for 64bit Hurd., guix-commits, 2024/11/09
- 38/48: gnu: libpciaccess: Support the 64bit Hurd., guix-commits, 2024/11/09
- 25/48: gnu: elfutils: Fix build for 64bit Hurd., guix-commits, 2024/11/09
- 20/48: gnu: hurd: Update to v0.9.git20240714., guix-commits, 2024/11/09
- 32/48: system: image: Add hurd64 image types., guix-commits, 2024/11/09
- 17/48: installer: Add static-networking template., guix-commits, 2024/11/09
- 13/48: installer: Fix file-name typos., guix-commits, 2024/11/09
- 22/48: gnu: Add basic support for x86_64-pc-gnu target, aka 64bit Hurd., guix-commits, 2024/11/09
- 40/48: gnu: netdde: Update to c0ef248dc7c5ccc1273e2a796f3ece30c5b645df., guix-commits, 2024/11/09
- 43/48: gnu: hurd: Build fixes for the 64bit Hurd.,
guix-commits <=
- 35/48: gnu: perl: Support cross-building for the 64bit Hurd., guix-commits, 2024/11/09
- 36/48: gnu: openssl-3.0: Support the 64bit Hurd., guix-commits, 2024/11/09
- 39/48: gnu: netdde: Support the 64bit Hurd., guix-commits, 2024/11/09
- 19/48: gnu: gnumach: Update to v1.8+git20240406., guix-commits, 2024/11/09
- 45/48: gnu: git-minimal: Support the 64bit Hurd., guix-commits, 2024/11/09
- 48/48: gnu: guile-fibers: Fix build for the 64bit Hurd., guix-commits, 2024/11/09
- 47/48: gnu: grub: Fix build for the 64bit Hurd., guix-commits, 2024/11/09