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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [binutils-2.18.50/] [ld/] [scripttempl/] [mcorepe.sc] - Blame information for rev 853

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

Line No. Rev Author Line
1 38 julius
# Linker script for MCore PE.
2
 
3
if test -z "${RELOCATEABLE_OUTPUT_FORMAT}"; then
4
  RELOCATEABLE_OUTPUT_FORMAT=${OUTPUT_FORMAT}
5
fi
6
 
7
# We can't easily and portably get an unquoted $ in a shell
8
# substitution, so we do this instead.
9
# Sorting of the .foo$* sections is required by the definition of
10
# grouped sections in PE.
11
# Sorting of the file names in R_IDATA is required by the
12
# current implementation of dlltool (this could probably be changed to
13
# use grouped sections instead).
14
if test "${RELOCATING}"; then
15
  R_TEXT='*(SORT(.text$*))'
16
  R_DATA='*(SORT(.data$*))'
17
  R_RDATA='*(SORT(.rdata$*))'
18
  R_IDATA='
19
    SORT(*)(.idata$2)
20
    SORT(*)(.idata$3)
21
    /* These zeroes mark the end of the import list.  */
22
    LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
23
    SORT(*)(.idata$4)
24
    SORT(*)(.idata$5)
25
    SORT(*)(.idata$6)
26
    SORT(*)(.idata$7)'
27
  R_CRT='*(SORT(.CRT$*))'
28
  R_RSRC='*(SORT(.rsrc$*))'
29
else
30
  R_TEXT=
31
  R_DATA=
32
  R_RDATA=
33
  R_IDATA=
34
  R_CRT=
35
  R_RSRC=
36
fi
37
 
38
if test "$RELOCATING"; then
39
  # Can't use ${RELOCATING+blah "blah" blah} for this,
40
  # because bash 2.x will lose the doublequotes.
41
  cat <
42
OUTPUT_FORMAT("${OUTPUT_FORMAT}", "${BIG_OUTPUT_FORMAT}",
43
                           "${LITTLE_OUTPUT_FORMAT}")
44
EOF
45
fi
46
 
47
cat <
48
${LIB_SEARCH_DIRS}
49
 
50
ENTRY(_mainCRTStartup)
51
 
52
SECTIONS
53
{
54
  .text ${RELOCATING+ __image_base__ + __section_alignment__ } :
55
  {
56
    ${RELOCATING+ *(.init)}
57
    *(.text)
58
    ${R_TEXT}
59
    *(.glue_7t)
60
    *(.glue_7)
61
    ${CONSTRUCTING+ ___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
62
                        LONG (-1); *(.ctors); *(.ctor); LONG (0); }
63
    ${CONSTRUCTING+ ___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
64
                        LONG (-1); *(.dtors); *(.dtor);  LONG (0); }
65
    ${RELOCATING+ *(.fini)}
66
    /* ??? Why is .gcc_exc here?  */
67
    ${RELOCATING+ *(.gcc_exc)}
68
    ${RELOCATING+ etext = .;}
69
    *(.gcc_except_table)
70
  }
71
 
72
  /* The Cygwin32 library uses a section to avoid copying certain data
73
     on fork.  This used to be named ".data$nocopy".  The linker used
74
     to include this between __data_start__ and __data_end__, but that
75
     breaks building the cygwin32 dll.  Instead, we name the section
76
     ".data_cygwin_nocopy" and explictly include it after __data_end__. */
77
 
78
  .data ${RELOCATING+BLOCK(__section_alignment__)} :
79
  {
80
    ${RELOCATING+__data_start__ = . ;}
81
    *(.data)
82
    *(.data2)
83
    ${R_DATA}
84
    ${RELOCATING+__data_end__ = . ;}
85
    ${RELOCATING+*(.data_cygwin_nocopy)}
86
  }
87
 
88
  .bss ${RELOCATING+BLOCK(__section_alignment__)} :
89
  {
90
    ${RELOCATING+__bss_start__ = . ;}
91
    *(.bss)
92
    *(COMMON)
93
    ${RELOCATING+__bss_end__ = . ;}
94
  }
95
 
96
  .rdata ${RELOCATING+BLOCK(__section_alignment__)} :
97
  {
98
    *(.rdata)
99
    ${R_RDATA}
100
    *(.eh_frame)
101
  }
102
 
103
  .edata ${RELOCATING+BLOCK(__section_alignment__)} :
104
  {
105
    *(.edata)
106
  }
107
 
108
  /DISCARD/ :
109
  {
110
    *(.debug\$S)
111
    *(.debug\$T)
112
    *(.debug\$F)
113
    *(.drectve)
114
  }
115
 
116
  .idata ${RELOCATING+BLOCK(__section_alignment__)} :
117
  {
118
    /* This cannot currently be handled with grouped sections.
119
        See pe.em:sort_sections.  */
120
    ${R_IDATA}
121
  }
122
  .CRT ${RELOCATING+BLOCK(__section_alignment__)} :
123
  {
124
    ${R_CRT}
125
  }
126
 
127
  .endjunk ${RELOCATING+BLOCK(__section_alignment__)} :
128
  {
129
    /* end is deprecated, don't use it */
130
    ${RELOCATING+ end = .;}
131
    ${RELOCATING+ _end = .;}
132
    ${RELOCATING+ __end__ = .;}
133
  }
134
 
135
  .reloc ${RELOCATING+BLOCK(__section_alignment__)} :
136
  {
137
    *(.reloc)
138
  }
139
 
140
  .rsrc ${RELOCATING+BLOCK(__section_alignment__)} :
141
  {
142
    *(.rsrc)
143
    ${R_RSRC}
144
  }
145
 
146
  .stab ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} :
147
  {
148
    [ .stab ]
149
  }
150
 
151
  .stabstr ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} :
152
  {
153
    [ .stabstr ]
154
  }
155
 
156
  .stack 0x80000 :
157
  {
158
    _stack = .;
159
    *(.stack)
160
  }
161
}
162
EOF

powered by: WebSVN 2.1.0

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