Sync EDKII BaseTools to BaseTools project r1988

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10607 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qhuang8
2010-06-28 09:33:10 +00:00
parent 96dd57ee8d
commit 9053bc517e
41 changed files with 690 additions and 127 deletions

View File

@@ -21,6 +21,7 @@ import subprocess
from Ffs import Ffs
import os
from CommonDataClass.FdfClass import DataSectionClassObject
from Common.Misc import PeImageClass
import shutil
## generate data section
@@ -74,6 +75,14 @@ class DataSection (DataSectionClassObject):
(os.path.getmtime(MapFile) > os.path.getmtime(CopyMapFile)):
shutil.copyfile(MapFile, CopyMapFile)
#Get PE Section alignment when align is set to AUTO
if self.Alignment == 'Auto' and self.SecType in ('TE', 'PE32'):
ImageObj = PeImageClass (Filename)
if ImageObj.SectionAlignment < 0x400:
self.Alignment = str (ImageObj.SectionAlignment)
else:
self.Alignment = str (ImageObj.SectionAlignment / 0x400) + 'K'
NoStrip = True
if self.SecType in ('TE', 'PE32'):
if self.KeepReloc != None:

View File

@@ -2388,9 +2388,11 @@ class FdfParser:
FfsFileObj.CheckSum = True
if self.__GetAlignment():
FfsFileObj.Alignment = self.__Token
if self.__Token not in ("Auto", "8", "16", "32", "64", "128", "512", "1K", "4K", "32K" ,"64K"):
raise Warning("Incorrect alignment '%s'" % self.__Token, self.FileName, self.CurrentLineNumber)
#For FFS, Auto is default option same to ""
if not self.__Token == "Auto":
FfsFileObj.Alignment = self.__Token
## __GetAlignment() method
#