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

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [ld/] [scripttempl/] [epocpe.sc] - Blame information for rev 241

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

Line No. Rev Author Line
1 145 khays
# 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
# 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
cat <
39
${RELOCATING+OUTPUT_FORMAT(${OUTPUT_FORMAT})}
40
${RELOCATING-OUTPUT_FORMAT(${RELOCATEABLE_OUTPUT_FORMAT})}
41
 
42
${LIB_SEARCH_DIRS}
43
 
44
${RELOCATING+ENTRY (_mainCRTStartup)}
45
 
46
SECTIONS
47
{
48
  .text ${RELOCATING+ __image_base__ + __section_alignment__ } :
49
  {
50
    ${RELOCATING+ *(.init)}
51
    *(.text)
52
    ${R_TEXT}
53
    *(.glue_7t)
54
    *(.glue_7)
55
    ${RELOCATING+ *(.text.*)}
56
    ${CONSTRUCTING+ ___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
57
                        LONG (-1); *(.ctors); *(.ctor); LONG (0); }
58
    ${CONSTRUCTING+ ___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
59
                        LONG (-1); *(.dtors); *(.dtor);  LONG (0); }
60
    ${RELOCATING+ *(.fini)}
61
    /* ??? Why is .gcc_exc here?  */
62
    ${RELOCATING+ *(.gcc_exc)}
63
    ${RELOCATING+ etext = .;}
64
    *(.gcc_except_table)
65
 
66
    /* For EPOC the read only data is located at the end of the .text
67
    section */
68
    *(.rdata)
69
    ${R_RDATA}
70
    *(.eh_frame)
71
  }
72
 
73
  /* The Cygwin32 library uses a section to avoid copying certain data
74
     on fork.  This used to be named ".data$nocopy".  The linker used
75
     to include this between __data_start__ and __data_end__, but that
76
     breaks building the cygwin32 dll.  Instead, we name the section
77
     ".data_cygwin_nocopy" and explicitly include it after __data_end__. */
78
 
79
  .data ${RELOCATING+BLOCK(__section_alignment__)} :
80
  {
81
    ${RELOCATING+__data_start__ = . ;}
82
    *(.data)
83
    *(.data2)
84
    ${R_DATA}
85
    ${RELOCATING+__data_end__ = . ;}
86
    ${RELOCATING+*(.data_cygwin_nocopy)}
87
  }
88
 
89
  .bss ${RELOCATING+BLOCK(__section_alignment__)} :
90
  {
91
    ${RELOCATING+__bss_start__ = . ;}
92
    *(.bss)
93
    *(COMMON)
94
    ${RELOCATING+__bss_end__ = . ;}
95
  }
96
 
97
  .edata ${RELOCATING+BLOCK(__section_alignment__)} :
98
  {
99
    *(.edata)
100
  }
101
 
102
  /DISCARD/ :
103
  {
104
    *(.debug\$S)
105
    *(.debug\$T)
106
    *(.debug\$F)
107
    *(.drectve)
108
  }
109
 
110
  .idata ${RELOCATING+BLOCK(__section_alignment__)} :
111
  {
112
    /* This cannot currently be handled with grouped sections.
113
        See pe.em:sort_sections.  */
114
    ${R_IDATA}
115
  }
116
 
117
  .CRT ${RELOCATING+BLOCK(__section_alignment__)} :
118
  {
119
    ${R_CRT}
120
  }
121
 
122
  .endjunk ${RELOCATING+BLOCK(__section_alignment__)} :
123
  {
124
    /* end is deprecated, don't use it */
125
    ${RELOCATING+ end = .;}
126
    ${RELOCATING+ _end = .;}
127
    ${RELOCATING+ __end__ = .;}
128
  }
129
 
130
  .reloc ${RELOCATING+BLOCK(__section_alignment__)} :
131
  {
132
    *(.reloc)
133
  }
134
 
135
  .rsrc ${RELOCATING+BLOCK(__section_alignment__)} :
136
  {
137
    *(.rsrc)
138
    ${R_RSRC}
139
  }
140
 
141
  .stab ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} :
142
  {
143
    [ .stab ]
144
  }
145
 
146
  .stabstr ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} :
147
  {
148
    [ .stabstr ]
149
  }
150
 
151
}
152
EOF

powered by: WebSVN 2.1.0

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