Subject: Re: guix package test failure on i686-linux (kexec-load-file test)

From: Ludovic Courtès <[email-masked]>
Date: Sat, 04 Jan 2025 19:11:35 +0100

Hello,

Ian Eure <[email-masked]> skribis:

> This is failing for me on aarch64-linux also:
>
>    test-name: kexec-load-file
>    location:
>    /tmp/guix-build-guix-1.4.0-31.121e96d.drv-0/source/tests/syscalls.scm:688
>    source:
>    + (test-equal
>    +   "kexec-load-file"
>    +   EPERM
>    +   (catch 'system-error
>    +          (lambda ()
>    +            (let ((fd1 (open-fdes "/dev/null" O_RDONLY))
>    +                  (fd2 (open-fdes "/dev/null" O_RDONLY)))
>    +              (kexec-load-file fd1 fd2 "gnu.repl=yes")))
>    +          (lambda args (system-error-errno args))))
>    expected-value: 1
>    actual-value: 38
>    result: FAIL

Could you strace it, to see if strace decodes it are ‘kexec_file_load’?
For example like this:

  ./pre-inst-env strace -e kexec_file_load \
    guile -c '(use-modules (guix build syscalls)) (kexec-load-file (open-fdes "/dev/null" O_RDONLY) (open-fdes "/dev/null" O_RDONLY) "")'

38 is ENOSYS (“Function not implemented”), not ERANGE.  This could mean
that kexec support is missing in this kernel.

Thanks,
Ludo’.