internal void BuildRelocSection()
{
// do entry point reloc
uint relocPage = entryPointReloc / Section.relocPageSize;
uint pageOff = relocPage * Section.relocPageSize;
reloc.Write(text.RVA() + pageOff);
reloc.Write(12);
uint fixUpOff = entryPointReloc - pageOff;
reloc.Write((ushort)((0x3 << 12) | fixUpOff));
reloc.Write((ushort)0);
// text.DoRelocs(reloc);
if (sdata != null) sdata.DoRelocs(reloc);
if (rsrc != null) rsrc.DoRelocs(reloc);
relocTide = (uint)reloc.Seek(0,SeekOrigin.Current);
//reloc.Write((uint)0);
if (Diag.DiagOn) Console.WriteLine("relocTide = " + relocTide);
relocPadding = NumToAlign(relocTide,verInfo.fileAlign);
relocSize = relocTide + relocPadding;
imageSize = relocRVA + FileImage.SectionAlignment;
initDataSize += relocSize;
}