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>
61 lines
1.1 KiB
Plaintext
61 lines
1.1 KiB
Plaintext
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
|
|
OUTPUT_ARCH(arm)
|
|
ENTRY(_start)
|
|
SECTIONS
|
|
{
|
|
.text 0x0 : {
|
|
_text = .;
|
|
*(.text.head)
|
|
*(.text)
|
|
*(.text.*)
|
|
*(.gnu.linkonce.t.*)
|
|
*(.srodata)
|
|
*(.rodata*)
|
|
. = ALIGN(16);
|
|
}
|
|
_etext = .;
|
|
_text_size = . - _text;
|
|
.dynamic : { *(.dynamic) }
|
|
.data :
|
|
{
|
|
_data = .;
|
|
*(.sdata)
|
|
*(.data)
|
|
*(.data1)
|
|
*(.data)
|
|
*(.got.plt)
|
|
*(.got)
|
|
|
|
/* the EFI loader doesn't seem to like a .bss section, so we stick
|
|
it all into .data: */
|
|
. = ALIGN(16);
|
|
_bss = .;
|
|
*(.sbss)
|
|
*(.scommon)
|
|
*(.dynbss)
|
|
*(.bss)
|
|
*(COMMON)
|
|
. = ALIGN(16);
|
|
_bss_end = .;
|
|
}
|
|
.rel.dyn : { *(.rel.dyn) }
|
|
.rel.plt : { *(.rel.plt) }
|
|
.rel.got : { *(.rel.got) }
|
|
.rel.data : { *(.rel.data) *(.rel.data*) }
|
|
_edata = .;
|
|
_data_size = . - _etext;
|
|
|
|
. = ALIGN(4096);
|
|
.dynsym : { *(.dynsym) }
|
|
. = ALIGN(4096);
|
|
.dynstr : { *(.dynstr) }
|
|
. = ALIGN(4096);
|
|
/DISCARD/ :
|
|
{
|
|
*(.rel.reloc)
|
|
*(.eh_frame)
|
|
*(.note.GNU-stack)
|
|
}
|
|
.comment 0 : { *(.comment) }
|
|
}
|