From 030529de202b442a81758fd132ffd260a87230f1 Mon Sep 17 00:00:00 2001 From: vanjeff Date: Wed, 12 Aug 2009 06:53:41 +0000 Subject: build tools will break if PEIM or DXE driver has no valid [Depex] section. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9057 6f19259b-4bc3-4df7-8a09-765794883524 --- BaseTools/Source/Python/AutoGen/AutoGen.py | 6 +++++- BaseTools/Source/Python/Workspace/WorkspaceDatabase.py | 10 +++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) (limited to 'BaseTools') diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/Python/AutoGen/AutoGen.py index 86f33fbd86..028c4e34e3 100644 --- a/BaseTools/Source/Python/AutoGen/AutoGen.py +++ b/BaseTools/Source/Python/AutoGen/AutoGen.py @@ -1,7 +1,7 @@ ## @file # Generate AutoGen.h, AutoGen.c and *.depex files # -# Copyright (c) 2007, Intel Corporation +# Copyright (c) 2007 - 2009, Intel Corporation # All rights reserved. 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 @@ -1814,6 +1814,10 @@ class ModuleAutoGen(AutoGen): else: IgoredAutoGenList.append(str(File)) + # Skip the following code for EDK I inf + if self.AutoGenVersion < 0x00010005: + return + for ModuleType in self.DepexList: if len(self.DepexList[ModuleType]) == 0: continue diff --git a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py index 8f0056e197..df0fa81ebb 100644 --- a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py +++ b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py @@ -1,7 +1,7 @@ ## @file # This file is used to create a database used by build tool # -# Copyright (c) 2008, Intel Corporation +# Copyright (c) 2008 - 2009, Intel Corporation # All rights reserved. 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 @@ -1777,6 +1777,14 @@ class InfBuildData(ModuleBuildClassObject): if self._Depex == None: self._Depex = tdict(False, 2) RecordList = self._RawData[MODEL_EFI_DEPEX, self._Arch] + + # PEIM and DXE drivers must have a valid [Depex] section + if len(self.LibraryClass) == 0 and len(RecordList) == 0: + if self.ModuleType == 'DXE_DRIVER' or self.ModuleType == 'PEIM' or self.ModuleType == 'DXE_SMM_DRIVER' or \ + self.ModuleType == 'DXE_SAL_DRIVER' or self.ModuleType == 'DXE_RUNTIME_DRIVER': + EdkLogger.error('build', RESOURCE_NOT_AVAILABLE, "No [Depex] section or no valid expression in [Depex] section for [%s] module" \ + % self.ModuleType, File=self.MetaFile) + Depex = {} for Record in RecordList: Record = ReplaceMacros(Record, GlobalData.gEdkGlobal, False) -- cgit v1.2.3