~terry.guo/+junk/xbinutils

« back to all changes in this revision

Viewing changes to src/binutils/ld/scripttempl/i386beos.sc

  • Committer: Terry Guo
  • Date: 2012-09-05 06:50:40 UTC
  • Revision ID: terry.guo@arm.com-20120905065040-430c6mhm9b11a6r6
Tags: upstream-1.0
ImportĀ upstreamĀ versionĀ 1.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Linker script for 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
if test "${RELOCATING}"; then
 
10
  R_TEXT='*(.text$*)'
 
11
  R_DATA='*(.data$*)'
 
12
  R_RDATA='*(.rdata$*)'
 
13
  R_IDATA='
 
14
    *(.idata$2)
 
15
    *(.idata$3)
 
16
    /* These zeroes mark the end of the import list.  */
 
17
    LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
 
18
    *(.idata$4)
 
19
    *(.idata$5)
 
20
    *(.idata$6)
 
21
    *(.idata$7)'
 
22
  R_CRT='*(.CRT$*)'
 
23
  R_RSRC='*(.rsrc$*)'
 
24
  R_EXC='*(.exc$*)'
 
25
else
 
26
  R_TEXT=
 
27
  R_DATA=
 
28
  R_RDATA=
 
29
  R_IDATA=
 
30
  R_CRT=
 
31
  R_RSRC=
 
32
  R_EXC=
 
33
fi
 
34
 
 
35
cat <<EOF
 
36
${RELOCATING+OUTPUT_FORMAT(${OUTPUT_FORMAT})}
 
37
${RELOCATING-OUTPUT_FORMAT(${RELOCATEABLE_OUTPUT_FORMAT})}
 
38
 
 
39
${LIB_SEARCH_DIRS}
 
40
 
 
41
${RELOCATING+ENTRY (__start)}
 
42
${RELOCATING+header = .;}
 
43
${RELOCATING+__fltused = .; /* set up floating pt for MS .obj\'s */}
 
44
${RELOCATING+__ldused = .;}
 
45
SECTIONS
 
46
{
 
47
  .text ${RELOCATING+ __image_base__ + __section_alignment__ } : 
 
48
  {
 
49
    ${RELOCATING+ __text_start__ = . ;}
 
50
    ${RELOCATING+ *(.init)}
 
51
    *(.text)
 
52
    ${R_TEXT}
 
53
    *(.glue_7t)
 
54
    *(.glue_7)
 
55
    ${CONSTRUCTING+ ___CTOR_LIST__ = .; __CTOR_LIST__ = . ; 
 
56
                        LONG (-1); *(.ctors); *(.ctor); LONG (0); }
 
57
    ${CONSTRUCTING+ ___DTOR_LIST__ = .; __DTOR_LIST__ = . ; 
 
58
                        LONG (-1); *(.dtors); *(.dtor);  LONG (0); }
 
59
    ${RELOCATING+ *(.fini)}
 
60
    /* ??? Why is .gcc_exc here?  */
 
61
    ${RELOCATING+ *(.gcc_exc)}
 
62
    ${RELOCATING+ etext = .;}
 
63
    ${RELOCATING+ __text_end__ = .;}
 
64
    *(.gcc_except_table)
 
65
  }
 
66
 
 
67
  /* The Cygwin32 library uses a section to avoid copying certain data
 
68
     on fork.  This used to be named ".data$nocopy".  The linker used
 
69
     to include this between __data_start__ and __data_end__, but that
 
70
     breaks building the cygwin32 dll.  Instead, we name the section
 
71
     ".data_cygwin_nocopy" and explicitly include it after __data_end__. */
 
72
 
 
73
  .data ${RELOCATING+BLOCK(__section_alignment__)} : 
 
74
  {
 
75
    ${RELOCATING+__data_start__ = . ;}
 
76
    *(.data)
 
77
    *(.data2)
 
78
    ${R_DATA}
 
79
    ${RELOCATING+__data_end__ = . ;}
 
80
    ${RELOCATING+*(.data_cygwin_nocopy)}
 
81
  }
 
82
 
 
83
  .bss ${RELOCATING+BLOCK(__section_alignment__)} :
 
84
  {
 
85
    ${RELOCATING+__bss_start__ = . ;}
 
86
    *(.bss)
 
87
    *(COMMON)
 
88
    /* link.exe apparently pulls in .obj's because of UNDEF common
 
89
        symbols, which is not the coff way, but that's MS for you. */
 
90
    *(.CRT\$XCA)
 
91
    *(.CRT\$XCZ)
 
92
    *(.CRT\$XIA)
 
93
    *(.CRT\$XIZ)
 
94
    ${RELOCATING+__bss_end__ = . ;}
 
95
  }
 
96
 
 
97
  .rdata ${RELOCATING+BLOCK(__section_alignment__)} :
 
98
  {
 
99
    *(.rdata)
 
100
    ${R_RDATA}
 
101
    *(.eh_frame)
 
102
  }
 
103
 
 
104
  .edata ${RELOCATING+BLOCK(__section_alignment__)} :
 
105
  {
 
106
    *(.edata)
 
107
  }
 
108
 
 
109
  /DISCARD/ :
 
110
  {
 
111
    *(.debug\$S)
 
112
    *(.debug\$T)
 
113
    *(.debug\$F)
 
114
    *(.drectve)
 
115
    *(.debug*)
 
116
  }
 
117
 
 
118
  .idata ${RELOCATING+BLOCK(__section_alignment__)} :
 
119
  {
 
120
    /* This cannot currently be handled with grouped sections.
 
121
        See pe.em:sort_sections.  */
 
122
    ${R_IDATA}
 
123
  }
 
124
  .CRT ${RELOCATING+BLOCK(__section_alignment__)} :
 
125
  {                                     
 
126
    ${R_CRT}
 
127
  }
 
128
 
 
129
  .endjunk ${RELOCATING+BLOCK(__section_alignment__)} :
 
130
  {
 
131
    /* end is deprecated, don't use it */
 
132
    ${RELOCATING+ end = .;}
 
133
    ${RELOCATING+ _end = .;}
 
134
    ${RELOCATING+ __end__ = .;}
 
135
  }
 
136
 
 
137
  .reloc ${RELOCATING+BLOCK(__section_alignment__)} :
 
138
  {                                     
 
139
    *(.reloc)
 
140
  }
 
141
 
 
142
  .rsrc ${RELOCATING+BLOCK(__section_alignment__)} :
 
143
  {                                     
 
144
    *(.rsrc)
 
145
    ${R_RSRC}
 
146
  }
 
147
 
 
148
  .exc ${RELOCATING+BLOCK(__section_alignment__)} :
 
149
  {                                     
 
150
    *(.exc)
 
151
    ${R_EXC}
 
152
  }
 
153
 
 
154
  .stab ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} :
 
