annotate gcc/ada/bindusg.adb @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children 84e7813d76e9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 ------------------------------------------------------------------------------
kono
parents:
diff changeset
2 -- --
kono
parents:
diff changeset
3 -- GNAT COMPILER COMPONENTS --
kono
parents:
diff changeset
4 -- --
kono
parents:
diff changeset
5 -- B I N D U S G --
kono
parents:
diff changeset
6 -- --
kono
parents:
diff changeset
7 -- B o d y --
kono
parents:
diff changeset
8 -- --
kono
parents:
diff changeset
9 -- Copyright (C) 1992-2017, Free Software Foundation, Inc. --
kono
parents:
diff changeset
10 -- --
kono
parents:
diff changeset
11 -- GNAT is free software; you can redistribute it and/or modify it under --
kono
parents:
diff changeset
12 -- terms of the GNU General Public License as published by the Free Soft- --
kono
parents:
diff changeset
13 -- ware Foundation; either version 3, or (at your option) any later ver- --
kono
parents:
diff changeset
14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
kono
parents:
diff changeset
15 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
kono
parents:
diff changeset
16 -- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
kono
parents:
diff changeset
17 -- for more details. You should have received a copy of the GNU General --
kono
parents:
diff changeset
18 -- Public License distributed with GNAT; see file COPYING3. If not, go to --
kono
parents:
diff changeset
19 -- http://www.gnu.org/licenses for a complete copy of the license. --
kono
parents:
diff changeset
20 -- --
kono
parents:
diff changeset
21 -- GNAT was originally developed by the GNAT team at New York University. --
kono
parents:
diff changeset
22 -- Extensive contributions were provided by Ada Core Technologies Inc. --
kono
parents:
diff changeset
23 -- --
kono
parents:
diff changeset
24 ------------------------------------------------------------------------------
kono
parents:
diff changeset
25
kono
parents:
diff changeset
26 with Osint; use Osint;
kono
parents:
diff changeset
27 with Output; use Output;
kono
parents:
diff changeset
28 with Switch; use Switch;
kono
parents:
diff changeset
29
kono
parents:
diff changeset
30 with System.WCh_Con; use System.WCh_Con;
kono
parents:
diff changeset
31
kono
parents:
diff changeset
32 package body Bindusg is
kono
parents:
diff changeset
33
kono
parents:
diff changeset
34 Already_Displayed : Boolean := False;
kono
parents:
diff changeset
35 -- Set True if Display called, used to avoid showing usage information
kono
parents:
diff changeset
36 -- more than once.
kono
parents:
diff changeset
37
kono
parents:
diff changeset
38 -------------
kono
parents:
diff changeset
39 -- Display --
kono
parents:
diff changeset
40 -------------
kono
parents:
diff changeset
41
kono
parents:
diff changeset
42 procedure Display is
kono
parents:
diff changeset
43 begin
kono
parents:
diff changeset
44 if Already_Displayed then
kono
parents:
diff changeset
45 return;
kono
parents:
diff changeset
46 else
kono
parents:
diff changeset
47 Already_Displayed := True;
kono
parents:
diff changeset
48 end if;
kono
parents:
diff changeset
49
kono
parents:
diff changeset
50 -- Usage line
kono
parents:
diff changeset
51
kono
parents:
diff changeset
52 Write_Str ("Usage: ");
kono
parents:
diff changeset
53 Write_Program_Name;
kono
parents:
diff changeset
54 Write_Char (' ');
kono
parents:
diff changeset
55 Write_Str ("switches lfile");
kono
parents:
diff changeset
56 Write_Eol;
kono
parents:
diff changeset
57 Write_Eol;
kono
parents:
diff changeset
58
kono
parents:
diff changeset
59 Display_Usage_Version_And_Help;
kono
parents:
diff changeset
60
kono
parents:
diff changeset
61 -- Line for @response_file
kono
parents:
diff changeset
62
kono
parents:
diff changeset
63 Write_Line
kono
parents:
diff changeset
64 (" @<resp_file> Get arguments from response file");
kono
parents:
diff changeset
65 Write_Eol;
kono
parents:
diff changeset
66
kono
parents:
diff changeset
67 -- Line for -aO switch
kono
parents:
diff changeset
68
kono
parents:
diff changeset
69 Write_Line
kono
parents:
diff changeset
70 (" -aOdir Specify library files search path");
kono
parents:
diff changeset
71
kono
parents:
diff changeset
72 -- Line for -aI switch
kono
parents:
diff changeset
73
kono
parents:
diff changeset
74 Write_Line
kono
parents:
diff changeset
75 (" -aIdir Specify source files search path");
kono
parents:
diff changeset
76
kono
parents:
diff changeset
77 -- Line for a switch
kono
parents:
diff changeset
78
kono
parents:
diff changeset
79 Write_Line
kono
parents:
diff changeset
80 (" -a Automatically initialize elaboration procedure");
kono
parents:
diff changeset
81
kono
parents:
diff changeset
82 -- Lines for -A switch
kono
parents:
diff changeset
83
kono
parents:
diff changeset
84 Write_Line
kono
parents:
diff changeset
85 (" -A Give list of ALI files in partition");
kono
parents:
diff changeset
86 Write_Line
kono
parents:
diff changeset
87 (" -A=file Write ALI file list to named file");
kono
parents:
diff changeset
88
kono
parents:
diff changeset
89 -- Line for -b switch
kono
parents:
diff changeset
90
kono
parents:
diff changeset
91 Write_Line
kono
parents:
diff changeset
92 (" -b Generate brief messages to stderr even if verbose mode "
kono
parents:
diff changeset
93 & "set");
kono
parents:
diff changeset
94
kono
parents:
diff changeset
95 -- Line for -c switch
kono
parents:
diff changeset
96
kono
parents:
diff changeset
97 Write_Line
kono
parents:
diff changeset
98 (" -c Check only, no generation of binder output file");
kono
parents:
diff changeset
99
kono
parents:
diff changeset
100 -- Line for -d switch
kono
parents:
diff changeset
101
kono
parents:
diff changeset
102 Write_Line
kono
parents:
diff changeset
103 (" -dnn[k|m] Default primary stack size = nn [kilo|mega] bytes");
kono
parents:
diff changeset
104
kono
parents:
diff changeset
105 -- Line for D switch
kono
parents:
diff changeset
106
kono
parents:
diff changeset
107 Write_Line
kono
parents:
diff changeset
108 (" -Dnn[k|m] Default secondary stack size = nn [kilo|mega] bytes");
kono
parents:
diff changeset
109
kono
parents:
diff changeset
110 -- Line for -e switch
kono
parents:
diff changeset
111
kono
parents:
diff changeset
112 Write_Line
kono
parents:
diff changeset
113 (" -e Output complete list of elaboration order dependencies");
kono
parents:
diff changeset
114
kono
parents:
diff changeset
115 -- Line for -E switch
kono
parents:
diff changeset
116
kono
parents:
diff changeset
117 Write_Line
kono
parents:
diff changeset
118 (" -Ea Store tracebacks in exception occurrences");
kono
parents:
diff changeset
119 Write_Line
kono
parents:
diff changeset
120 (" -Es Store tracebacks in exception occurrences,");
kono
parents:
diff changeset
121 Write_Line
kono
parents:
diff changeset
122 (" and enable symbolic tracebacks");
kono
parents:
diff changeset
123 Write_Line
kono
parents:
diff changeset
124 (" -E Same as -Ea");
kono
parents:
diff changeset
125
kono
parents:
diff changeset
126 -- Line for -f switch
kono
parents:
diff changeset
127
kono
parents:
diff changeset
128 Write_Line
kono
parents:
diff changeset
129 (" -ffile Force elaboration order from given file");
kono
parents:
diff changeset
130
kono
parents:
diff changeset
131 -- Line for -F switch
kono
parents:
diff changeset
132
kono
parents:
diff changeset
133 Write_Line
kono
parents:
diff changeset
134 (" -F Force checking of elaboration Flags");
kono
parents:
diff changeset
135
kono
parents:
diff changeset
136 -- Line for -h switch
kono
parents:
diff changeset
137
kono
parents:
diff changeset
138 Write_Line
kono
parents:
diff changeset
139 (" -h Output this usage (help) information");
kono
parents:
diff changeset
140
kono
parents:
diff changeset
141 -- Lines for -I switch
kono
parents:
diff changeset
142
kono
parents:
diff changeset
143 Write_Line
kono
parents:
diff changeset
144 (" -Idir Specify library and source files search path");
kono
parents:
diff changeset
145 Write_Line
kono
parents:
diff changeset
146 (" -I- Don't look for sources & library files in default "
kono
parents:
diff changeset
147 & "directory");
kono
parents:
diff changeset
148
kono
parents:
diff changeset
149 -- Line for -K switch
kono
parents:
diff changeset
150
kono
parents:
diff changeset
151 Write_Line
kono
parents:
diff changeset
152 (" -K Give list of linker options specified for link");
kono
parents:
diff changeset
153
kono
parents:
diff changeset
154 -- Line for -l switch
kono
parents:
diff changeset
155
kono
parents:
diff changeset
156 Write_Line
kono
parents:
diff changeset
157 (" -l Output chosen elaboration order");
kono
parents:
diff changeset
158
kono
parents:
diff changeset
159 -- Line of -L switch
kono
parents:
diff changeset
160
kono
parents:
diff changeset
161 Write_Line
kono
parents:
diff changeset
162 (" -Lxyz Library build: adainit/final renamed to xyzinit/final, "
kono
parents:
diff changeset
163 & "implies -n");
kono
parents:
diff changeset
164
kono
parents:
diff changeset
165 -- Line for -m switch
kono
parents:
diff changeset
166
kono
parents:
diff changeset
167 Write_Line
kono
parents:
diff changeset
168 (" -mnnn Limit number of detected errors/warnings to nnn "
kono
parents:
diff changeset
169 & "(1-999999)");
kono
parents:
diff changeset
170
kono
parents:
diff changeset
171 -- Line for -M switch
kono
parents:
diff changeset
172
kono
parents:
diff changeset
173 Write_Line
kono
parents:
diff changeset
174 (" -Mxyz Rename generated main program from main to xyz");
kono
parents:
diff changeset
175
kono
parents:
diff changeset
176 -- Line for -n switch
kono
parents:
diff changeset
177
kono
parents:
diff changeset
178 Write_Line
kono
parents:
diff changeset
179 (" -n No Ada main program (foreign main routine)");
kono
parents:
diff changeset
180
kono
parents:
diff changeset
181 -- Line for -nostdinc
kono
parents:
diff changeset
182
kono
parents:
diff changeset
183 Write_Line
kono
parents:
diff changeset
184 (" -nostdinc Don't look for source files in the system default "
kono
parents:
diff changeset
185 & "directory");
kono
parents:
diff changeset
186
kono
parents:
diff changeset
187 -- Line for -nostdlib
kono
parents:
diff changeset
188
kono
parents:
diff changeset
189 Write_Line
kono
parents:
diff changeset
190 (" -nostdlib Don't look for library files in the system default "
kono
parents:
diff changeset
191 & "directory");
kono
parents:
diff changeset
192
kono
parents:
diff changeset
193 -- Line for -o switch
kono
parents:
diff changeset
194
kono
parents:
diff changeset
195 Write_Line
kono
parents:
diff changeset
196 (" -o file Give the output file name (default is b~xxx.adb)");
kono
parents:
diff changeset
197
kono
parents:
diff changeset
198 -- Line for -O switch
kono
parents:
diff changeset
199
kono
parents:
diff changeset
200 Write_Line
kono
parents:
diff changeset
201 (" -O Give list of objects required for link");
kono
parents:
diff changeset
202
kono
parents:
diff changeset
203 -- Line for -p switch
kono
parents:
diff changeset
204
kono
parents:
diff changeset
205 Write_Line
kono
parents:
diff changeset
206 (" -p Pessimistic (worst-case) elaboration order");
kono
parents:
diff changeset
207
kono
parents:
diff changeset
208 -- Line for -P switch
kono
parents:
diff changeset
209
kono
parents:
diff changeset
210 Write_Line
kono
parents:
diff changeset
211 (" -P Generate binder file suitable for CodePeer");
kono
parents:
diff changeset
212
kono
parents:
diff changeset
213 -- Line for Q switch
kono
parents:
diff changeset
214
kono
parents:
diff changeset
215 Write_Line
kono
parents:
diff changeset
216 (" -Qnnn Generate nnn default-sized secondary stacks");
kono
parents:
diff changeset
217
kono
parents:
diff changeset
218 -- Line for -r switch
kono
parents:
diff changeset
219
kono
parents:
diff changeset
220 Write_Line
kono
parents:
diff changeset
221 (" -r List restrictions that could be applied to this "
kono
parents:
diff changeset
222 & "partition");
kono
parents:
diff changeset
223
kono
parents:
diff changeset
224 -- Line for -R switch
kono
parents:
diff changeset
225
kono
parents:
diff changeset
226 Write_Line
kono
parents:
diff changeset
227 (" -R List sources referenced in closure");
kono
parents:
diff changeset
228
kono
parents:
diff changeset
229 -- Line for -s switch
kono
parents:
diff changeset
230
kono
parents:
diff changeset
231 Write_Line
kono
parents:
diff changeset
232 (" -s Require all source files to be present");
kono
parents:
diff changeset
233
kono
parents:
diff changeset
234 -- Line for -S?? switch
kono
parents:
diff changeset
235
kono
parents:
diff changeset
236 Write_Line
kono
parents:
diff changeset
237 (" -S?? Sin/lo/hi/xx/ev Initialize_Scalars "
kono
parents:
diff changeset
238 & "invalid/low/high/hex/env var");
kono
parents:
diff changeset
239
kono
parents:
diff changeset
240 -- Line for -static
kono
parents:
diff changeset
241
kono
parents:
diff changeset
242 Write_Line
kono
parents:
diff changeset
243 (" -static Link against a static GNAT run time");
kono
parents:
diff changeset
244
kono
parents:
diff changeset
245 -- Line for -shared
kono
parents:
diff changeset
246
kono
parents:
diff changeset
247 Write_Line
kono
parents:
diff changeset
248 (" -shared Link against a shared GNAT run time");
kono
parents:
diff changeset
249
kono
parents:
diff changeset
250 -- Line for -t switch
kono
parents:
diff changeset
251
kono
parents:
diff changeset
252 Write_Line
kono
parents:
diff changeset
253 (" -t Tolerate time stamp and other consistency errors");
kono
parents:
diff changeset
254
kono
parents:
diff changeset
255 -- Line for -T switch
kono
parents:
diff changeset
256
kono
parents:
diff changeset
257 Write_Line
kono
parents:
diff changeset
258 (" -Tn Set time slice value to n milliseconds (n >= 0)");
kono
parents:
diff changeset
259
kono
parents:
diff changeset
260 -- Line for -u switch
kono
parents:
diff changeset
261
kono
parents:
diff changeset
262 Write_Line
kono
parents:
diff changeset
263 (" -un Enable dynamic stack analysis, with n results stored");
kono
parents:
diff changeset
264
kono
parents:
diff changeset
265 -- Line for -v switch
kono
parents:
diff changeset
266
kono
parents:
diff changeset
267 Write_Line
kono
parents:
diff changeset
268 (" -v Verbose mode. Error messages, header, summary output to "
kono
parents:
diff changeset
269 & "stdout");
kono
parents:
diff changeset
270
kono
parents:
diff changeset
271 -- Line for -V switch
kono
parents:
diff changeset
272
kono
parents:
diff changeset
273 Write_Line
kono
parents:
diff changeset
274 (" -Vkey=val Record bind-time variable key with value val");
kono
parents:
diff changeset
275 -- Line for -w switch
kono
parents:
diff changeset
276
kono
parents:
diff changeset
277 Write_Line
kono
parents:
diff changeset
278 (" -wx Warning mode. (x=s/e for suppress/treat as error)");
kono
parents:
diff changeset
279
kono
parents:
diff changeset
280 -- Line for -W switch
kono
parents:
diff changeset
281
kono
parents:
diff changeset
282 Write_Str
kono
parents:
diff changeset
283 (" -W? Wide character encoding method (");
kono
parents:
diff changeset
284
kono
parents:
diff changeset
285 for J in WC_Encoding_Method loop
kono
parents:
diff changeset
286 Write_Char (WC_Encoding_Letters (J));
kono
parents:
diff changeset
287
kono
parents:
diff changeset
288 if J = WC_Encoding_Method'Last then
kono
parents:
diff changeset
289 Write_Char (')');
kono
parents:
diff changeset
290 else
kono
parents:
diff changeset
291 Write_Char ('/');
kono
parents:
diff changeset
292 end if;
kono
parents:
diff changeset
293 end loop;
kono
parents:
diff changeset
294
kono
parents:
diff changeset
295 Write_Eol;
kono
parents:
diff changeset
296
kono
parents:
diff changeset
297 -- Line for -x switch
kono
parents:
diff changeset
298
kono
parents:
diff changeset
299 Write_Line
kono
parents:
diff changeset
300 (" -x Exclude source files (check object consistency only)");
kono
parents:
diff changeset
301
kono
parents:
diff changeset
302 -- Line for -X switch
kono
parents:
diff changeset
303
kono
parents:
diff changeset
304 Write_Line
kono
parents:
diff changeset
305 (" -Xnnn Default exit status value = nnn");
kono
parents:
diff changeset
306
kono
parents:
diff changeset
307 -- Line for -y switch
kono
parents:
diff changeset
308
kono
parents:
diff changeset
309 Write_Line
kono
parents:
diff changeset
310 (" -y Enable leap seconds");
kono
parents:
diff changeset
311
kono
parents:
diff changeset
312 -- Line for -z switch
kono
parents:
diff changeset
313
kono
parents:
diff changeset
314 Write_Line
kono
parents:
diff changeset
315 (" -z No main subprogram (zero main)");
kono
parents:
diff changeset
316
kono
parents:
diff changeset
317 -- Line for -Z switch
kono
parents:
diff changeset
318
kono
parents:
diff changeset
319 Write_Line
kono
parents:
diff changeset
320 (" -Z Zero formatting in auxiliary outputs (-e, -K, -l, -R)");
kono
parents:
diff changeset
321
kono
parents:
diff changeset
322 -- Line for --RTS
kono
parents:
diff changeset
323
kono
parents:
diff changeset
324 Write_Line
kono
parents:
diff changeset
325 (" --RTS=dir Specify the default source and object search path");
kono
parents:
diff changeset
326
kono
parents:
diff changeset
327 -- Line for sfile
kono
parents:
diff changeset
328
kono
parents:
diff changeset
329 Write_Line
kono
parents:
diff changeset
330 (" lfile Library file names");
kono
parents:
diff changeset
331 end Display;
kono
parents:
diff changeset
332
kono
parents:
diff changeset
333 end Bindusg;