Ard: I am not sure who remember the detail history. If no one knows it, I suggest to keep them as-is.
On alignment, do you suggest use ".text 0x1000 : ALIGN(0x1000) {"? Thanks Liming -----Original Message----- From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org] Sent: Tuesday, June 23, 2015 5:17 PM To: edk2-devel@lists.sourceforge.net Subject: Re: [edk2] [Patch 3/3] BaseTools: Added GCC ld script to support 4K alignment. 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 ------------------------------------------------------------------------------ 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