From: "Liming Gao" <liming.gao@intel.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
"leif.lindholm@linaro.org" <leif.lindholm@linaro.org>,
Laszlo Ersek <lersek@redhat.com>
Cc: "Kinney, Michael D" <michael.d.kinney@intel.com>,
Ard Biesheuvel <ard.biesheuvel@linaro.org>,
"Wang, Jian J" <jian.j.wang@intel.com>,
"Ye, Ting" <ting.ye@intel.com>
Subject: Re: [edk2-devel] [PATCH 0/4] Arm, ArmPlatform, Crypto, Embedded: list internal headers in [Sources]
Date: Tue, 23 Jul 2019 13:02:42 +0000 [thread overview]
Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E4B11C4@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <20190723121940.GH11541@bivouac.eciton.net>
Leif:
> -----Original Message-----
> From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of Leif Lindholm
> Sent: Tuesday, July 23, 2019 8:20 PM
> To: Laszlo Ersek <lersek@redhat.com>
> Cc: devel@edk2.groups.io; Kinney, Michael D <michael.d.kinney@intel.com>; Ard Biesheuvel <ard.biesheuvel@linaro.org>; Wang, Jian J
> <jian.j.wang@intel.com>; Ye, Ting <ting.ye@intel.com>
> Subject: Re: [edk2-devel] [PATCH 0/4] Arm, ArmPlatform, Crypto, Embedded: list internal headers in [Sources]
>
> On Tue, Jul 23, 2019 at 01:54:54PM +0200, Laszlo Ersek wrote:
> > >> I wasn't annoyed at the feature itself -- if it helps developers catch
> > >> unlisted headers as soon as incomplete INF files are introduced, then
> > >> it's not a bad feature IMO.
> > >
> > > I agree that the optional nature of whether to list local .h files or
> > > not in the .inf was suboptimal.
> >
> > Hmm, has that ever been officially optional?
> >
> > (The INF spec chapter at
> > <https://edk2-docs.gitbooks.io/edk-ii-inf-specification/content/2_inf_overview/25_[sources]_section.html>
> > doesn't seem to mention header files at all. Thus, I can imagine both
> > "mandatory to list headers" by omission, and "optional to list headers"
> > by omission...)
>
> Yeah, indeed.
>
> > > I am just not pleased with the issue
> > > bringing this to the fore is caused by the new caching feature using a
> > > different mechanism for tracking header file dependencies than the
> > > primary build process.
> >
> > Ugh... that's a lot of statements compressed into a single sentence. Can
> > you please break it down for me? (Yes, I remember the mailing list
> > reference you posted earlier, that discussion was too divergent for me.)
>
> The inclusion of .h files in .inf is not necessary for determining
> build-time dependencies on the Makefile level.
Right. In fact, build tool will parse source file to find their dependent header files,
and list those header files as the dependency in Makefile.
>
> Thus, the warnings come out of a different and unrelated level of the
> build system, related to the recent build cache features. Which means
> we're checking header file build dependencies through two different
> mechanisms at two different points of the build.
This is related to build feature --hash. When --hash option is enabled, build will calculate
the hash value of source files specified in INF file. If hash value is not changed, build tool
will not parse source files, and not regenerate Makefile again. So, --hash option
is the incremental way in the build parse phase. If some header files are not
specified in INF file, it will cause hash value inaccurate. Then, Makefile may not
be generated to match the real source code, and cause the incremental build failure.
So, the missing header files in INF file may bring the incremental build issue when --hash option.
If you don't enable --hash option, there is no problem even if the missing header files exist.
Thanks
Liming
>
> Or I have fundamentally misunderstood what is going on. Which is also
> possible. In which case we're maintaining our own header file
> dependency tracking infrastructure, despite us in the end relying on
> generating Makefiles. Which also feels less than ideal.
>
> /
> Leif
>
>
next prev parent reply other threads:[~2019-07-23 13:02 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-19 16:43 [PATCH 0/4] Arm, ArmPlatform, Crypto, Embedded: list internal headers in [Sources] Laszlo Ersek
2019-07-19 16:43 ` [PATCH 1/4] ArmPkg: list module-internal header files in INF [Sources] Laszlo Ersek
2019-07-19 16:43 ` [PATCH 2/4] ArmPlatformPkg: " Laszlo Ersek
2019-07-19 17:13 ` [edk2-devel] " Philippe Mathieu-Daudé
2019-07-19 16:43 ` [PATCH 3/4] CryptoPkg/BaseCryptLib: " Laszlo Ersek
2019-07-19 17:09 ` [edk2-devel] " Philippe Mathieu-Daudé
2019-07-22 5:48 ` Wang, Jian J
2019-07-19 16:43 ` [PATCH 4/4] EmbeddedPkg: " Laszlo Ersek
2019-07-19 17:08 ` [edk2-devel] " Philippe Mathieu-Daudé
2019-07-22 10:37 ` [PATCH 0/4] Arm, ArmPlatform, Crypto, Embedded: list internal headers in [Sources] Leif Lindholm
2019-07-22 17:32 ` Laszlo Ersek
2019-07-22 18:47 ` [edk2-devel] " Michael D Kinney
2019-07-22 22:56 ` Laszlo Ersek
2019-07-23 9:06 ` Leif Lindholm
2019-07-23 11:54 ` Laszlo Ersek
2019-07-23 12:19 ` Leif Lindholm
2019-07-23 13:02 ` Liming Gao [this message]
2019-07-23 13:25 ` Leif Lindholm
2019-07-23 17:23 ` Laszlo Ersek
2019-07-24 15:17 ` Liming Gao
2019-07-24 17:00 ` Leif Lindholm
2019-07-25 19:27 ` Laszlo Ersek
2019-07-23 17:02 ` Laszlo Ersek
2019-07-22 22:30 ` Laszlo Ersek
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-list 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=4A89E2EF3DFEDB4C8BFDE51014F606A14E4B11C4@SHSMSX104.ccr.corp.intel.com \
--to=devel@edk2.groups.io \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox