root/arch/um/kernel/dyn.lds.S

/* [<][>][^][v][top][bottom][index][help] */
   1 #include <asm/vmlinux.lds.h>
   2 #include <asm/page.h>
   3 
   4 OUTPUT_FORMAT(ELF_FORMAT)
   5 OUTPUT_ARCH(ELF_ARCH)
   6 ENTRY(_start)
   7 jiffies = jiffies_64;
   8 
   9 SECTIONS
  10 {
  11   PROVIDE (__executable_start = START);
  12   . = START + SIZEOF_HEADERS;
  13   .interp         : { *(.interp) }
  14   __binary_start = .;
  15   . = ALIGN(4096);              /* Init code and data */
  16   _text = .;
  17   INIT_TEXT_SECTION(PAGE_SIZE)
  18 
  19   . = ALIGN(PAGE_SIZE);
  20 
  21   /* Read-only sections, merged into text segment: */
  22   .hash           : { *(.hash) }
  23   .gnu.hash       : { *(.gnu.hash) }
  24   .dynsym         : { *(.dynsym) }
  25   .dynstr         : { *(.dynstr) }
  26   .gnu.version    : { *(.gnu.version) }
  27   .gnu.version_d  : { *(.gnu.version_d) }
  28   .gnu.version_r  : { *(.gnu.version_r) }
  29   .rel.init       : { *(.rel.init) }
  30   .rela.init      : { *(.rela.init) }
  31   .rel.text       : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) }
  32   .rela.text      : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) }
  33   .rel.fini       : { *(.rel.fini) }
  34   .rela.fini      : { *(.rela.fini) }
  35   .rel.rodata     : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) }
  36   .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }
  37   .rel.data       : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) }
  38   .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }
  39   .rel.tdata      : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) }
  40   .rela.tdata     : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }
  41   .rel.tbss       : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) }
  42   .rela.tbss      : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }
  43   .rel.ctors      : { *(.rel.ctors) }
  44   .rela.ctors     : { *(.rela.ctors) }
  45   .rel.dtors      : { *(.rel.dtors) }
  46   .rela.dtors     : { *(.rela.dtors) }
  47   .rel.got        : { *(.rel.got) }
  48   .rela.got       : { *(.rela.got) }
  49   .rel.bss        : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) }
  50   .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }
  51   .rel.plt : {
  52         *(.rel.plt)
  53         PROVIDE_HIDDEN(__rel_iplt_start = .);
  54         *(.rel.iplt)
  55         PROVIDE_HIDDEN(__rel_iplt_end = .);
  56   }
  57   .rela.plt : {
  58         *(.rela.plt)
  59         PROVIDE_HIDDEN(__rela_iplt_start = .);
  60         *(.rela.iplt)
  61         PROVIDE_HIDDEN(__rela_iplt_end = .);
  62   }
  63   .init           : {
  64     KEEP (*(.init))
  65   } =0x90909090
  66   .plt            : { *(.plt) }
  67   .text           : {
  68     _stext = .;
  69     TEXT_TEXT
  70     SCHED_TEXT
  71     CPUIDLE_TEXT
  72     LOCK_TEXT
  73     IRQENTRY_TEXT
  74     SOFTIRQENTRY_TEXT
  75     *(.fixup)
  76     *(.stub .text.* .gnu.linkonce.t.*)
  77     /* .gnu.warning sections are handled specially by elf32.em.  */
  78     *(.gnu.warning)
  79 
  80     . = ALIGN(PAGE_SIZE);
  81   } =0x90909090
  82   . = ALIGN(PAGE_SIZE);
  83   .syscall_stub : {
  84         __syscall_stub_start = .;
  85         *(.__syscall_stub*)
  86         __syscall_stub_end = .;
  87   }
  88   .fini           : {
  89     KEEP (*(.fini))
  90   } =0x90909090
  91 
  92   .kstrtab : { *(.kstrtab) }
  93 
  94   #include <asm/common.lds.S>
  95 
  96   __init_begin = .;
  97   init.data : { INIT_DATA }
  98   __init_end = .;
  99 
 100   /* Ensure the __preinit_array_start label is properly aligned.  We
 101      could instead move the label definition inside the section, but
 102      the linker would then create the section even if it turns out to
 103      be empty, which isn't pretty.  */
 104   . = ALIGN(32 / 8);
 105   .preinit_array     : { *(.preinit_array) }
 106   .init_array     : { *(.init_array) }
 107   .fini_array     : { *(.fini_array) }
 108   .data           : {
 109     INIT_TASK_DATA(KERNEL_STACK_SIZE)
 110     . = ALIGN(KERNEL_STACK_SIZE);
 111     *(.data..init_irqstack)
 112     DATA_DATA
 113     *(.data.* .gnu.linkonce.d.*)
 114     SORT(CONSTRUCTORS)
 115   }
 116   .data1          : { *(.data1) }
 117   .tdata          : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
 118   .tbss           : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
 119   .eh_frame       : { KEEP (*(.eh_frame)) }
 120   .gcc_except_table   : { *(.gcc_except_table) }
 121   .dynamic        : { *(.dynamic) }
 122   .ctors          : {
 123     /* gcc uses crtbegin.o to find the start of
 124        the constructors, so we make sure it is
 125        first.  Because this is a wildcard, it
 126        doesn't matter if the user does not
 127        actually link against crtbegin.o; the
 128        linker won't look for a file to match a
 129        wildcard.  The wildcard also means that it
 130        doesn't matter which directory crtbegin.o
 131        is in.  */
 132     KEEP (*crtbegin.o(.ctors))
 133     /* We don't want to include the .ctor section from
 134        from the crtend.o file until after the sorted ctors.
 135        The .ctor section from the crtend file contains the
 136        end of ctors marker and it must be last */
 137     KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors))
 138     KEEP (*(SORT(.ctors.*)))
 139     KEEP (*(.ctors))
 140   }
 141   .dtors          : {
 142     KEEP (*crtbegin.o(.dtors))
 143     KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors))
 144     KEEP (*(SORT(.dtors.*)))
 145     KEEP (*(.dtors))
 146   }
 147   .jcr            : { KEEP (*(.jcr)) }
 148   .got            : { *(.got.plt) *(.got) }
 149   _edata = .;
 150   PROVIDE (edata = .);
 151   .bss            : {
 152    __bss_start = .;
 153    *(.dynbss)
 154    *(.bss .bss.* .gnu.linkonce.b.*)
 155    *(COMMON)
 156    /* Align here to ensure that the .bss section occupies space up to
 157       _end.  Align after .bss to ensure correct alignment even if the
 158       .bss section disappears because there are no input sections.  */
 159    . = ALIGN(32 / 8);
 160   . = ALIGN(32 / 8);
 161   }
 162    __bss_stop = .;
 163   _end = .;
 164   PROVIDE (end = .);
 165 
 166   STABS_DEBUG
 167 
 168   DWARF_DEBUG
 169 
 170   DISCARDS
 171 }

/* [<][>][^][v][top][bottom][index][help] */