source: rtems/c/src/lib/libbsp/powerpc/score603e/startup/linkcmds @ 3d5f97f

4.104.114.84.95
Last change on this file since 3d5f97f was 3d5f97f, checked in by Joel Sherrill <joel.sherrill@…>, on Jan 4, 2005 at 11:29:33 PM

2005-01-04 Joel Sherrill <joel@…>

  • startup/linkcmds: Remove warnings.
  • Property mode set to 100644
File size: 6.1 KB
Line 
1OUTPUT_FORMAT("elf32-powerpc", "elf32-powerpc",
2              "elf32-powerpc")
3
4OUTPUT_ARCH(powerpc)
5ENTRY(_start)
6
7/*
8 *  Number of Decrementer countdowns per millisecond
9 *
10 *  Calculated by:  (66 Mhz * 1000) / 4 cycles per click
11 */
12
13PROVIDE(CPU_PPC_CLICKS_PER_MS = 16500);
14
15MEMORY
16  {
17        VECTORS : ORIGIN = 0, LENGTH = 64K
18        RAM : ORIGIN = 1M, LENGTH = 31M
19        EPROM : ORIGIN = 0xFFF00000, LENGTH = 0x80000
20  }
21
22SECTIONS
23{
24  .vectors 0x00100 :
25  {
26    *(.vectors)
27  }
28
29  /* Read-only sections, merged into text segment: */
30  /* SDS ROM worked at 0x30000                     */
31  .interp         : { *(.interp) }
32  .hash           : { *(.hash)          }
33  .dynsym         : { *(.dynsym)                }
34  .dynstr         : { *(.dynstr)                }
35  .rela.text      : { *(.rela.text)     }
36  .rela.data      : { *(.rela.data)     }
37  .rela.rodata    : { *(.rela.rodata)   }
38  .rela.got       : { *(.rela.got)      }
39  .rela.got1      : { *(.rela.got1)     }
40  .rela.got2      : { *(.rela.got2)     }
41  .rela.ctors     : { *(.rela.ctors)    }
42  .rela.dtors     : { *(.rela.dtors)    }
43  .rela.init      : { *(.rela.init)     }
44  .rela.fini      : { *(.rela.fini)     }
45  .rela.bss       : { *(.rela.bss)      }
46  .rela.plt       : { *(.rela.plt)      }
47  .rela.sdata     : { *(.rela.sdata2)   }
48  .rela.sbss      : { *(.rela.sbss2)    }
49  .rela.sdata2    : { *(.rela.sdata2)   }
50  .rela.sbss2     : { *(.rela.sbss2)    }
51  .plt   : { *(.plt) }
52 .text  0x100000:
53  {
54   
55    *(.text)
56    *(.gnu.linkonce.t.*)
57    *(.descriptors)
58
59    /*
60     * Special FreeBSD sysctl sections.
61     */
62    . = ALIGN (16);
63    __start_set_sysctl_set = .;
64    *(set_sysctl_*);
65    __stop_set_sysctl_set = ABSOLUTE(.);
66    *(set_domain_*);
67    *(set_pseudo_*);
68
69    /* .gnu.warning sections are handled specially by elf32.em.  */
70    *(.gnu.warning)
71  }  >RAM
72  .init           : { _init = .; __init = .; *(.init)           } >RAM
73  .fini           : { _fini = .; __fini = .; *(.fini)           } >RAM
74  .rodata         : { *(.rodata*) *(.gnu.linkonce.r*) } >RAM
75  .rodata1        : { *(.rodata1)               } >RAM
76  .eh_frame       : { *.(eh_frame)              } >RAM
77  _etext = .;
78  PROVIDE (_etext = .);
79  PROVIDE (__SDATA2_START__ = .);
80  .sdata2         : { *(.sdata2) *(.gnu.linkonce.s2.*)  } >RAM
81  .sbss2          : { *(.sbss2) *(.gnu.linkonce.sb2.*)  } >RAM
82  PROVIDE (__SBSS2_END__ = .);
83  /* Adjust the address for the data segment.  We want to adjust up to
84     the same address within the page on the next page up.  It would
85     be more correct to do this:
86       . = ALIGN(0x40000) + (ALIGN(8) & (0x40000 - 1));
87     The current expression does not correctly handle the case of a
88     text segment ending precisely at the end of a page; it causes the
89     data segment to skip a page.  The above expression does not have
90     this problem, but it will currently (2/95) cause BFD to allocate
91     a single segment, combining both text and data, for this case.
92     This will prevent the text segment from being shared among
93     multiple executions of the program; I think that is more
94     important than losing a page of the virtual address space (note
95     that no actual memory is lost; the page which is skipped can not
96     be referenced).  */
97  . =  ALIGN(8) + 0x40000;
98  PROVIDE (sdata = .);
99  .data    :
100  {
101    *(.data)
102    *(.gnu.linkonce.d.*)
103    CONSTRUCTORS
104  } >RAM
105  PROVIDE (__EXCEPT_START__ = .);
106  .gcc_except_table   : { *(.gcc_except_table) } >RAM
107  PROVIDE (__EXCEPT_END__ = .);
108
109  .data1          : { *(.data1)         } >RAM
110  .got1           : { *(.got1)          } >RAM
111  .dynamic        : { *(.dynamic)       } >RAM
112  /* Put .ctors and .dtors next to the .got2 section, so that the pointers
113     get relocated with -mrelocatable. Also put in the .fixup pointers.
114     The current compiler no longer needs this, but keep it around for 2.7.2  */
115                PROVIDE (_GOT2_START_ = .);
116  .got2           :  { *(.got2) } >RAM
117                PROVIDE (__GOT2_END__ = .);
118                PROVIDE (__CTOR_LIST__ = .);
119  .ctors          : { *(.ctors) } >RAM
120                PROVIDE (__CTOR_END__ = .);
121                PROVIDE (__DTOR_LIST__ = .);
122  .dtors          : { *(.dtors) } >RAM
123                PROVIDE (__DTOR_END__ = .);
124                PROVIDE (_FIXUP_START_ = .);
125  .fixup          : { *(.fixup) } >RAM
126                PROVIDE (_FIXUP_END_ = .);
127                PROVIDE (__FIXUP_END__ = .);
128                PROVIDE (_GOT2_END_ = .);
129  .got            : {
130    PROVIDE (_GOT_START_ = .);
131    s.got = .;
132    *(.got)
133  }      >RAM
134  .got.plt        : { *(.got.plt) } >RAM
135                PROVIDE (_GOT_END_ = .);
136                PROVIDE (__GOT_END__ = .);
137  /* We want the small data sections together, so single-instruction offsets
138     can access them all, and initialized data all before uninitialized, so
139     we can shorten the on-disk segment size.  */
140  PROVIDE (__SDATA_START__ = .);
141  .sdata          : {
142     *(.sdata)
143     *(.gnu.linkonce.s.*)
144     _edata  =  .;
145  } >RAM
146  PROVIDE (_edata = .);
147  PROVIDE (RAM_END = ADDR(.text) + 10M);
148  . =  ALIGN(8) + 0x1000;
149  PROVIDE (__SBSS_START__ = .);
150  .sbss      :
151  {
152    PROVIDE (__sbss_start = .);
153    *(.sbss)
154    *(.scommon)
155    PROVIDE (__sbss_end = .);
156  } >RAM
157  PROVIDE (__SBSS_END__ = .);
158  .bss       :
159  {
160    PROVIDE (__bss_start = .);
161    *(.dynbss)
162    *(.bss)
163    *(COMMON)
164    . =  ALIGN(8) + 0x8000;
165    PROVIDE (__stack = .);
166    _end = . ;
167    PROVIDE (end = .);
168  } >RAM
169
170  /* These are needed for ELF backends which have not yet been
171     converted to the new style linker.  */
172  .stab 0 : { *(.stab) } >RAM
173  .stabstr 0 : { *(.stabstr) }
174  /* DWARF debug sections.
175     Symbols in the DWARF debugging sections are relative to the beginning
176     of the section so we begin them at 0.  */
177  /* DWARF 1 */
178  .debug          0 : { *(.debug) }
179  .line           0 : { *(.line) }
180  /* GNU DWARF 1 extensions */
181  .debug_srcinfo  0 : { *(.debug_srcinfo) }
182  .debug_sfnames  0 : { *(.debug_sfnames) }
183  /* DWARF 1.1 and DWARF 2 */
184  .debug_aranges  0 : { *(.debug_aranges) }
185  .debug_pubnames 0 : { *(.debug_pubnames) }
186  /* DWARF 2 */
187  .debug_info     0 : { *(.debug_info) }
188  .debug_abbrev   0 : { *(.debug_abbrev) }
189  .debug_line     0 : { *(.debug_line) }
190  .debug_frame    0 : { *(.debug_frame) }
191  .debug_str      0 : { *(.debug_str) }
192  .debug_loc      0 : { *(.debug_loc) }
193  .debug_macinfo  0 : { *(.debug_macinfo) }
194  /* SGI/MIPS DWARF 2 extensions */
195  .debug_weaknames 0 : { *(.debug_weaknames) }
196  .debug_funcnames 0 : { *(.debug_funcnames) }
197  .debug_typenames 0 : { *(.debug_typenames) }
198  .debug_varnames  0 : { *(.debug_varnames) }
199  /* These must appear regardless of  .  */
200}
Note: See TracBrowser for help on using the repository browser.