This series implements 4 KB section alignment for ARM, which is required
for supporting the Properties Table memory protection feature on this
architecture.

Patch #1 is a simple cleanup from the copy/paste that created Elf64Convert.c

Patch #2 changes the PE/COFF .data alignment to adhere to the global section
and file alignment. Not doing so means the resulting binary violates the PE/COFF
spec, but special care is needed to correctly handle ARM RVCT generated ELF
binaries which rely on the misalignment of some sections being preserved.

NOTE: this patch adds some special handling to the ELF input sections, but only
to a case that was formerly flagged as an error (i.e., section is misaligned wrt
its own alignment). This means the risk for regressions is minimal, except for
RVCT users.

Patch #3 switches to the new GCC linker scripts for ARM

Patch #4 sets the 4 KB alignment linker command line option to ensure .text and
.data can be represented by separate memory regions, allowing their permissions
to be set to R-X and RW- respectively.

Changes since v2:
- removed one additional instance of the RVCT check in #1
- added Michael's Tested-by to all patches except #1 (since he tested 32-bit ARM
  only)
- fixed the RVCT case in patch #2 (untested on RVCT)

Changes since v1:
- rebased onto latest GCC linker script changes
- added Laszlo's ack to #4

Ard Biesheuvel (4):
  BaseTools/GenFw: remove ARM and RVCT references from ELF64 code
  BaseTools/GenFw: make ARM's .data adhere to PE/COFF section alignment
  BaseTools/ARM: move to unified GCC linker script
  ArmVirtPkg: use 4 KB section alignment for ARM DXE_RUNTIME modules

 ArmVirtPkg/ArmVirt.dsc.inc              |  3 +-
 BaseTools/Conf/tools_def.template       | 12 +++-
 BaseTools/Source/C/GenFw/Elf32Convert.c | 67 +++++++++++++-------
 BaseTools/Source/C/GenFw/Elf64Convert.c | 23 +------
 4 files changed, 56 insertions(+), 49 deletions(-)

-- 
1.9.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to