155
  {
 
156
    [ .stab ]
 
157
  }
 
158
 
 
159
  .stabstr ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} :
 
160
  {
 
161
    [ .stabstr ]
 
162
  }
 
163
  /* DWARF debug sections.
 
164
     Symbols in the DWARF debugging sections are relative to the beginning
 
165
     of the section so we begin them at 0.  */
 
166
 
 
167
  /* DWARF 1 */
 
168
  .debug          0 ${RELOCATING+(NOLOAD)} : { *(.debug) }
 
169
  .line           0 ${RELOCATING+(NOLOAD)} : { *(.line) }
 
170
 
 
171
  /* GNU DWARF 1 extensions */
 
172
  .debug_srcinfo  0 ${RELOCATING+(NOLOAD)} : { *(.debug_srcinfo) }
 
173
  .debug_sfnames  0 ${RELOCATING+(NOLOAD)} : { *(.debug_sfnames) }
 
174
 
 
175
  /* DWARF 1.1 and DWARF 2 */
 
176
  .debug_aranges  0 ${RELOCATING+(NOLOAD)} : { *(.debug_aranges) }
 
177
  .debug_pubnames 0 ${RELOCATING+(NOLOAD)} : { *(.debug_pubnames) }
 
178
 
 
179
  /* DWARF 2 */
 
180
  .debug_info     0 ${RELOCATING+(NOLOAD)} : { *(.debug_info) *(.gnu.linkonce.wi.*) }
 
181
  .debug_abbrev   0 ${RELOCATING+(NOLOAD)} : { *(.debug_abbrev) }
 
182
  .debug_line     0 ${RELOCATING+(NOLOAD)} : { *(.debug_line) }
 
183
  .debug_frame    0 ${RELOCATING+(NOLOAD)} : { *(.debug_frame) }
 
184
  .debug_str      0 ${RELOCATING+(NOLOAD)} : { *(.debug_str) }
 
185
  .debug_loc      0 ${RELOCATING+(NOLOAD)} : { *(.debug_loc) }
 
186
  .debug_macinfo  0 ${RELOCATING+(NOLOAD)} : { *(.debug_macinfo) }
 
187
 
 
188
  /* SGI/MIPS DWARF 2 extensions */
 
189
  .debug_weaknames 0 ${RELOCATING+(NOLOAD)} : { *(.debug_weaknames) }
 
190
  .debug_funcnames 0 ${RELOCATING+(NOLOAD)} : { *(.debug_funcnames) }
 
191
  .debug_typenames 0 ${RELOCATING+(NOLOAD)} : { *(.debug_typenames) }
 
192
  .debug_varnames  0 ${RELOCATING+(NOLOAD)} : { *(.debug_varnames) }
 
193
}
 
194
EOF