uboot/arch/mips/cpu/u-boot.lds
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0+ */
   2/*
   3 * (C) Copyright 2003
   4 * Wolfgang Denk Engineering, <wd@denx.de>
   5 */
   6
   7OUTPUT_ARCH(mips)
   8ENTRY(_start)
   9SECTIONS
  10{
  11        . = 0x00000000;
  12
  13        . = ALIGN(4);
  14        .text : {
  15                __text_start = .;
  16                *(.text*)
  17                __text_end = .;
  18        }
  19
  20        . = ALIGN(4);
  21        .rodata : {
  22                *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
  23        }
  24
  25        . = ALIGN(4);
  26        .data : {
  27                *(.data*)
  28        }
  29
  30        . = ALIGN(4);
  31        .sdata : {
  32                *(.sdata*)
  33        }
  34
  35        . = ALIGN(4);
  36        __u_boot_list : {
  37                KEEP(*(SORT(__u_boot_list*)));
  38        }
  39
  40        . = ALIGN(4);
  41        __image_copy_end = .;
  42        __init_end = .;
  43
  44        .data.reloc : {
  45                __rel_start = .;
  46                /*
  47                 * Space for relocation table
  48                 * This needs to be filled so that the
  49                 * mips-reloc tool can overwrite the content.
  50                 * An invalid value is left at the start of the
  51                 * section to abort relocation if the table
  52                 * has not been filled in.
  53                 */
  54                LONG(0xFFFFFFFF);
  55                FILL(0);
  56                . += CONFIG_MIPS_RELOCATION_TABLE_SIZE - 4;
  57        }
  58
  59        . = ALIGN(4);
  60        _end = .;
  61
  62        .bss __rel_start (OVERLAY) : {
  63                __bss_start = .;
  64                *(.sbss.*)
  65                *(.bss.*)
  66                *(COMMON)
  67                . = ALIGN(4);
  68                __bss_end = .;
  69        }
  70
  71        /* These mark the ABI of U-Boot for debuggers. */
  72        .mdebug.abi32 : {
  73                KEEP(*(.mdebug.abi32))
  74        }
  75        .mdebug.abi64 : {
  76                KEEP(*(.mdebug.abi64))
  77        }
  78
  79        /* This is the MIPS specific mdebug section. */
  80        .mdebug : { *(.mdebug) }
  81
  82        /* Stabs debugging sections.  */
  83        .stab 0 : { *(.stab) }
  84        .stabstr 0 : { *(.stabstr) }
  85        .stab.excl 0 : { *(.stab.excl) }
  86        .stab.exclstr 0 : { *(.stab.exclstr) }
  87        .stab.index 0 : { *(.stab.index) }
  88        .stab.indexstr 0 : { *(.stab.indexstr) }
  89        .comment 0 : { *(.comment) }
  90
  91        /*
  92         * DWARF debug sections.
  93         * Symbols in the DWARF debugging sections are relative to
  94         * the beginning of the section so we begin them at 0.
  95         */
  96        /* DWARF 1 */
  97        .debug 0 : { *(.debug) }
  98        .line 0 : { *(.line) }
  99        /* GNU DWARF 1 extensions */
 100        .debug_srcinfo 0 : { *(.debug_srcinfo) }
 101        .debug_sfnames 0 : { *(.debug_sfnames) }
 102        /* DWARF 1.1 and DWARF 2 */
 103        .debug_aranges 0 : { *(.debug_aranges) }
 104        .debug_pubnames 0 : { *(.debug_pubnames) }
 105        /* DWARF 2 */
 106        .debug_info 0 : {
 107                *(.debug_info
 108                .gnu.linkonce.wi.*)
 109        }
 110        .debug_abbrev 0 : { *(.debug_abbrev) }
 111        .debug_line 0 : { *(.debug_line) }
 112        .debug_frame 0 : { *(.debug_frame) }
 113        .debug_str 0 : { *(.debug_str) }
 114        .debug_loc 0 : { *(.debug_loc) }
 115        .debug_macinfo 0 : { *(.debug_macinfo) }
 116        .debug_pubtypes 0 : { *(.debug_pubtypes) }
 117        /* DWARF 3 */
 118        .debug_ranges 0 : { *(.debug_ranges) }
 119        /* SGI/MIPS DWARF 2 extensions */
 120        .debug_weaknames 0 : { *(.debug_weaknames) }
 121        .debug_funcnames 0 : { *(.debug_funcnames) }
 122        .debug_typenames 0 : { *(.debug_typenames) }
 123        .debug_varnames 0 : { *(.debug_varnames) }
 124        /* GNU DWARF 2 extensions */
 125        .debug_gnu_pubnames 0 : { *(.debug_gnu_pubnames) }
 126        .debug_gnu_pubtypes 0 : { *(.debug_gnu_pubtypes) }
 127        /* DWARF 4 */
 128        .debug_types 0 : { *(.debug_types) }
 129        /* DWARF 5 */
 130        .debug_macro 0 : { *(.debug_macro) }
 131        .debug_addr 0 : { *(.debug_addr) }
 132
 133        /DISCARD/ : {
 134                /* ABI crap starts here */
 135                *(.MIPS.abiflags)
 136                *(.MIPS.options)
 137                *(.options)
 138                *(.pdr)
 139                *(.reginfo)
 140                *(.eh_frame)
 141        }
 142}
 143