[bug#69944] gnu: dmraid: Fix cross-compiling to riscv64-linux.
Commit Message
* gnu/packages/disk.scm (dmraid)
[native-inputs]: When cross compiling to riscv64-linux-gnu, add config.
[arguments]: When target riscv64-linux-gnu, add update-config phase.
Change-Id: I491c43a6ce2c3fc3aed43ecab9d4a2ab251038bb
---
gnu/packages/disk.scm | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
base-commit: 40f53e8fb5b867e3a1e8fa798328423718282aac
Comments
Zheng Junjie <zhengjunjie@iscas.ac.cn> writes:
> * gnu/packages/disk.scm (dmraid)
> [native-inputs]: When cross compiling to riscv64-linux-gnu, add config.
> [arguments]: When target riscv64-linux-gnu, add update-config phase.
>
> Change-Id: I491c43a6ce2c3fc3aed43ecab9d4a2ab251038bb
> ---
> gnu/packages/disk.scm | 22 +++++++++++++++++++---
> 1 file changed, 19 insertions(+), 3 deletions(-)
Hi!
Thanks for the patch, this doesn't build for me though:
checking build system type... x86_64-unknown-linux-gnu
checking host system type... Invalid configuration `riscv64-linux-gnu': machine `riscv64' not recognized
configure: error: /gnu/store/rib9g2ig1xf3kclyl076w28parmncg4k-bash-minimal-5.1.16/bin/bash autoconf/config.sub riscv64-linux-gnu failed
error: in phase 'configure': uncaught exception:
%exception #<&invoke-error program: "/gnu/store/rib9g2ig1xf3kclyl076w28parmncg4k-bash-minimal-5.1.16/bin/bash" arguments: ("./configure" "CC_FOR_BUILD=gcc" "CONFIG_SHELL=/gnu/store/rib9g2ig1xf3kclyl076w28parmncg4k-bash-minimal-5.1.16/bin/bash" "SHELL=/gnu/store/rib9g2ig1xf3kclyl076w28parmncg4k-bash-minimal-5.1.16/bin/bash" "--prefix=/gnu/store/gb6ij94hk33ivx193zq87m2vhlhzsm8j-dmraid-1.0.0.rc16-3" "--enable-fast-install" "--build=x86_64-unknown-linux-gnu" "--host=riscv64-linux-gnu" "LDFLAGS=-Wl,-rpath=/gnu/store/gb6ij94hk33ivx193zq87m2vhlhzsm8j-dmraid-1.0.0.rc16-3/lib") exit-status: 1 term-signal: #f stop-signal: #f>
https://bordeaux.guix.gnu.org/build/47b7e0bf-b082-4d62-ac4c-8de5c28f5faf/log
@@ -27,7 +27,7 @@
;;; Copyright © 2022 Disseminate Dissent <disseminatedissent@protonmail.com>
;;; Copyright © 2023 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2023 Morgan Smith <Morgan.J.Smith@outlook.com>
-;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1145,7 +1145,12 @@ (define-public dmraid
"1n7vsqvh7y6yvil682q129d21yhb0cmvd5fvsbkza7ypd78inhlk"))))
(build-system gnu-build-system)
(inputs (list lvm2))
- (native-inputs (list which))
+ (native-inputs
+ (append (if (and (target-riscv64?)
+ (%current-target-system))
+ (list config)
+ '())
+ (list which)))
(arguments
`(#:tests? #f ; No tests.
;; Prevent a race condition where some target would attempt to link
@@ -1158,7 +1163,18 @@ (define-public dmraid
(chdir (string-append ,version "/dmraid"))
(substitute* "make.tmpl.in"
(("/bin/sh") (which "sh")))
- #t)))
+ #t))
+ ,@(if (and (target-riscv64?)
+ (%current-target-system))
+ `((add-after 'unpack 'update-config
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (for-each (lambda (file)
+ (install-file
+ (search-input-file
+ (or native-inputs inputs)
+ (string-append "/bin/" file)) "."))
+ '("config.guess" "config.sub")))))
+ '()))
#:configure-flags (list ;; Make sure programs such as 'dmevent_tool' can
;; find libdmraid.so.
(string-append "LDFLAGS=-Wl,-rpath="