- modSymbols[match.group(matchKeyGroupIndex)] = match.group(matchSymbolGroupIndex)\r
- reportLine = fdIn.readline()\r
- fdIn.close()\r
+ modSymbols[prefix + match.group(matchKeyGroupIndex)] = match.group(matchSymbolGroupIndex)\r
+\r
+ # Handle extra module patchable PCD variable in Linux map since it might have different format\r
+ # .data._gPcd_BinaryPatch_PcdVpdBaseAddress\r
+ # 0x0000000000003714 0x4 /tmp/ccmytayk.ltrans1.ltrans.o\r
+ handleNext = False\r
+ if matchSymbolGroupIndex == 1:\r
+ for reportLine in reportLines:\r
+ if handleNext:\r
+ handleNext = False\r
+ pcdName = match.group(1)\r
+ match = re.match("\s+(0x[0-9a-fA-F]{16})\s+", reportLine)\r
+ if match is not None:\r
+ modSymbols[prefix + pcdName] = match.group(1)\r
+ else:\r
+ match = re.match("^\s\.data\.(_gPcd_BinaryPatch[_a-zA-Z0-9\-]+)", reportLine)\r
+ if match is not None:\r
+ handleNext = True\r
+ continue\r