All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bruce Ashfield <bruce.ashfield@gmail.com>
To: meta-virtualization@lists.yoctoproject.org
Subject: Re: [meta-virtualization] [PATCH 2/2] image-oci: drop *-initial sysroot deps in do_image_oci to avoid libgcc collision
Date: Wed, 29 Jul 2026 06:44:19 -0700 (PDT)	[thread overview]
Message-ID: <6a6a03b3.f7311dcd.2016ce.3464@mx.google.com> (raw)
In-Reply-To: <5437D436-C625-4B0C-8639-94E02C91640E@oss.qualcomm.com>

Aha .. I missed some of the details your cover-letter reply until just
now.  Rereading it now, along with today's do_image_complete report,
changes what I think we should do here.

Disregard the shortened variant I posted.  It inherits the same scope
limitation as 2/2. If the reachability path is actually

  do_image_oci -> do_image -> do_create_rootfs_spdx
      -> libgcc-initial.do_create_spdx
      -> libgcc-initial.do_populate_sysroot

then libgcc-initial is coming in through do_rootfs's own SPDX chain,
not through do_image_oci[depends] at all. Which means:

  * Anything that inherits image has the same reachable node,
    which matches exactly what you're seeing on do_image_complete
    hitting the same crtendS.o collision.
  * Patching only do_image_oci's prefunc is whack-a-mole. There
    are more image tasks in that chain and each one hits the
    same wall for the same reason.
  * I agree with your original thought in the cover letter --
    "blacklisting -initial feels a bit too specific and narrow
    to me" .. but I still don't have a solid idea either.

So: not merging 2/2, and dropping the shortened version I sent as
an alternative. Neither addresses the actual scope.

On next steps.  I'd like to try your reproducer myself so we're both
looking at the same failure. My boost-in-a-packages-layer recipe ran 8
clean-sstate cycles without triggering it; whatever crosses the
"sstate has to populate both libgcc variants" line was clearly missing
in my effort, so tensorflow-lite as the actual C++-heavy trigger might
actually trigger it for me.

Once I can hit it locally, I want to look at your first option --
fixing SSTATE_EXCLUDEDEPS_SYSROOT's gating in oe-core to key off the
dependency being *-initial instead of requiring the consuming task to
be do_populate_sysroot. That's the root-cause fix, and if it we fix it
in oe-core it covers do_image_oci, do_image_complete, and whatever the
next image task in the SPDX chain is that we haven't hit yet, all at
once.

The current gating is could arguably a bug of its own -- the exclusion
regex is named SSTATE_EXCLUDEDEPS_SYSROOT, not
SSTATE_EXCLUDEDEPS_DO_POPULATE_SYSROOT_ONLY, and the gate narrows it
to only one consumer for reasons that don't seem to be documented
anywhere I could find.

The other two options you named: keeping do_image_oci off the generic
prefunc path, or giving do_image_oci its own sysroot .. I think they
would still leave do_image_complete and friends broken by the same
root cause .. so we'd just be chasing similar things popping up.

I'll try and get set up to see the problem here, that way either of
us could potentially take a run at the oe-core fix.

If that fails, we'll come up with something that can live in meta-virt
since this does need to be fixed.

Bruce


  reply	other threads:[~2026-07-29 13:44 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-28 11:55 [meta-virtualization][PATCH 0/2] image-oci: two do_image_oci bugfixes (missing pm.update(), libgcc/libgcc-initial sysroot collision) Koen Kooi
2026-07-28 11:55 ` [PATCH 1/2] image-oci: call pm.update() before pm.install() in multi-layer package layers Koen Kooi
2026-07-29  2:30   ` [meta-virtualization] " Bruce Ashfield
2026-07-28 11:55 ` [PATCH 2/2] image-oci: drop *-initial sysroot deps in do_image_oci to avoid libgcc collision Koen Kooi
2026-07-29  3:17   ` [meta-virtualization] " Bruce Ashfield
2026-07-29 12:03     ` Koen Kooi
2026-07-29 13:44       ` Bruce Ashfield [this message]
2026-07-28 12:45 ` [meta-virtualization][PATCH 0/2] image-oci: two do_image_oci bugfixes (missing pm.update(), libgcc/libgcc-initial sysroot collision) Bruce Ashfield
2026-07-28 17:30   ` Koen Kooi

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=6a6a03b3.f7311dcd.2016ce.3464@mx.google.com \
    --to=bruce.ashfield@gmail.com \
    --cc=meta-virtualization@lists.yoctoproject.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.