Reviewed-by: Liming Gao <liming....@intel.com> >-----Original Message----- >From: Liu, Zhiguang >Sent: Friday, November 01, 2019 2:27 PM >To: devel@edk2.groups.io >Cc: Feng, Bob C <bob.c.f...@intel.com>; Gao, Liming <liming....@intel.com> >Subject: [PATCH 1/2] BaseTools: Add map file parsing support for CLANG9 > >Cc: Bob Feng <bob.c.f...@intel.com> >Cc: Liming Gao <liming....@intel.com> > >Signed-off-by: Zhiguang Liu <zhiguang....@intel.com> >--- > BaseTools/Source/Python/Common/Misc.py | 9 ++++++--- > BaseTools/Source/Python/GenPatchPcdTable/GenPatchPcdTable.py | 9 >++++++--- > 2 files changed, 12 insertions(+), 6 deletions(-) > >diff --git a/BaseTools/Source/Python/Common/Misc.py >b/BaseTools/Source/Python/Common/Misc.py >index 714eb840ea..403715e6cc 100755 >--- a/BaseTools/Source/Python/Common/Misc.py >+++ b/BaseTools/Source/Python/Common/Misc.py >@@ -81,19 +81,22 @@ def GetVariableOffset(mapfilepath, efifilepath, >varnames): > > if len(lines) == 0: return None > firstline = lines[0].strip() >+ if re.match('^\s*Address\s*Size\s*Align\s*Out\s*In\s*Symbol\s*$', >firstline): >+ return _parseForXcodeAndClang9(lines, efifilepath, varnames) > if (firstline.startswith("Archive member included ") and > firstline.endswith(" file (symbol)")): > return _parseForGCC(lines, efifilepath, varnames) > if firstline.startswith("# Path:"): >- return _parseForXcode(lines, efifilepath, varnames) >+ return _parseForXcodeAndClang9(lines, efifilepath, varnames) > return _parseGeneral(lines, efifilepath, varnames) > >-def _parseForXcode(lines, efifilepath, varnames): >+def _parseForXcodeAndClang9(lines, efifilepath, varnames): > status = 0 > ret = [] > for line in lines: > line = line.strip() >- if status == 0 and line == "# Symbols:": >+ if status == 0 and >(re.match('^\s*Address\s*Size\s*Align\s*Out\s*In\s*Symbol\s*$', line) \ >+ or line == "# Symbols:"): > status = 1 > continue > if status == 1 and len(line) != 0: >diff --git >a/BaseTools/Source/Python/GenPatchPcdTable/GenPatchPcdTable.py >b/BaseTools/Source/Python/GenPatchPcdTable/GenPatchPcdTable.py >index 7d5e4fc34a..d962ab0add 100644 >--- a/BaseTools/Source/Python/GenPatchPcdTable/GenPatchPcdTable.py >+++ b/BaseTools/Source/Python/GenPatchPcdTable/GenPatchPcdTable.py >@@ -49,20 +49,23 @@ def parsePcdInfoFromMapFile(mapfilepath, >efifilepath): > > if len(lines) == 0: return None > firstline = lines[0].strip() >+ if re.match('^\s*Address\s*Size\s*Align\s*Out\s*In\s*Symbol\s*$', >firstline): >+ return _parseForXcodeAndClang9(lines, efifilepath) > if (firstline.startswith("Archive member included ") and > firstline.endswith(" file (symbol)")): > return _parseForGCC(lines, efifilepath) > if firstline.startswith("# Path:"): >- return _parseForXcode(lines, efifilepath) >+ return _parseForXcodeAndClang9(lines, efifilepath) > return _parseGeneral(lines, efifilepath) > >-def _parseForXcode(lines, efifilepath): >+def _parseForXcodeAndClang9(lines, efifilepath): > valuePattern = re.compile('^([\da-fA- >FxX]+)([\s\S]*)([_]*_gPcd_BinaryPatch_([\w]+))') > status = 0 > pcds = [] > for line in lines: > line = line.strip() >- if status == 0 and line == "# Symbols:": >+ if status == 0 and >(re.match('^\s*Address\s*Size\s*Align\s*Out\s*In\s*Symbol\s*$', line) \ >+ or line == "# Symbols:"): > status = 1 > continue > if status == 1 and len(line) != 0: >-- >2.16.2.windows.1
-=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#49899): https://edk2.groups.io/g/devel/message/49899 Mute This Topic: https://groups.io/mt/40403852/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-