From d91b2da7fea2cc9e47232a2e49aac1c5ff832ef2 Mon Sep 17 00:00:00 2001 From: klu2 Date: Thu, 5 Apr 2007 08:18:50 +0000 Subject: Add more judgement. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2539 6f19259b-4bc3-4df7-8a09-765794883524 --- Tools/CCode/Source/FwImage/fwimage.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'Tools/CCode') diff --git a/Tools/CCode/Source/FwImage/fwimage.c b/Tools/CCode/Source/FwImage/fwimage.c index 11090952cd..97229ce09e 100644 --- a/Tools/CCode/Source/FwImage/fwimage.c +++ b/Tools/CCode/Source/FwImage/fwimage.c @@ -340,7 +340,9 @@ ScanSections( // Align the coff offset to meet with the alignment requirement of section // itself. // - CoffOffset = (CoffOffset + shdr->sh_addralign - 1) & ~(shdr->sh_addralign - 1); + if ((shdr->sh_addralign != 0) && (shdr->sh_addralign != 1)) { + CoffOffset = (CoffOffset + shdr->sh_addralign - 1) & ~(shdr->sh_addralign - 1); + } /* Relocate entry. */ if ((Ehdr->e_entry >= shdr->sh_addr) && @@ -364,8 +366,10 @@ ScanSections( // Align the coff offset to meet with the alignment requirement of section // itself. // - CoffOffset = (CoffOffset + shdr->sh_addralign - 1) & ~(shdr->sh_addralign - 1); - + if ((shdr->sh_addralign != 0) && (shdr->sh_addralign != 1)) { + CoffOffset = (CoffOffset + shdr->sh_addralign - 1) & ~(shdr->sh_addralign - 1); + } + CoffSectionsOffset[i] = CoffOffset; CoffOffset += shdr->sh_size; } -- cgit v1.2.3