Subject: bug#54407: Issues building grub for powerpc64le, could not force big-endian

From: Danny Milosavljevic <[email-masked]>
Date: Wed, 30 Mar 2022 19:41:13 +0200

Hi,

On Tue, 15 Mar 2022 21:11:37 +0000
Christopher Baines <[email-masked]> wrote:

> grub can't be built for powerpc64le, I believe the same failure occurs
> with native builds or cross compilation from x86_64. I think this might
> have always been the case.
> 
> This is the error from the build log:
> 
>   checking for options to get big-endian compilation... no
>   configure: error: could not force big-endian
> 
> Looking in the config.log file, it tries a bunch of options with
> different errors, but this one stands out:
> 
>   cc1: error: '-m32' not supported in this configuration
> 
> I know very little about gcc, but I think this might relate to the
> multilib thing, which I'm guessing is disabled for the gcc in use here.

-m32 is to compile 32 bit object files with a compiler that usually compiles 64 bit objects.
If you want to use any libraries, then those have to be available as a 32 bit version somewhere.

The Guix gcc package recipe disables this (and I think that was the right call to make).

There are not a lot of use cases for using "-m32" anyway since on x86_64 the generated instructions are already just as compact as the x86 (32 bit) ones if the immediate operand is not too big.

Not sure what the configure script is doing there.

But there are a few programs that need 32 bit compilers--BIOS-based bootloaders are one of them (since they start up in ancient 8088 real mode).