summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
672601c)
The standalone MM core is executed in place, and resides in a
separate execution context which may be space constrained.
Since code and data may be mapped with different attributes for
security reasons, the PE/COFF binary could have a section
alignment of 4 KB.
This means that any relocation data is not only useless, but it
will also take up 4 KB of valuable space.
So add support for the RELOCS_STRIPPED attribute on FFS files of
this type, so that we can get rid of the .reloc section altogether.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
StringData = FfsInf.__ExtendMacro__(self.StringData)\r
ModuleNameStr = FfsInf.__ExtendMacro__('$(MODULE_NAME)')\r
NoStrip = True\r
StringData = FfsInf.__ExtendMacro__(self.StringData)\r
ModuleNameStr = FfsInf.__ExtendMacro__('$(MODULE_NAME)')\r
NoStrip = True\r
- if FfsInf.ModuleType in (SUP_MODULE_SEC, SUP_MODULE_PEI_CORE, SUP_MODULE_PEIM) and SectionType in (BINARY_FILE_TYPE_TE, BINARY_FILE_TYPE_PE32):\r
+ if FfsInf.ModuleType in (SUP_MODULE_SEC, SUP_MODULE_PEI_CORE, SUP_MODULE_PEIM, SUP_MODULE_MM_CORE_STANDALONE) and SectionType in (BINARY_FILE_TYPE_TE, BINARY_FILE_TYPE_PE32):\r
if FfsInf.KeepReloc is not None:\r
NoStrip = FfsInf.KeepReloc\r
elif FfsInf.KeepRelocFromRule is not None:\r
if FfsInf.KeepReloc is not None:\r
NoStrip = FfsInf.KeepReloc\r
elif FfsInf.KeepRelocFromRule is not None:\r
#\r
@staticmethod\r
def _FileCouldHaveRelocFlag (FileType):\r
#\r
@staticmethod\r
def _FileCouldHaveRelocFlag (FileType):\r
- if FileType in {SUP_MODULE_SEC, SUP_MODULE_PEI_CORE, SUP_MODULE_PEIM, 'PEI_DXE_COMBO'}:\r
+ if FileType in {SUP_MODULE_SEC, SUP_MODULE_PEI_CORE, SUP_MODULE_PEIM, SUP_MODULE_MM_CORE_STANDALONE, 'PEI_DXE_COMBO'}:\r
return True\r
else:\r
return False\r
return True\r
else:\r
return False\r
# @retval string File name of the generated section file\r
#\r
def __GenComplexFileSection__(self, Rule, FvChildAddr, FvParentAddr, IsMakefile = False):\r
# @retval string File name of the generated section file\r
#\r
def __GenComplexFileSection__(self, Rule, FvChildAddr, FvParentAddr, IsMakefile = False):\r
- if self.ModuleType in (SUP_MODULE_SEC, SUP_MODULE_PEI_CORE, SUP_MODULE_PEIM):\r
+ if self.ModuleType in (SUP_MODULE_SEC, SUP_MODULE_PEI_CORE, SUP_MODULE_PEIM, SUP_MODULE_MM_CORE_STANDALONE):\r
if Rule.KeepReloc is not None:\r
self.KeepRelocFromRule = Rule.KeepReloc\r
SectFiles = []\r
if Rule.KeepReloc is not None:\r
self.KeepRelocFromRule = Rule.KeepReloc\r
SectFiles = []\r