source: rtems/c/src/lib/libbsp/powerpc/score603e/startup/linkcmds @ 4217b96

4.104.114.84.95
Last change on this file since 4217b96 was 4217b96, checked in by Joel Sherrill <joel.sherrill@…>, on 02/08/06 at 12:28:38

2006-02-08 Joel Sherrill <joel@…>

  • startup/linkcmds: Add sections required by newer gcc versions.
  • 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   
[4217b96]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  {
[2b677d9]101   *(.data)
102    *(.data.*)
[add0545d]103    *(.gnu.linkonce.d.*)
[9c448e1]104    CONSTRUCTORS
[85c92574]105  } >RAM
[9c448e1]106  PROVIDE (__EXCEPT_START__ = .);
[85c92574]107  .gcc_except_table   : { *(.gcc_except_table) } >RAM
[9c448e1]108  PROVIDE (__EXCEPT_END__ = .);
109
[85c92574]110  .data1          : { *(.data1)         } >RAM
111  .got1           : { *(.got1)          } >RAM
112  .dynamic        : { *(.dynamic)       } >RAM
[9c448e1]113  /* Put .ctors and .dtors next to the .got2 section, so that the pointers
114     get relocated with -mrelocatable. Also put in the .fixup pointers.
115     The current compiler no longer needs this, but keep it around for 2.7.2  */
116                PROVIDE (_GOT2_START_ = .);
[85c92574]117  .got2           :  { *(.got2) } >RAM
[9c448e1]118                PROVIDE (__GOT2_END__ = .);
119                PROVIDE (__CTOR_LIST__ = .);
[85c92574]120  .ctors          : { *(.ctors) } >RAM
[9c448e1]121                PROVIDE (__CTOR_END__ = .);
122                PROVIDE (__DTOR_LIST__ = .);
[85c92574]123  .dtors          : { *(.dtors) } >RAM
[9c448e1]124                PROVIDE (__DTOR_END__ = .);
125                PROVIDE (_FIXUP_START_ = .);
[85c92574]126  .fixup          : { *(.fixup) } >RAM
[9c448e1]127                PROVIDE (_FIXUP_END_ = .);
128                PROVIDE (__FIXUP_END__ = .);
129                PROVIDE (_GOT2_END_ = .);
[39827cc]130  .got            : {
131    PROVIDE (_GOT_START_ = .);
132    s.got = .;
133    *(.got)
[85c92574]134  }      >RAM
135  .got.plt        : { *(.got.plt) } >RAM
[9c448e1]136                PROVIDE (_GOT_END_ = .);
137                PROVIDE (__GOT_END__ = .);
138  /* We want the small data sections together, so single-instruction offsets
139     can access them all, and initialized data all before uninitialized, so
140     we can shorten the on-disk segment size.  */
141  PROVIDE (__SDATA_START__ = .);
[39827cc]142  .sdata          : {
[4217b96]143     *(.sdata*)
[85c92574]144     *(.gnu.linkonce.s.*)
[39827cc]145     _edata  =  .;
[85c92574]146  } >RAM
[39827cc]147  PROVIDE (_edata = .);
148  PROVIDE (RAM_END = ADDR(.text) + 10M);
[9c448e1]149  . =  ALIGN(8) + 0x1000;
150  PROVIDE (__SBSS_START__ = .);
151  .sbss      :
152  {
153    PROVIDE (__sbss_start = .);
[4217b96]154    *(.sbss*)
[9c448e1]155    *(.scommon)
[771af46f]156    *(.gnu.linkonce.sb.*)
[9c448e1]157    PROVIDE (__sbss_end = .);
[85c92574]158  } >RAM
[9c448e1]159  PROVIDE (__SBSS_END__ = .);
160  .bss       :
161  {
[39827cc]162    PROVIDE (__bss_start = .);
163    *(.dynbss)
[4217b96]164    *(.bss* .gnu.linkonce.b.*)
[39827cc]165    *(COMMON)
166    . =  ALIGN(8) + 0x8000;
167    PROVIDE (__stack = .);
168    _end = . ;
169    PROVIDE (end = .);
[85c92574]170  } >RAM
[9c448e1]171
172  /* These are needed for ELF backends which have not yet been
173     converted to the new style linker.  */
[85c92574]174  .stab 0 : { *(.stab) } >RAM
[9c448e1]175  .stabstr 0 : { *(.stabstr) }
176  /* DWARF debug sections.
177     Symbols in the DWARF debugging sections are relative to the beginning
178     of the section so we begin them at 0.  */
179  /* DWARF 1 */
180  .debug          0 : { *(.debug) }
181  .line           0 : { *(.line) }
182  /* GNU DWARF 1 extensions */
183  .debug_srcinfo  0 : { *(.debug_srcinfo) }
184  .debug_sfnames  0 : { *(.debug_sfnames) }
185  /* DWARF 1.1 and DWARF 2 */
186  .debug_aranges  0 : { *(.debug_aranges) }
187  .debug_pubnames 0 : { *(.debug_pubnames) }
188  /* DWARF 2 */
189  .debug_info     0 : { *(.debug_info) }
190  .debug_abbrev   0 : { *(.debug_abbrev) }
191  .debug_line     0 : { *(.debug_line) }
192  .debug_frame    0 : { *(.debug_frame) }
193  .debug_str      0 : { *(.debug_str) }
194  .debug_loc      0 : { *(.debug_loc) }
195  .debug_macinfo  0 : { *(.debug_macinfo) }
196  /* SGI/MIPS DWARF 2 extensions */
197  .debug_weaknames 0 : { *(.debug_weaknames) }
198  .debug_funcnames 0 : { *(.debug_funcnames) }
199  .debug_typenames 0 : { *(.debug_typenames) }
200  .debug_varnames  0 : { *(.debug_varnames) }
201  /* These must appear regardless of  .  */
202}
Note: See TracBrowser for help on using the repository browser.