BaseTools: Fix the different token with the same PCD

If the different token with the same PCD names are used in the driver,
build can pass. If the different token with the same PCD name are used
in the different library, then the driver build will fail. The reason
is that the driver autogen.c is not generated correctly for the second
case. BaseTools should check the duplicated PCD name is the driver and
its linked libraries.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yunhua Feng <yunhuax.feng@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
Yunhua Feng 2018-07-20 15:51:39 +08:00 committed by Yonghong Zhu
parent bfa7eeb61d
commit 5b73e17fb1
1 changed files with 1 additions and 1 deletions

View File

@ -937,7 +937,7 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
if Info.IsLibrary: if Info.IsLibrary:
PcdList = Info.LibraryPcdList PcdList = Info.LibraryPcdList
else: else:
PcdList = Info.ModulePcdList PcdList = Info.ModulePcdList + Info.LibraryPcdList
PcdExCNameTest = 0 PcdExCNameTest = 0
for PcdModule in PcdList: for PcdModule in PcdList:
if PcdModule.Type in PCD_DYNAMIC_EX_TYPE_SET and Pcd.TokenCName == PcdModule.TokenCName: if PcdModule.Type in PCD_DYNAMIC_EX_TYPE_SET and Pcd.TokenCName == PcdModule.TokenCName: