diff --git a/BaseTools/Source/Python/GenFds/FfsInfStatement.py b/BaseTools/Source/Python/GenFds/FfsInfStatement.py index 864e5be7d9..3c59f14aa8 100644 --- a/BaseTools/Source/Python/GenFds/FfsInfStatement.py +++ b/BaseTools/Source/Python/GenFds/FfsInfStatement.py @@ -2,7 +2,7 @@ # process FFS generation from INF statement # # Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.
-# Copyright (c) 2014 Hewlett-Packard Development Company, L.P.
+# Copyright (c) 2014-2016 Hewlett-Packard Development Company, L.P.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -555,35 +555,11 @@ class FfsInfStatement(FfsInfStatementClassObject): InfFileKey = os.path.normpath(mws.join(GenFdsGlobalVariable.WorkSpaceDir, self.InfFileName)) DscArchList = [] - PlatformDataBase = GenFdsGlobalVariable.WorkSpace.BuildObject[GenFdsGlobalVariable.ActivePlatform, 'IA32', GenFdsGlobalVariable.TargetName, GenFdsGlobalVariable.ToolChainTag] - if PlatformDataBase != None: - if InfFileKey in PlatformDataBase.Modules: - DscArchList.append ('IA32') - - PlatformDataBase = GenFdsGlobalVariable.WorkSpace.BuildObject[GenFdsGlobalVariable.ActivePlatform, 'X64', GenFdsGlobalVariable.TargetName, GenFdsGlobalVariable.ToolChainTag] - if PlatformDataBase != None: - if InfFileKey in PlatformDataBase.Modules: - DscArchList.append ('X64') - - PlatformDataBase = GenFdsGlobalVariable.WorkSpace.BuildObject[GenFdsGlobalVariable.ActivePlatform, 'IPF', GenFdsGlobalVariable.TargetName, GenFdsGlobalVariable.ToolChainTag] - if PlatformDataBase != None: - if InfFileKey in (PlatformDataBase.Modules): - DscArchList.append ('IPF') - - PlatformDataBase = GenFdsGlobalVariable.WorkSpace.BuildObject[GenFdsGlobalVariable.ActivePlatform, 'ARM', GenFdsGlobalVariable.TargetName, GenFdsGlobalVariable.ToolChainTag] - if PlatformDataBase != None: - if InfFileKey in (PlatformDataBase.Modules): - DscArchList.append ('ARM') - - PlatformDataBase = GenFdsGlobalVariable.WorkSpace.BuildObject[GenFdsGlobalVariable.ActivePlatform, 'EBC', GenFdsGlobalVariable.TargetName, GenFdsGlobalVariable.ToolChainTag] - if PlatformDataBase != None: - if InfFileKey in (PlatformDataBase.Modules): - DscArchList.append ('EBC') - - PlatformDataBase = GenFdsGlobalVariable.WorkSpace.BuildObject[GenFdsGlobalVariable.ActivePlatform, 'AARCH64', GenFdsGlobalVariable.TargetName, GenFdsGlobalVariable.ToolChainTag] - if PlatformDataBase != None: - if InfFileKey in (PlatformDataBase.Modules): - DscArchList.append ('AARCH64') + for Arch in GenFdsGlobalVariable.ArchList : + PlatformDataBase = GenFdsGlobalVariable.WorkSpace.BuildObject[GenFdsGlobalVariable.ActivePlatform, Arch, GenFdsGlobalVariable.TargetName, GenFdsGlobalVariable.ToolChainTag] + if PlatformDataBase != None: + if InfFileKey in PlatformDataBase.Modules: + DscArchList.append (Arch) return DscArchList diff --git a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py index b2c4d6e4da..34bc48a0d3 100644 --- a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py +++ b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py @@ -2,6 +2,7 @@ # This file is used to create a database used by build tool # # Copyright (c) 2008 - 2016, Intel Corporation. All rights reserved.
+# (C) Copyright 2016 Hewlett Packard Enterprise Development LP
# This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License # which accompanies this distribution. The full text of the license may be found at @@ -543,6 +544,13 @@ class DscBuildData(PlatformBuildClassObject): Macros["EDK_SOURCE"] = GlobalData.gEcpSource for Record in RecordList: DuplicatedFile = False + + # process only records COMMON and self.Arch + SectionArch = Record[3].upper() + if SectionArch != 'COMMON': + if SectionArch != self.Arch: + continue + ModuleFile = PathClass(NormPath(Record[0], Macros), GlobalData.gWorkspace, Arch=self._Arch) ModuleId = Record[5] LineNo = Record[6]