Weird build dependency issue causing missing symbols
Ren, Zhikui
zhikui.ren at intel.com
Fri Jul 3 10:18:34 AEST 2020
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 at lists.ozlabs.org> On Behalf Of Bills, Jason M
Sent: Thursday, July 2, 2020 5:00 PM
To: openbmc at 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?
More information about the openbmc
mailing list