From: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
To: Maxime Devos <maximedevos@telenet.be>
Cc: 55343@debbugs.gnu.org
Subject: [bug#55343] [PATCH 2/2] image: Add new efi32-raw format for 32bit UEFI on 64bit systems
Date: Wed, 11 May 2022 19:00:23 +0200 [thread overview]
Message-ID: <20220511190023.527dacfa@primarylaptop.localdomain> (raw)
In-Reply-To: <aadd9fde35d3cf6d15e3f65a6a479d843de0ef0e.camel@telenet.be>
[-- Attachment #1.1: Type: text/plain, Size: 2982 bytes --]
Hi,
On Tue, 10 May 2022 11:32:52 +0200
Maxime Devos <maximedevos@telenet.be> wrote:
> (list #:target "i386")
I've tried that I get the following error:
> ice-9/boot-9.scm:1685:16: In procedure raise-exception:
> dynamic linker name not known for this system "i386"
This means that I have to use "i686-linux" because only "i686-linux" is
in the list of allowed values.
I've tried and this adds a cross toolchain to the list of
dependencies[1] and this doesn't work because efibootmgr which is a
dependency doesn't compile anymore as it doesn't find some of the
headers like efivar.h and efiboot.h. This could probably be fixed
somehow though.
In addition I've found the following issues with that approach:
- It hardcode the kernel (Linux or HURD) so we'd probably
need extra logic to handle it well. With --target=i386 that is
transparent. Note that I didn't test grub-efi32 with HURD in either
cases.
- It doesn't support "canadian" cross compilation where the builder
(for instance x86) builds a cross compiler to run on another
architecture (for instance ARM) to then compile programs for another
architecture (for instance riscv). With --target=i386 we can in
theory do that (though I've not tested it).
And with it, I see the following advantage: since it's wrapped somehow
Guix can probably do things automatically (like checks or change
things) on all the packages that are cross compiled.
What approach do you think is best (I don't know the implementation of
(list #:target "i686-linux") so you probably know way better than me
which one is the best) ?.
If (list #:target "i686-linux") is the way to go, do you have any
pointers to make it find the headers it needs? I've attached its build
log in case it is useful.
References:
-----------
[1] Here's the output when trying to build grub-efi32 with
(list #:target "i686-linux"):
> $ ./pre-inst-env guix package -i grub-efi32
> The following package will be upgraded:
> grub-efi32 (dependencies or package changed)
>
> The following derivations will be built:
> /gnu/store/j4divh7pf1bxr11ivzddqhsihan6ij4p-util-linux-2.37.2.drv
> /gnu/store/h86glf6qlyfmf214qj6xsqbj8vmrfss9-zlib-1.2.11.drv
> /gnu/store/hy4x62rrx3gqdnn476dja6im74pxzkpk-glibc-cross-i686-linux-2.33.drv
> /gnu/store/1qynvffnfnf7dlzmrkrkx7nzxq6mkz1k-gcc-cross-sans-libc-i686-linux-10.3.0.drv
> /gnu/store/kyr74wyvikyldkx9a0zd55fmxjs6862c-binutils-cross-i686-linux-2.37.drv
> /gnu/store/wc7zhlgnzrg9z5w5wqyvkwlg0ninavs1-ld-wrapper-i686-linux-0.drv
> /gnu/store/i4h82qxwyaj3i97rgcvh6khfibbj4x3p-linux-libre-headers-cross-i686-linux-5.10.35.drv
> /gnu/store/j4w5c2iqvm9ylfnc2gsadipngl00labp-gcc-cross-i686-linux-10.3.0.drv
> /gnu/store/y15y0pici7yhgycjv13a4hm9jjshdzzm-ncurses-6.2.20210619.drv
> /gnu/store/l5jdw7k9mdm0af4gyklhixw447fgsnxn-pkg-config-i686-linux-0.29.2.drv
> /gnu/store/zg2fyiwc4i4vwarbk8imi9wsgzp8z90h-file-5.39.drv
Denis.
[-- Attachment #1.2: s1q7llv6m4nn8256hjcjx997rjf0vm-efibootmgr-17.drv.xz --]
[-- Type: application/x-xz, Size: 2864 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2022-05-11 16:59 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-09 23:18 [bug#55343] Add support for 32bit UEFI Denis 'GNUtoo' Carikli
2022-05-09 23:24 ` [bug#55343] [PATCH 1/2] utils: Define 'target-x86?' predicate Denis 'GNUtoo' Carikli
2022-05-09 23:24 ` [bug#55343] [PATCH 2/2] image: Add new efi32-raw format for 32bit UEFI on 64bit systems Denis 'GNUtoo' Carikli
2022-05-10 9:32 ` Maxime Devos
2022-05-10 21:39 ` Denis 'GNUtoo' Carikli
2022-05-11 9:07 ` Maxime Devos
2022-05-11 17:35 ` Denis 'GNUtoo' Carikli
2022-05-11 17:00 ` Denis 'GNUtoo' Carikli [this message]
2022-05-11 17:19 ` Maxime Devos
2022-05-11 17:25 ` Maxime Devos
2022-05-18 13:50 ` Denis 'GNUtoo' Carikli
2022-06-11 16:41 ` Denis 'GNUtoo' Carikli
2022-06-17 20:36 ` [bug#55343] Add support for 32bit UEFI Ludovic Courtès
2022-06-18 5:18 ` Timothy Sample
2022-06-19 19:02 ` Mathieu Othacehe
2022-06-24 8:23 ` bug#55343: " Mathieu Othacehe
2022-06-11 19:52 ` [bug#55343] [PATCH 2/2] image: Add new efi32-raw format for 32bit UEFI on 64bit systems Maxime Devos
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220511190023.527dacfa@primarylaptop.localdomain \
--to=gnutoo@cyberdimension.org \
--cc=55343@debbugs.gnu.org \
--cc=maximedevos@telenet.be \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).