Subject: bug#31380: closed (Re: bug#31380: grub fails to build on i686-linux)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 16 Jun 2018 08:24:03 +0000

Your bug report

#31380: grub fails to build on i686-linux

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
31380: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=31380
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#31380: grub fails to build on i686-linux
From: Mark H Weaver <[email-masked]>
To: [email-masked] (Ludovic Courtès)
Cc: [email-masked]
Date: Sat, 16 Jun 2018 04:22:35 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi Ludovic,

[email-masked] (Ludovic Courtès) writes:

> Mark H Weaver <[email-masked]> skribis:
>
>> Here's a proposed patch that I hope will fix the problem, although I'm
>> unable to easily test it because I no longer use binary substitutes, and
>> I have not yet built the core packages for i686-linux.
>>
>> However, I've applied this patch to my x86_64 system, and verified that
>> it does not cause any problems there.
>>
>> Would someone be willing to test it and report back?
>
> I tried it and it initially failed to build with:
[...]
> I fixed this and pushed as a7c8716928a240ba2c36d360e4ffeb447671fa6b.

Thanks very much!  Hydra has now successfully built GRUB on i686-linux,
so I'm closing this bug.

> I wanted to try ‘guix system vm-image -s i686-linux’ on my x86_64 laptop
> to make sure GRUB runs fine.  Unfortunately, I stumbled upon another
> issue, which is that qemu-system-i386 built for i686-linux segfaults at
> startup:
[...]
> I was able to work around it by disabling KVM:
> 
> diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
> index 73d0191de..a675111d4 100644
> --- a/gnu/build/vm.scm
> +++ b/gnu/build/vm.scm
> @@ -104,7 +104,8 @@ the #:references-graphs parameter of 'derivation'."
>        ;; hardware virtualization to still use these commands.  KVM support is
>        ;; still buggy on some ARM32 boards. Do not use it even if available.
>        ,@(if (and (file-exists? "/dev/kvm")
> -                 (not target-arm32?))
> +                 (not target-arm32?)
> +                 (not (string-suffix? "-i386" qemu)))
>              '("-enable-kvm")
>              '())
>  
> I suspect a KVM bug in Linux 4.17 though, because running the same
> ‘qemu-system-i386’ binary under strace works…  Perhaps worth applying
> the patch above in the meantime, WDYT?

It would be better to auto-detect the presence of KVM support at run
time, but that's a wishlist item that deserves its own ticket.  This is
good enough for now.

> Anyway, with this patch I successfully run:
>
>   guix system vm-image gnu/system/examples/bare-bones.tmpl -s i686-linux
>
> and confirmed that the resulting image would boot through GRUB.

Sounds great, thanks again!

     Mark

Subject: [core-updates] grub fails to build on i686-linux
From: Mark H Weaver <[email-masked]>
To: [email-masked]
Date: Mon, 07 May 2018 15:59:56 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

On the 'core-updates' branch, both 'grub' and 'grub-efi' fail to build
on i686-linux.  See below for the relevant excerpt from the build log
of 'grub-efi', but the error is the same for both.

  https://hydra.gnu.org/build/2675846
  https://hydra.gnu.org/build/2684033

      Mark

--8<---------------cut here---------------start------------->8---
lib/i386/relocator64.S: Assembler messages:
lib/i386/relocator64.S:66: Error: unknown pseudo-op: `.code64'
lib/i386/relocator64.S:74: Error: bad register name `%rax'
lib/i386/relocator64.S:88: Error: bad register name `%rsp'
lib/i386/relocator64.S:98: Error: bad register name `%rax'
lib/i386/relocator64.S:132: Error: bad register name `%rip)'
make[3]: *** [Makefile:28996: lib/i386/relocator_module-relocator64.o] Error 1
make[3]: *** Waiting for unfinished jobs....
mv -f lib/.deps-core/crypto_module-crypto.Tpo lib/.deps-core/crypto_module-crypto.Po
mv -f lib/i386/.deps-core/relocator_module-relocator.Tpo lib/i386/.deps-core/relocator_module-relocator.Po
mv -f fs/.deps-core/xfs_module-xfs.Tpo fs/.deps-core/xfs_module-xfs.Po
make[3]: Leaving directory '/tmp/guix-build-grub-efi-2.02.drv-0/grub-2.02/grub-core'
make[2]: *** [Makefile:23531: all] Error 2
make[2]: Leaving directory '/tmp/guix-build-grub-efi-2.02.drv-0/grub-2.02/grub-core'
make[1]: *** [Makefile:10904: all-recursive] Error 1
make[1]: Leaving directory '/tmp/guix-build-grub-efi-2.02.drv-0/grub-2.02'
make: *** [Makefile:3130: all] Error 2
--8<---------------cut here---------------end--------------->8---