mirror of https://github.com/acidanthera/audk.git
BaseTools: Add map file parsing support for CLANG9
Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> Signed-off-by: Zhiguang Liu <zhiguang.liu@intel.com>
This commit is contained in:
parent
601a18bf08
commit
5cef92771f
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue