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 01/04/05 at 23:29:33

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

  • startup/linkcmds: Remove warnings.
  • Property mode set to 100644
File size: 6.1 KB
RevLine 
[9c448e1]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
[39827cc]18        RAM : ORIGIN = 1M, LENGTH = 31M
[9c448e1]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) }
[39827cc]52 .text  0x100000:
[9c448e1]53  {
[39827cc]54   
[9c448e1]55    *(.text)
[add0545d]56    *(.gnu.linkonce.t.*)
[9c448e1]57    *(.descriptors)
[9c1133e]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
[9c448e1]69    /* .gnu.warning sections are handled specially by elf32.em.  */
70    *(.gnu.warning)
[85c92574]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
[238f450]77  _etext = .;
78  PROVIDE (_etext = .);
[9c448e1]79  PROVIDE (__SDATA2_START__ = .);
[85c92574]80  .sdata2         : { *(.sdata2) *(.gnu.linkonce.s2.*)  } >RAM
81  .sbss2          : { *(.sbss2) *(.gnu.linkonce.sb2.*)  } >RAM
[9c448e1]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)
[add0545d]102    *(.gnu.linkonce.d.*)
[9c448e1]103    CONSTRUCTORS
[85c92574]104  } >RAM
[9c448e1]105  PROVIDE (__EXCEPT_START__ = .);
[85c92574]106  .gcc_except_table   : { *(.gcc_except_table) } >RAM
[9c448e1]107  PROVIDE (__EXCEPT_END__ = .);
108
[85c92574]109  .data1          : { *(.data1)         } >RAM
110  .got1           : { *(.got1)          } >RAM
111  .dynamic        : { *(.dynamic)       } >RAM
[9c448e1]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_ = .);
[85c92574]116  .got2           :  { *(.got2) } >RAM
[9c448e1]117                PROVIDE (__GOT2_END__ = .);
118                PROVIDE (__CTOR_LIST__ = .);
[85c92574]119  .ctors          : { *(.ctors) } >RAM
[9c448e1]120                PROVIDE (__CTOR_END__ = .);
121                PROVIDE (__DTOR_LIST__ = .);
[85c92574]122  .dtors          : { *(.dtors) } >RAM
[9c448e1]123                PROVIDE (__DTOR_END__ = .);
124                PROVIDE (_FIXUP_START_ = .);
[85c92574]125  .fixup          : { *(.fixup) } >RAM
[9c448e1]126                PROVIDE (_FIXUP_END_ = .);
127                PROVIDE (__FIXUP_END__ = .);
128                PROVIDE (_GOT2_END_ = .);
[39827cc]129  .got            : {
130    PROVIDE (_GOT_START_ = .);
131    s.got = .;
132    *(.got)
[85c92574]133  }      >RAM
134  .got.plt        : { *(.got.plt) } >RAM
[9c448e1]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__ = .);
[39827cc]141  .sdata          : {
142     *(.sdata)
[85c92574]143     *(.gnu.linkonce.s.*)
[39827cc]144     _edata  =  .;
[85c92574]145  } >RAM
[39827cc]146  PROVIDE (_edata = .);
147  PROVIDE (RAM_END = ADDR(.text) + 10M);
[9c448e1]148  . =  ALIGN(8) + 0x1000;
149  PROVIDE (__SBSS_START__ = .);
150  .sbss      :
151  {
152    PROVIDE (__sbss_start = .);
153    *(.sbss)
154    *(.scommon)
155    PROVIDE (__sbss_end = .);
[85c92574]156  } >RAM
[9c448e1]157  PROVIDE (__SBSS_END__ = .);
158  .bss       :
159  {
[39827cc]160    PROVIDE (__bss_start = .);
161    *(.dynbss)
162    *(.bss)
163    *(COMMON)
164    . =  ALIGN(8) + 0x8000;
165    PROVIDE (__stack = .);
166    _end = . ;
167    PROVIDE (end = .);
[85c92574]168  } >RAM
[9c448e1]169
170  /* These are needed for ELF backends which have not yet been
171     converted to the new style linker.  */
[85c92574]172  .stab 0 : { *(.stab) } >RAM
[9c448e1]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.