11a459ba96
all of our linker scripts: _text _etext _text_size _data _edata _data_size There are various things that are slightly different (positions of .rela*, .dynamic, and similar in relation to .data), but _text and _data are now always at the beginning of their respective sections with regard to how a debuger would reference the debug info, and _etext and _edata are now always extant and guaranteed to be after any of the respective kind of data the debugger would look for in that section. This also adds an application example of how it might be used, and a makefile target for %.efi.debug which will generate a separate debuginfo file for that example. This also enables debugging by default (i.e. -g is in CFLAGS) and adds .note.gnu.build-id sections to our .so files (i.e. --build-id=sha1 is in LDFLAGS). Signed-off-by: Peter Jones <pjones@redhat.com> Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
83 lines
1.4 KiB
Plaintext
83 lines
1.4 KiB
Plaintext
OUTPUT_FORMAT("elf32-i386-freebsd", "elf32-i386-freebsd", "elf32-i386-freebsd")
|
|
OUTPUT_ARCH(i386)
|
|
ENTRY(_start)
|
|
SECTIONS
|
|
{
|
|
. = 0;
|
|
ImageBase = .;
|
|
.hash : { *(.hash) } /* this MUST come first! */
|
|
. = ALIGN(4096);
|
|
.text :
|
|
{
|
|
_text = .;
|
|
*(.text)
|
|
*(.text.*)
|
|
*(.gnu.linkonce.t.*)
|
|
. = ALIGN(16);
|
|
}
|
|
_etext = .;
|
|
_text_size = . - _text;
|
|
. = ALIGN(4096);
|
|
.sdata :
|
|
{
|
|
_data = .;
|
|
*(.got.plt)
|
|
*(.got)
|
|
*(.srodata)
|
|
*(.sdata)
|
|
*(.sbss)
|
|
*(.scommon)
|
|
}
|
|
. = ALIGN(4096);
|
|
.data :
|
|
{
|
|
*(.rodata*)
|
|
*(.data)
|
|
*(.data1)
|
|
*(.data.*)
|
|
*(.sdata)
|
|
*(.got.plt)
|
|
*(.got)
|
|
/* the EFI loader doesn't seem to like a .bss section, so we stick
|
|
it all into .data: */
|
|
*(.sbss)
|
|
*(.scommon)
|
|
*(.dynbss)
|
|
*(.bss)
|
|
*(COMMON)
|
|
}
|
|
. = ALIGN(4096);
|
|
.dynamic : { *(.dynamic) }
|
|
. = ALIGN(4096);
|
|
.rel :
|
|
{
|
|
*(.rel.data)
|
|
*(.rel.data.*)
|
|
*(.rel.got)
|
|
*(.rel.stab)
|
|
*(.data.rel.ro.local)
|
|
*(.data.rel.local)
|
|
*(.data.rel.ro)
|
|
*(.data.rel*)
|
|
}
|
|
_edata = .;
|
|
_data_size = . - _etext;
|
|
. = ALIGN(4096);
|
|
.reloc : /* This is the PECOFF .reloc section! */
|
|
{
|
|
*(.reloc)
|
|
}
|
|
. = ALIGN(4096);
|
|
.dynsym : { *(.dynsym) }
|
|
. = ALIGN(4096);
|
|
.dynstr : { *(.dynstr) }
|
|
. = ALIGN(4096);
|
|
/DISCARD/ :
|
|
{
|
|
*(.rel.reloc)
|
|
*(.eh_frame)
|
|
*(.note.GNU-stack)
|
|
}
|
|
.comment 0 : { *(.comment) }
|
|
}
|