Bob, Sorry I was confused by the commit comment `inconsistent path case`. So this was only a bug on case insensitive file systems?
I’m paranoid as macOS support case and case insensitive file systems and we have had a lot of strange bugs in the past. Thanks, Andrew Fish > On Sep 23, 2020, at 7:59 AM, Bob Feng <bob.c.f...@intel.com> wrote: > > Yes. we did test on Windows and Linux. > > From the https://docs.python.org/3/library/os.path.html > <https://docs.python.org/3/library/os.path.html> > os.path.normcase(path) > Normalize the case of a pathname. On Windows, convert all characters in > the pathname to lowercase, and also convert forward slashes to backward > slashes. On other operating systems, return the path unchanged. > > Thanks, > Bob > -----Original Message----- > From: Andrew Fish <af...@apple.com <mailto:af...@apple.com>> > Sent: Wednesday, September 23, 2020 10:24 PM > To: devel@edk2.groups.io <mailto:devel@edk2.groups.io>; Feng, Bob C > <bob.c.f...@intel.com <mailto:bob.c.f...@intel.com>> > Cc: Liang, MingyueX <mingyuex.li...@intel.com > <mailto:mingyuex.li...@intel.com>>; Liming Gao <gaolim...@byosoft.com.cn > <mailto:gaolim...@byosoft.com.cn>>; Chen, Christine <yuwei.c...@intel.com > <mailto:yuwei.c...@intel.com>> > Subject: Re: [edk2-devel] [PATCH] BaseTools: Normalize case of pathname when > evaluating Macros. > > Does this work on case sensitive file systems? >> On Sep 23, 2020, at 3:58 AM, Bob Feng <bob.c.f...@intel.com >> <mailto:bob.c.f...@intel.com>> wrote: >> >> From: Mingyue Liang <mingyuex.li...@intel.com >> <mailto:mingyuex.li...@intel.com>> >> >> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2880 >> <https://bugzilla.tianocore.org/show_bug.cgi?id=2880> >> >> Currently, When doing the Incremental build, the directory macros >> extended to absolute path in output Makefile, which is inconsistent >> with the output of Clean build. >> >> When we do macro replacement, we can't replace macro due to >> inconsistent path case, which results in inconsistent display of >> incremental build and clean build in makefile.Therefore, the path is >> converted to achieve the correct macro replacement. >> >> Signed-off-by: Mingyue Liang <mingyuex.li...@intel.com >> <mailto:mingyuex.li...@intel.com>> >> Cc: Bob Feng <bob.c.f...@intel.com <mailto:bob.c.f...@intel.com>> >> Cc: Liming Gao <gaolim...@byosoft.com.cn <mailto:gaolim...@byosoft.com.cn>> >> Cc: Yuwei Chen <yuwei.c...@intel.com <mailto:yuwei.c...@intel.com>> >> --- >> BaseTools/Source/Python/AutoGen/GenMake.py | 6 ++++-- >> 1 file changed, 4 insertions(+), 2 deletions(-) >> >> diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py >> b/BaseTools/Source/Python/AutoGen/GenMake.py >> index 0314d0ea34..b04d3f5436 100755 >> --- a/BaseTools/Source/Python/AutoGen/GenMake.py >> +++ b/BaseTools/Source/Python/AutoGen/GenMake.py >> @@ -786,8 +786,10 @@ cleanlib: >> >> def ReplaceMacro(self, str): >> for Macro in self.MacroList: >> - if self._AutoGenObject.Macros[Macro] and >> self._AutoGenObject.Macros[Macro] in str: >> - str = str.replace(self._AutoGenObject.Macros[Macro], '$(' + >> Macro + ')') >> + if self._AutoGenObject.Macros[Macro] and >> os.path.normcase(self._AutoGenObject.Macros[Macro]) in os.path.normcase(str): >> + replace_dir = >> str[os.path.normcase(str).index(os.path.normcase(self._AutoGenObject.Macros[Macro])): >> os.path.normcase(str).index( >> + os.path.normcase(self._AutoGenObject.Macros[Macro])) + >> len(self._AutoGenObject.Macros[Macro])] >> + str = str.replace(replace_dir, '$(' + Macro + ')') >> return str >> >> def CommandExceedLimit(self): >> -- >> 2.28.0.windows.1 >> >> >> >> >> >> > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#65535): https://edk2.groups.io/g/devel/message/65535 Mute This Topic: https://groups.io/mt/77032381/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-