Message ID | tencent_D0FFDA97CD8454B0ACE9BF6F9DB7F29E1207@qq.com |
---|---|
State | New |
Headers | show |
Series | [bug#63839] gnu: riscv-pk: don't target riscv64-linux-gnu when current system is riscv64. | expand |
Hi, Z572 via Guix-patches via <guix-patches@gnu.org> writes: > + ;; riscv-pk can only be built for riscv64. > + (if (string-prefix? "riscv64" (%current-system)) > + '() > + (list > + #:target "riscv64-linux-gnu")) I don't think that's a good idea, in general, consumers of the package should be the ones specifying for which arch this package builds. For that purpose, there's the supported-systems field of the package record type. It's not good in general to hardcode targets in package definitions. Best,
Josselin Poiret via Guix-patches via <guix-patches@gnu.org> writes: > [[PGP Signed Part:Undecided]] > Hi, > > Z572 via Guix-patches via <guix-patches@gnu.org> writes: > > >> + ;; riscv-pk can only be built for riscv64. >> + (if (string-prefix? "riscv64" (%current-system)) >> + '() >> + (list >> + #:target "riscv64-linux-gnu")) > > I don't think that's a good idea, in general, consumers of the package > should be the ones specifying for which arch this package builds. For > that purpose, there's the supported-systems field of the package record > type. It's not good in general to hardcode targets in package > definitions. look it's name. because it doesn't make sense to target other targets, like `u-boot-sifive-unmatched' or `opensbi-generic'. > > Best,
Hi, Any news on this patch? I still stand by what I said: I believe it's wrong for packages to force a target, this should be specified by the caller instead, using `--target=`. One can add the supported systems to supported-systems to note that this package only works for some systems though. Best,
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index c88fd31146..1257bb531d 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -28,6 +28,7 @@ ;;; Copyright © 2022 Ekaitz Zarraga <ekaitz@elenq.tech> ;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com> +;;; Copyright © 2023 Zheng Junjie <873216071@qq.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -2554,16 +2555,21 @@ (define-public riscv-pk "1cc0rz4q3a1zw8756b8yysw8lb5g4xbjajh5lvqbjix41hbdx6xz")))) (build-system gnu-build-system) (arguments - (list #:out-of-source? #t - ;; riscv-pk can only be built for riscv64. - #:target "riscv64-linux-gnu" - #:make-flags #~(list (string-append "INSTALLDIR=" #$output)) - ;; Add flags to keep symbols fromhost and tohost. These symbols are - ;; required for the correct functioning of pk. - #:strip-flags #~(list "--strip-unneeded" - "--keep-symbol=fromhost" - "--keep-symbol=tohost" - "--enable-deterministic-archives"))) + (append + ;; riscv-pk can only be built for riscv64. + (if (string-prefix? "riscv64" (%current-system)) + '() + (list + #:target "riscv64-linux-gnu")) + (list #:out-of-source? #t + + #:make-flags #~(list (string-append "INSTALLDIR=" #$output)) + ;; Add flags to keep symbols fromhost and tohost. These symbols are + ;; required for the correct functioning of pk. + #:strip-flags #~(list "--strip-unneeded" + "--keep-symbol=fromhost" + "--keep-symbol=tohost" + "--enable-deterministic-archives")))) (home-page "https://github.com/riscv-software-src/riscv-pk") (synopsis "RISC-V Proxy Kernel") (description "The RISC-V Proxy Kernel, @command{pk}, is a lightweight