uboot/arch/x86/lib/elf_ia32_efi.lds
<<
>>
Prefs
   1/*
   2 * U-Boot EFI linker script
   3 *
   4 * SPDX-License-Identifier:     BSD-2-Clause
   5 *
   6 * Modified from usr/lib32/elf_ia32_efi.lds in gnu-efi
   7 */
   8
   9OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
  10OUTPUT_ARCH(i386)
  11ENTRY(_start)
  12SECTIONS
  13{
  14        image_base = .;
  15        .hash : { *(.hash) }    /* this MUST come first, EFI expects it */
  16        . = ALIGN(4096);
  17        .text :
  18        {
  19                *(.text)
  20                *(.text.*)
  21                *(.gnu.linkonce.t.*)
  22        }
  23        . = ALIGN(4096);
  24        .sdata :
  25        {
  26                *(.got.plt)
  27                *(.got)
  28                *(.srodata)
  29                *(.sdata)
  30                *(.sbss)
  31                *(.scommon)
  32        }
  33        . = ALIGN(4096);
  34        .data :
  35        {
  36                *(.rodata*)
  37                *(.data)
  38                *(.data1)
  39                *(.data.*)
  40                *(.sdata)
  41                *(.got.plt)
  42                *(.got)
  43                /*
  44                 * the EFI loader doesn't seem to like a .bss section, so we
  45                 * stick it all into .data:
  46                 */
  47                *(.sbss)
  48                *(.scommon)
  49                *(.dynbss)
  50                *(.bss)
  51                *(COMMON)
  52
  53                /* U-Boot lists and device tree */
  54                . = ALIGN(8);
  55                *(SORT(.u_boot_list*));
  56                . = ALIGN(8);
  57                *(.dtb*);
  58        }
  59
  60        . = ALIGN(4096);
  61        .dynamic  : { *(.dynamic) }
  62        . = ALIGN(4096);
  63        .rel :
  64        {
  65                *(.rel.data)
  66                *(.rel.data.*)
  67                *(.rel.got)
  68                *(.rel.stab)
  69                *(.data.rel.ro.local)
  70                *(.data.rel.local)
  71                *(.data.rel.ro)
  72                *(.data.rel*)
  73                *(.rel.u_boot_list*)
  74        }
  75        . = ALIGN(4096);
  76                .reloc :        /* This is the PECOFF .reloc section! */
  77        {
  78        *(.reloc)
  79        }
  80        . = ALIGN(4096);
  81        .dynsym   : { *(.dynsym) }
  82        . = ALIGN(4096);
  83        .dynstr   : { *(.dynstr) }
  84        . = ALIGN(4096);
  85        /DISCARD/ :
  86        {
  87                *(.rel.reloc)
  88                *(.eh_frame)
  89                *(.note.GNU-stack)
  90        }
  91        .comment 0 : { *(.comment) }
  92}
  93