All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: Luca Bocassi <luca.boccassi@gmail.com>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>,
	openembedded-core@lists.openembedded.org, raj.khem@gmail.com
Subject: Re: [OE-core] [PATCH v8] systemd: update to v254
Date: Mon, 7 Aug 2023 16:40:24 +0200	[thread overview]
Message-ID: <202308071440247bbfcdd8@mail.local> (raw)
In-Reply-To: <CAMw=ZnQ9VDL=TCUzfsSRiGujCyb_-ZO50S3+UFckDh6LkTgnWw@mail.gmail.com>

Hello,

I've been looking a bit more at this. there is definitively another
issue here which is the first one I found:

x86_64-poky-linux-objcopy: /home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub: file format not recognized

This is the main issue here.

$ file /home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub
/home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub: MS-DOS executable PE32+ executable (EFI application) x86-64 (stripped to external PDB), for MS Windows
$ objdump -p /home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub
objdump: /home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub (.reloc): section flag STYP_GROUP (0x4) ignored
objdump: /home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub (.reloc): section flag STYP_COPY (0x10) ignored
objdump: /home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub: warning: ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section .reloc
objdump: /home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub (.reloc): section flag STYP_GROUP (0x4) ignored
objdump: /home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub (.reloc): section flag STYP_COPY (0x10) ignored
objdump: /home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub: warning: ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section .reloc
objdump: /home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub: file format not recognized

I tested with v253.7 and I properly get:

$ file /home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub
/home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub: PE32+ executable (EFI application) x86-64 (stripped to external PDB), for MS Windows
$ ./build-st/tmp/sysroots-components/x86_64/binutils-cross-x86_64/usr/bin/x86_64-poky-linux/x86_64-poky-linux-objdump -h /home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub

/home/alexandre/poky/build-st/tmp/deploy/images/qemux86-64/linuxx64.efi.stub:     file format pei-x86-64

Sections:
Idx Name          Size      VMA               LMA               File off  Algn
  0 .text         0000d7f0  0000000000004000  0000000000004000  00000400  2**4
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .reloc        0000000c  0000000000012000  0000000000012000  0000dc00  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  2 .data         00002ab0  0000000000013000  0000000000013000  0000de00  2**4
                  CONTENTS, ALLOC, LOAD, DATA
  3 .dynamic      00000100  0000000000016000  0000000000016000  00010a00  2**2
                  CONTENTS, ALLOC, LOAD, DATA
  4 .rela         00000630  0000000000017000  0000000000017000  00010c00  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  5 .dynsym       00000018  0000000000018000  0000000000018000  00011400  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  6 .sdmagic      0000002a  000000000001a460  000000000001a460  00011600  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA

I really believe the recipe is not generating a working efi.stub. Can
you check?


On 06/08/2023 14:56:16+0100, Luca Bocassi wrote:
> On Sun, 6 Aug 2023 at 14:50, Richard Purdie
> <richard.purdie@linuxfoundation.org> wrote:
> >
> > On Sun, 2023-08-06 at 14:34 +0100, Luca Bocassi wrote:
> > > On Sun, 6 Aug 2023 at 14:22, Alexandre Belloni
> > > <alexandre.belloni@bootlin.com> wrote:
> > > >
> > > > On 06/08/2023 14:15:27+0100, Luca Bocassi wrote:
> > > > > Where does that objcopy command come from? It looks awfully like it is
> > > > > hard-coding VMAs? That cannot possibly work reliably, the actual VMAs
> > > > > have to be calculated based on the components being added to the PE.
> > > > > I'd recommend to use 'ukify' as that makes it much easier, and
> > > > > actually we have an intern working to add a bbclass for that just now.
> > > > > But it's not needed, you can do the calculations by hand too, dracut
> > > > > used to do something similar and was fixed some months ago iirc.
> > > >
> > > > This is from do_prepare_partition in scripts/lib/wic/plugins/source/bootimg-efi.py
> > >
> > > https://git.yoctoproject.org/poky/plain/scripts/lib/wic/plugins/source/bootimg-efi.py
> > >
> > >                 objcopy_cmd = "%s-objcopy" % target_sys
> > >                 objcopy_cmd += " --enable-deterministic-archives"
> > >                 objcopy_cmd += " --preserve-dates"
> > >                 objcopy_cmd += " --add-section
> > > .osrel=%s/usr/lib/os-release" % staging_dir_host
> > >                 objcopy_cmd += " --change-section-vma .osrel=0x20000"
> > >                 objcopy_cmd += " --add-section .cmdline=%s" % cmdline.name
> > >                 objcopy_cmd += " --change-section-vma .cmdline=0x30000"
> > >                 objcopy_cmd += dtb_params
> > >                 objcopy_cmd += " --add-section .linux=%s/%s" %
> > > (staging_kernel_dir, kernel)
> > >                 objcopy_cmd += " --change-section-vma .linux=0x2000000"
> > >                 objcopy_cmd += " --add-section .initrd=%s" % initrd.name
> > >                 objcopy_cmd += " --change-section-vma .initrd=0x3000000"
> > >                 objcopy_cmd += " %s %s/EFI/Linux/linux.efi" % (efi_stub, hdddir)
> > >
> > > Yeah that's a bug, and it needs to be fixed, those sizes can't be
> > > hard-coded like that, as soon as you build a slightly different stub
> > > it's going to break.
> >
> > Given this is causing multiple breakages on the automated testing, the
> > systemd upgrade shouldn't have merged. It has. Technically I should
> > really just revert everything (the upgrade and the fixes on top) and
> > wait until someone has a fix for this. I'd prefer not to since we
> > obviously do want to upgrade eventually.
> >
> > Is there anything we can do with this short term to make things work?
> > Can the offsets we need be read from somewhere?
> 
> The Arch wiki has good and concise documentation on how to do it:
> 
> https://wiki.archlinux.org/title/Unified_kernel_image#Manually
> 
> This is the equivalent fix that was merged in Dracut some months ago:
> 
> https://github.com/dracutdevs/dracut/commit/f32e95bcadbc5158843530407adc1e7b700561b1

> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#185570): https://lists.openembedded.org/g/openembedded-core/message/185570
> Mute This Topic: https://lists.openembedded.org/mt/100516497/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
> 


-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


  reply	other threads:[~2023-08-07 14:40 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-28 20:44 [PATCH] systemd: update to v254 luca.boccassi
2023-07-30  8:06 ` [OE-core] " Alexandre Belloni
2023-07-30 12:36   ` Luca Boccassi
2023-07-30 12:43     ` Alexander Kanavin
2023-07-30 15:23       ` Luca Boccassi
2023-07-30 12:40 ` [PATCH v2] " luca.boccassi
2023-07-30 15:22 ` [PATCH v3] " luca.boccassi
2023-07-31 11:27 ` [PATCH v4] " luca.boccassi
2023-07-31 16:40   ` [OE-core] " Alexandre Belloni
2023-07-31 16:41     ` Alexandre Belloni
2023-07-31 16:56     ` Luca Boccassi
2023-07-31 17:13       ` Alexandre Belloni
2023-07-31 17:22         ` Luca Boccassi
2023-07-31 17:33           ` Alexander Kanavin
     [not found]           ` <1777043202ABE7FB.4565@lists.openembedded.org>
2023-07-31 17:37             ` Alexander Kanavin
2023-07-31 18:00               ` Luca Boccassi
2023-08-02  8:12                 ` Luca Boccassi
2023-08-02 17:14                   ` Khem Raj
2023-08-02 17:21                     ` Luca Boccassi
2023-08-02 17:42                       ` Khem Raj
2023-08-02 18:55                         ` Luca Boccassi
2023-07-31 17:21 ` [PATCH v5] " luca.boccassi
2023-07-31 18:00 ` [PATCH v6] " luca.boccassi
2023-08-02 18:54 ` [PATCH v7] " luca.boccassi
2023-08-02 19:27   ` Khem Raj
2023-08-02 23:16     ` Luca Boccassi
2023-08-03 18:34       ` Luca Boccassi
2023-08-03 19:29         ` Khem Raj
2023-08-04 10:38         ` [OE-core] " Alexandre Belloni
2023-08-02 23:16 ` [PATCH v8] " luca.boccassi
2023-08-06 12:38   ` [OE-core] " Alexandre Belloni
2023-08-06 13:15     ` Luca Boccassi
2023-08-06 13:22       ` Alexandre Belloni
2023-08-06 13:34         ` Luca Boccassi
2023-08-06 13:50           ` Richard Purdie
2023-08-06 13:56             ` Luca Boccassi
2023-08-07 14:40               ` Alexandre Belloni [this message]
2023-08-07 22:37                 ` Alexandre Belloni
2023-08-07 22:48                   ` Luca Boccassi
2023-08-08  0:01                     ` Khem Raj
2023-08-08  0:51                       ` Alexandre Belloni
2023-08-08 16:10                         ` Jose Quaresma
2023-08-09 15:01                           ` Luca Boccassi

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202308071440247bbfcdd8@mail.local \
    --to=alexandre.belloni@bootlin.com \
    --cc=luca.boccassi@gmail.com \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=raj.khem@gmail.com \
    --cc=richard.purdie@linuxfoundation.org \
    /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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.