freebsd-dev/sys/boot/efi/libefi/arch/ia64/ldscript.ia64
Peter Wemm a6d81d83a2 Fix self hosted loader building. When you use a self configured gcc, it
detects and uses the gas section merge support.  As a result, a whole bunch
of new sections arrive, including .rodata.str1.8, which was not included
in our custom ldscript.ia64.  The result was a loader binary that EFI
rejected.

While here, collect the loader shell commands linker set and include it
in the data area rather than having its own section.

/boot/loader.efi was the last holdout for having a 100% self built ia64
system.
2002-04-06 03:39:22 +00:00

81 lines
1.4 KiB
Plaintext

/* $FreeBSD$ */
OUTPUT_FORMAT("elf64-ia64-little", "elf64-ia64-little", "elf64-ia64-little")
OUTPUT_ARCH(ia64)
ENTRY(_start_plabel)
SECTIONS
{
/* Read-only sections, merged into text segment: */
. = 0;
ImageBase = .;
. += 4096;
.text :
{
*(.text)
*(.stub)
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
*(.gnu.linkonce.t*)
*(.plt)
}
. = ALIGN(4096);
.hash : { *(.hash) }
. = ALIGN(4096);
.data :
{
*(.rodata*)
__start_set_Xcommand_set = .;
*(set_Xcommand_set)
__stop_set_Xcommand_set = .;
*(.ctors)
*(.data)
*(.data1)
*(.gnu.linkonce.d*)
*(.plabel)
*(.IA_64.unwind)
*(.IA_64.unwind_info)
*(.bss)
*(.dynbss)
*(COMMON)
}
. = ALIGN(4096);
__gp = .;
.sdata :
{
*(.got.plt)
*(.got)
*(.IA_64.pltoff)
*(.sdata)
*(.sbss)
*(.scommon)
}
. = ALIGN(4096);
.dynamic : { *(.dynamic) }
. = ALIGN(4096);
.rela :
{
*(.rela.text)
*(.rela.gnu.linkonce.t*)
*(.rela.set.*)
*(.rela.sdata)
*(.rela.data)
*(.rela.gnu.linkonce.d*)
*(.rela.got)
*(.rela.stab)
*(.rela.ctors)
*(.relaset_*)
*(.rela.IA_64.pltoff)
}
. = ALIGN(4096);
.reloc : { *(.reloc) }
. = ALIGN(4096);
.dynsym : { *(.dynsym) }
. = ALIGN(4096);
.dynstr : { *(.dynstr) }
.ignored :
{
*(.rela.plabel)
*(.rela.reloc)
}
}