diff --git a/BaseTools/ImageTool/ElfScan.c b/BaseTools/ImageTool/ElfScan.c index 59ff2d1143..b046782cc1 100644 --- a/BaseTools/ImageTool/ElfScan.c +++ b/BaseTools/ImageTool/ElfScan.c @@ -634,7 +634,11 @@ CreateIntermediate ( ++NumRelocs; } } else if (mEhdr->e_machine == EM_ARM) { - + if ((ELF_R_TYPE(Rel->r_info) == R_ARM_THM_MOVW_ABS_NC) + || (ELF_R_TYPE(Rel->r_info) == R_ARM_RABS32) + || (ELF_R_TYPE(Rel->r_info) == R_ARM_ABS32)) { + ++NumRelocs; + } } #endif } diff --git a/BaseTools/ImageTool/PeEmit.c b/BaseTools/ImageTool/PeEmit.c index 9232fea620..1f6612c8d5 100644 --- a/BaseTools/ImageTool/PeEmit.c +++ b/BaseTools/ImageTool/PeEmit.c @@ -25,7 +25,7 @@ typedef struct { uint32_t RelocTableSize; uint32_t HiiTableSize; uint32_t DebugTableSize; - uint16_t FileAlignment; + uint32_t FileAlignment; } image_tool_pe_emit_context_t; static @@ -887,7 +887,7 @@ ToolImageEmitPe ( memset (&Context, 0, sizeof (Context)); Context.Image = Image; - Context.FileAlignment = (uint16_t)Image->SegmentInfo.SegmentAlignment; + Context.FileAlignment = Image->SegmentInfo.SegmentAlignment; Result = EmitPeGetHeaderSizes (Image, &Context.HdrInfo); if (!Result) {