From: Patrick Williams <patrick@stwcx.xyz>
To: "Ren, Zhikui" <zhikui.ren@intel.com>
Cc: "Bills, Jason M" <jason.m.bills@linux.intel.com>,
"openbmc@lists.ozlabs.org" <openbmc@lists.ozlabs.org>
Subject: Re: Weird build dependency issue causing missing symbols
Date: Fri, 3 Jul 2020 00:20:14 -0500 [thread overview]
Message-ID: <20200703052014.GF3922@heinlein> (raw)
In-Reply-To: <DM6PR11MB441039521253333CFA3BEF22946A0@DM6PR11MB4410.namprd11.prod.outlook.com>
[-- Attachment #1: Type: text/plain, Size: 2903 bytes --]
On Fri, Jul 03, 2020 at 12:18:34AM +0000, Ren, Zhikui wrote:
> Maybe the problem is that this header server.hpp is generated not a source.
> Artifact created from the same source *should* be the same (except timestamp)
> If the source did not update, just a forced rebuild to create new binaries, I can see Yocto choose not to rebuild things depend on the package.
> In the case of boost, since it is devtool modified and the header is a source and not build artifact, it make sense to trigger all the rebuild.
>
>
> -----Original Message-----
> From: openbmc <openbmc-bounces+zhikui.ren=intel.com@lists.ozlabs.org> On Behalf Of Bills, Jason M
> Sent: Thursday, July 2, 2020 5:00 PM
> To: openbmc@lists.ozlabs.org
> Subject: Re: Weird build dependency issue causing missing symbols
>
>
>
> On 7/2/2020 2:33 PM, Patrick Williams wrote:
> > On Thu, Jul 02, 2020 at 12:58:43PM -0700, Bills, Jason M wrote:
> >> We have narrowed this down to being caused by two separate issues:
> >> 1. When phosphor-dbus-interfaces is rebuilt it will sometimes change
> >> the order of the PropertiesVariant in server.hpp.
> >
> > This sounds like a bug in sdbus++. We should be sorting the variant
> > parameters or issuing them in array order. I'll look into it.
> >
> >> 2. When the order of PropertiesVariant changes on a rebuild, the
> >> recipes that already have an old copy of server.hpp are not triggered
> >> to rebuild and are left with the old copy of server.hpp.
> >
> > This isn't surprising if what is triggering the rebuild is not a Yocto
> > variable change (or git revision). Yocto doesn't cache the contents
> > of the packages, but caches the variables that went into a build step.
> > A hash of the variables are used to look up the potential 'sstate-cache'
> > files so that it can skip build steps.
> >
> > If you think a variable or a git-revision should have changed with
> > what you were doing, then maybe it is something else.
> >
> It seems like a header file change should trigger a rebuild, though? If I manually edited something like a library header file, I'd expect everything that includes that library to be rebuilt with the new header change.
>
> I tried to devtool modify boost to check the behavior, but that causes boost to rebuild every time and correctly triggers the dependent builds.
> Maybe the case above of modifying a header file is invalid?
It doesn't matter what the content is: header, library, executable, data
file. Yocto does not use contents in the decision of "does this need to
be rebuilt". It only uses variables from recipes. If the variables do
not change, the package is not rebuilt (unless explicitly tainted).
See https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html#dev-invalidating-shared-state-to-force-a-task-to-run for example.
--
Patrick Williams
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2020-07-03 5:20 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-02 19:58 Weird build dependency issue causing missing symbols Bills, Jason M
2020-07-02 21:33 ` Patrick Williams
2020-07-02 21:42 ` Patrick Williams
2020-07-02 22:52 ` Bills, Jason M
2020-07-02 23:59 ` Bills, Jason M
2020-07-03 0:18 ` Ren, Zhikui
2020-07-03 5:20 ` Patrick Williams [this message]
2020-07-06 20:58 ` Bills, Jason M
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=20200703052014.GF3922@heinlein \
--to=patrick@stwcx.xyz \
--cc=jason.m.bills@linux.intel.com \
--cc=openbmc@lists.ozlabs.org \
--cc=zhikui.ren@intel.com \
/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.