From 8e421ef0e3200e431adefaa935fed1f1df9b1776 Mon Sep 17 00:00:00 2001 From: Mikhail Krichanov Date: Wed, 1 Feb 2023 15:31:34 +0300 Subject: [PATCH] BaseTools: Fixed sh_addralign field in ELF files, removed useless checks in ImageTool. --- BaseTools/ImageTool/ElfScan.c | 12 ------------ BaseTools/Scripts/Base.lds | 2 +- 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/BaseTools/ImageTool/ElfScan.c b/BaseTools/ImageTool/ElfScan.c index b7e30679a6..30f39b2927 100644 --- a/BaseTools/ImageTool/ElfScan.c +++ b/BaseTools/ImageTool/ElfScan.c @@ -620,18 +620,6 @@ CreateIntermediate ( for (Index = 0; Index < mEhdr->e_shnum; ++Index) { Shdr = GetShdrByIndex (Index); - if ((IsTextShdr (Shdr)) || (IsDataShdr (Shdr)) || (IsHiiRsrcShdr (Shdr))) { - if ((Shdr->sh_addralign == 0) || (Shdr->sh_addralign == 1)) { - fprintf (stderr, "ImageTool: Alignment field is invalid\n"); - return RETURN_VOLUME_CORRUPTED; - } - - if (!IS_ALIGNED(Shdr->sh_addr, Shdr->sh_addralign)) { - fprintf (stderr, "ImageTool: Section address not aligned to its own alignment\n"); - return RETURN_VOLUME_CORRUPTED; - } - } - if ((IsTextShdr (Shdr)) || (IsDataShdr (Shdr))) { ++mImageInfo.SegmentInfo.NumSegments; } diff --git a/BaseTools/Scripts/Base.lds b/BaseTools/Scripts/Base.lds index bf5014770d..e30801f85e 100644 --- a/BaseTools/Scripts/Base.lds +++ b/BaseTools/Scripts/Base.lds @@ -13,7 +13,7 @@ SECTIONS { - .text CONSTANT(MAXPAGESIZE) : { + .text CONSTANT(MAXPAGESIZE) : ALIGN(CONSTANT(MAXPAGESIZE)) { *(.text .text.* .stub .gnu.linkonce.t.*) }