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]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to