[PATCH] gnu: libdaemon: fix build for riscv64

  • Open
  • quality assurance status badge
Details
3 participants
  • Thiago Jung Bauermann
  • fesoj000
  • Ludovic Courtès
Owner
unassigned
Submitted by
fesoj000
Severity
normal
F
F
fesoj000 wrote on 27 Mar 2022 21:24
(address . guix-patches@gnu.org)
b19763fb-6671-4410-77c8-aa6989a55805@gmail.com
* gnu/packages/libdaemon.scm: (native-inputs): Add check for riscv64 to
include config
* gnu/packages/libdaemon.scm: (arguments): Add check for riscv64 to add
update-config.sub build step
---
gnu/packages/libdaemon.scm | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

Toggle diff (26 lines)
diff --git a/gnu/packages/libdaemon.scm b/gnu/packages/libdaemon.scm
index 9dc851e823..e91b651e5a 100644
--- a/gnu/packages/libdaemon.scm
+++ b/gnu/packages/libdaemon.scm
@@ -49,7 +49,8 @@ (define-public libdaemon
(file-name (string-append name "-" version ".tar.gz"))))
(build-system gnu-build-system)
(native-inputs
- (if (and=> (%current-target-system) target-aarch64?)
+ (if (or (target-aarch64?)
+ (target-riscv64?))
`(("config" ,config)) ; for config.sub
'()))
(arguments
@@ -66,7 +67,8 @@ (define-public libdaemon
;; Hurd's console client.
"--localstatedir=/var"))
'())
- ,@(if (and=> (%current-target-system) target-aarch64?)
+ ,@(if (or (target-aarch64?)
+ (target-riscv64?))
`(#:phases
(modify-phases %standard-phases
(add-before 'configure 'update-config.sub
--
2.34.0
F
F
fesoj000 wrote on 28 Mar 2022 21:35
(address . 54599@debbugs.gnu.org)
0d4128d2-da62-2d04-768d-0fe2c5801bf4@gmail.com
Actually, this fixex cross compiling using --target=riscv64-linux-gnu,
on real hardware it works without the patch.
T
T
Thiago Jung Bauermann wrote on 29 Mar 2022 03:25
(name . fesoj000)(address . fesoj000@gmail.com)(address . 54599@debbugs.gnu.org)
87sfr14juy.fsf@kolabnow.com
Hello,

Thanks for this patch! Just a few comments:

fesoj000 <fesoj000@gmail.com> writes:

Toggle quote (5 lines)
> * gnu/packages/libdaemon.scm: (native-inputs): Add check for riscv64 to
> include config
> * gnu/packages/libdaemon.scm: (arguments): Add check for riscv64 to add
> update-config.sub build step

In the changelog, the name of the package goes in the parentheses, and
the package attribute being changed in square brackets. For example:

* gnu/packages/libdaemon.scm (libdaemon)[native-inputs]: Add check for
riscv64 to include config.

Also the sentences should have a period at the end.

Toggle quote (29 lines)
> ---
> gnu/packages/libdaemon.scm | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/gnu/packages/libdaemon.scm b/gnu/packages/libdaemon.scm
> index 9dc851e823..e91b651e5a 100644
> --- a/gnu/packages/libdaemon.scm
> +++ b/gnu/packages/libdaemon.scm
> @@ -49,7 +49,8 @@ (define-public libdaemon
> (file-name (string-append name "-" version ".tar.gz"))))
> (build-system gnu-build-system)
> (native-inputs
> - (if (and=> (%current-target-system) target-aarch64?)
> + (if (or (target-aarch64?)
> + (target-riscv64?))
> `(("config" ,config)) ; for config.sub
> '()))
> (arguments
> @@ -66,7 +67,8 @@ (define-public libdaemon
> ;; Hurd's console client.
> "--localstatedir=/var"))
> '())
> - ,@(if (and=> (%current-target-system) target-aarch64?)
> + ,@(if (or (target-aarch64?)
> + (target-riscv64?))
> `(#:phases
> (modify-phases %standard-phases
> (add-before 'configure 'update-config.sub

Before the patch, ‘native-inputs’ and ‘arguments’ were only changed when
cross-compiling on aarch64. After your patch, they are changed even for
native builds.

Functionally, it's not a problem but this changes the package's
derivation. Since the package has many dependents, it causes a lot of
other packages to be rebuilt:

popigai: guix refresh --list-dependent libdaemon
Building the following 1496 packages would ensure 3175 dependent packages are rebuilt: …

Because of this, the patch can't be applied on the master branch. It
would have to go to core-updates.

So for the master branch, you need to keep the property of only making
changes to ‘native-inputs’ and ‘arguments’ when cross-compiling.

But I also suggest sending an additional patch for the core-updates
branch which unconditionally updates config.sub, regardless of the
architecture and regardless of whether it's a native compilation or a
cross one. This way, the next time Guix is ported to a new architecture
we won't need to update this package again.

--
Thanks
Thiago
L
L
Ludovic Courtès wrote on 4 Apr 2022 22:45
control message for bug #54599
(address . control@debbugs.gnu.org)
87a6d0shl9.fsf@gnu.org
tags 54599 + moreinfo
quit
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 54599@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 54599
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch