source: rtems/c/src/lib/libbsp/mips/p4000/startup/linkcmds @ 4a22e7a

4.104.114.84.95
Last change on this file since 4a22e7a was 4a22e7a, checked in by Joel Sherrill <joel.sherrill@…>, on 04/16/99 at 18:08:27

Corrected to reflect new way of doing mips constructors.

  • Property mode set to 100644
File size: 2.6 KB
Line 
1/*
2 *   $Id$
3 */
4
5OUTPUT_FORMAT("elf32-bigmips")
6OUTPUT_ARCH(mips)
7/* Do we need any of these for elf?
8   __DYNAMIC = 0;    */
9_DYNAMIC_LINK = 0;
10
11SECTIONS
12{
13  /* Read-only sections, merged into text segment: */
14  .text 0x80030000  :                           /* */
15/*  .text 0xa0020000  :                         /* */
16/*  .text 0x00020000  :                         /* */
17  {
18    _ftext = . ;
19    *(.init)
20    eprol = .;
21    *(.text)
22    *(.text.*)
23    *(.gnu.linkonce.t*)
24    *(.mips16.fn.*)
25    *(.mips16.call.*)
26    PROVIDE (__runtime_reloc_start = .);
27    *(.rel.sdata)
28    PROVIDE (__runtime_reloc_stop = .);
29    *(.fini)
30    /* CREATE_OBJECT_SYMBOLS */
31    etext  =  .;
32    _etext  =  .;
33  }
34  .ctors         :
35  {
36    ___ctors = .;
37/*
38 *  This version is preferable but requires a very late
39 *  model binutils (post 2.9.1).
40    KEEP(*crtbegin.o(.ctors));
41    KEEP(*(SORT(.ctors.*)));
42    KEEP(*(.ctors));
43*/
44    *crtbegin.o(.ctors);
45    *(.ctors.*);
46    *(.ctors);
47    ___ctors_end = .;
48  }
49  .dtors         :
50  {
51    ___dtors = .;
52/*
53 *  This version is preferable but requires a very late
54 *  model binutils (post 2.9.1).
55    KEEP(*crtbegin.o(.dtors));
56    KEEP(*(SORT(.dtors.*)));
57    KEEP(*(.dtors));
58*/
59    *crtbegin.o(.dtors);
60    *(.dtors.*);
61    *(.dtors);
62    ___dtors_end = .;
63  }
64    . = .;
65
66
67  .rodata  ALIGN(8)  : { *(.rodata)  *(.gnu.linkonce.r*) }
68  .rodata1 ALIGN(8)  :
69    {
70      *(.rodata1)
71      . = ALIGN(8);
72    }
73  .reginfo . : { *(.reginfo) }
74  /* also: .hash .dynsym .dynstr .plt(if r/o) .rel.got */
75  /* Read-write section, merged into data segment: */
76  .data  ALIGN(16)  :
77  {
78    _fdata = . ;
79    *(.data)
80    CONSTRUCTORS
81  }
82  .data1 ALIGN(8)  : { *(.data1) }
83  _gp = . + 0x8000;
84  .lit8 . : { *(.lit8) }
85  .lit4 . : { *(.lit4) }
86  /* also (before uninitialized portion): .dynamic .got .plt(if r/w)
87     (or does .dynamic go into its own segment?) */
88  /* We want the small data sections together, so single-instruction offsets
89     can access them all, and initialized data all before uninitialized, so
90     we can shorten the on-disk segment size.  */
91  .sdata   ALIGN(8)  : { *(.sdata) }
92  _edata  =  .;
93  __bss_start = ALIGN(8);
94  _fbss = .;
95  .sbss    ALIGN(8)  : { *(.sbss) *(.scommon) }
96  .bss     ALIGN(8)  :
97  {
98   *(.bss)
99   *(COMMON)
100   _end = . ;
101   end = . ;
102  }
103  /* Debug sections.  These should never be loadable, but they must have
104     zero addresses for the debuggers to work correctly.  */
105  .line                 0 : { *(.line)                  }
106  .debug                0 : { *(.debug)                 }
107  .debug_sfnames        0 : { *(.debug_sfnames)         }
108  .debug_srcinfo        0 : { *(.debug_srcinfo)         }
109  .debug_macinfo        0 : { *(.debug_macinfo)         }
110  .debug_pubnames       0 : { *(.debug_pubnames)        }
111  .debug_aranges        0 : { *(.debug_aranges)         }
112}
113
Note: See TracBrowser for help on using the repository browser.