OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [rtos/] [rtems/] [c/] [src/] [lib/] [libbsp/] [powerpc/] [dmv177/] [startup/] [linkcmds] - Blame information for rev 30

Go to most recent revision | Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.