On 23 June 2015 at 10:19, Yingke Liu <yingke.d....@intel.com> wrote: > This script can be used to generate 4K aligned ELF file. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Yingke Liu <yingke.d....@intel.com> > --- > BaseTools/Scripts/gcc-4K-align-ld-script | 44 > ++++++++++++++++++++++++++++++++ > 1 file changed, 44 insertions(+) > create mode 100644 BaseTools/Scripts/gcc-4K-align-ld-script > > diff --git a/BaseTools/Scripts/gcc-4K-align-ld-script > b/BaseTools/Scripts/gcc-4K-align-ld-script > new file mode 100644 > index 0000000..1338433 > --- /dev/null > +++ b/BaseTools/Scripts/gcc-4K-align-ld-script > @@ -0,0 +1,44 @@ > +/* OUTPUT_FORMAT(efi-bsdrv-x86_64) */ > +SECTIONS > +{ > + /* . = 0 + SIZEOF_HEADERS; */ > + . = 0x280; > + .text ALIGN(0x1000) :
This puts the .text section at a fixed offset of 0x1000, but doesn't annotate the .text section as being 4K aligned. You should probably use .text : ALIGN(0x1000) here instead. Same below. However, can you explain why the text section needs the hole here? Isn't it enough to simply align .data ? > + { > + *(.text .stub .text.* .gnu.linkonce.t.*) > + . = ALIGN(0x20); > + } =0x90909090 > + .data ALIGN(0x1000) : > + { > + *( > + .rodata .rodata.* .gnu.linkonce.r.* I realize that this was in the original file that you copied, but could anyone comment on the reason .rodata was put into the .data section? > + .data .data.* .gnu.linkonce.d.* > + .bss .bss.* > + *COM* > + ) > + . = ALIGN(0x20); > + } > + .eh_frame ALIGN(0x1000) : > + { > + KEEP (*(.eh_frame)) > + } > + .got ALIGN(0x1000) : > + { > + *(.got .got.*) > + . = ALIGN(0x20); > + } > + .rela ALIGN(0x1000) : > + { > + *(.rela .rela.*) > + } > + /DISCARD/ : { > + *(.note.GNU-stack) *(.gnu_debuglink) > + *(.interp) > + *(.dynsym) > + *(.dynstr) > + *(.dynamic) > + *(.hash) > + *(.comment) > + } > +} > + > -- > 1.9.5.msysgit.0 > > > ------------------------------------------------------------------------------ > Monitor 25 network devices or servers for free with OpManager! > OpManager is web-based network management software that monitors > network devices and physical & virtual servers, alerts via email & sms > for fault. Monitor 25 devices for free with no restriction. Download now > http://ad.doubleclick.net/ddm/clk/292181274;119417398;o > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/edk2-devel ------------------------------------------------------------------------------ Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical & virtual servers, alerts via email & sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel