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 <ler...@redhat.com>
> Cc: devel@edk2.groups.io; Kinney, Michael D <michael.d.kin...@intel.com>; Ard 
> Biesheuvel <ard.biesheu...@linaro.org>; Wang, Jian J
> <jian.j.w...@intel.com>; Ye, Ting <ting...@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
> 
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#44254): https://edk2.groups.io/g/devel/message/44254
Mute This Topic: https://groups.io/mt/32529014/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to