Mercurial > hg > CbC > CbC_gcc
comparison gcc/ada/doc/gnat_ugn/platform_specific_information.rst @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 84e7813d76e9 |
children |
comparison
equal
deleted
inserted
replaced
131:84e7813d76e9 | 145:1830386684a0 |
---|---|
47 the set of handlers | 47 the set of handlers |
48 | 48 |
49 Most programs should experience a substantial speed improvement by | 49 Most programs should experience a substantial speed improvement by |
50 being compiled with a ZCX run-time. | 50 being compiled with a ZCX run-time. |
51 This is especially true for | 51 This is especially true for |
52 tasking applications or applications with many exception handlers.} | 52 tasking applications or applications with many exception handlers. |
53 Note however that the ZCX run-time does not support asynchronous abort | |
54 of tasks (``abort`` and ``select-then-abort`` constructs) and will instead | |
55 implement abort by polling points in the runtime. You can also add additional | |
56 polling points explicitly if needed in your application via ``pragma | |
57 Abort_Defer``. | |
53 | 58 |
54 This section summarizes which combinations of threads and exception support | 59 This section summarizes which combinations of threads and exception support |
55 are supplied on various GNAT platforms. | 60 are supplied on various GNAT platforms. |
56 It then shows how to select a particular library either | |
57 permanently or temporarily, | |
58 explains the properties of (and tradeoffs among) the various threads | |
59 libraries, and provides some additional | |
60 information about several specific platforms. | |
61 | 61 |
62 .. _Summary_of_Run-Time_Configurations: | 62 .. _Summary_of_Run-Time_Configurations: |
63 | 63 |
64 Summary of Run-Time Configurations | 64 Summary of Run-Time Configurations |
65 ---------------------------------- | 65 ---------------------------------- |
258 | 258 |
259 This section describes topics that are specific to the Microsoft Windows | 259 This section describes topics that are specific to the Microsoft Windows |
260 platforms. | 260 platforms. |
261 | 261 |
262 | 262 |
263 .. only:: PRO or GPL | 263 .. only:: PRO |
264 | 264 |
265 .. rubric:: Installing from the Command Line | 265 .. rubric:: Installing from the Command Line |
266 | 266 |
267 By default the GNAT installers display a GUI that prompts you to enter | 267 By default the GNAT installers display a GUI that prompts you to enter |
268 the installation path and similar information, and then guides you through the | 268 the installation path and similar information, and then guides you through the |
271 | 271 |
272 In order to install one of the GNAT installers from the command | 272 In order to install one of the GNAT installers from the command |
273 line you should pass parameter :switch:`/S` (and, optionally, | 273 line you should pass parameter :switch:`/S` (and, optionally, |
274 :switch:`/D=<directory>`) as command-line arguments. | 274 :switch:`/D=<directory>`) as command-line arguments. |
275 | 275 |
276 .. only:: PRO | |
277 | |
278 For example, for an unattended installation of | 276 For example, for an unattended installation of |
279 GNAT 7.0.2 into the default directory | 277 GNAT 19.2 into the default directory :file:`C:\\GNATPRO\\19.2` you |
280 ``C:\\GNATPRO\\7.0.2`` you would run: | 278 would run:: |
281 | 279 |
282 :: | 280 gnatpro-19.2-x86-windows-bin /S |
283 | 281 |
284 gnatpro-7.0.2-i686-pc-mingw32-bin.exe /S | 282 To install into a custom directory, say, :file:`C:\\TOOLS\\GNATPRO\\19.2`:: |
285 | 283 |
286 To install into a custom directory, say, ``C:\\TOOLS\\GNATPRO\\7.0.2``: | 284 gnatpro-19.2-x86-windows-bin /S /D=C:\TOOLS\GNATPRO\19.2 |
287 | |
288 :: | |
289 | |
290 gnatpro-7.0.2-i686-pc-mingw32-bin /S /D=C:\TOOLS\GNATPRO\7.0.2 | |
291 | |
292 .. only:: GPL | |
293 | |
294 For example, for an unattended installation of | |
295 GNAT 2012 into ``C:\\GNAT\\2012``: | |
296 | |
297 :: | |
298 | |
299 gnat-gpl-2012-i686-pc-mingw32-bin /S /D=C:\GNAT\2012 | |
300 | |
301 .. only:: PRO or GPL | |
302 | 285 |
303 You can use the same syntax for all installers. | 286 You can use the same syntax for all installers. |
304 | 287 |
305 Note that unattended installations don't modify system path, nor create file | 288 Note that unattended installations don't modify system path, nor create file |
306 associations, so such activities need to be done by hand. | 289 associations, so such activities need to be done by hand. |
307 | |
308 | 290 |
309 | 291 |
310 .. _Using_GNAT_on_Windows: | 292 .. _Using_GNAT_on_Windows: |
311 | 293 |
312 Using GNAT on Windows | 294 Using GNAT on Windows |
484 Ada.Command_Line.Argument (1) -> "*.txt" | 466 Ada.Command_Line.Argument (1) -> "*.txt" |
485 | 467 |
486 and:: | 468 and:: |
487 | 469 |
488 Ada.Command_Line.Argument (1) -> "'*.txt'" | 470 Ada.Command_Line.Argument (1) -> "'*.txt'" |
471 | |
472 | |
473 Windows Socket Timeouts | |
474 ----------------------- | |
475 | |
476 Microsoft Windows desktops older than ``8.0`` and Microsoft Windows Servers | |
477 older than ``2019`` set a socket timeout 500 milliseconds longer than the value | |
478 set by setsockopt with ``SO_RCVTIMEO`` and ``SO_SNDTIMEO`` options. The GNAT | |
479 runtime makes a correction for the difference in the corresponding Windows | |
480 versions. For Windows Server starting with version ``2019``, the user must | |
481 provide a manifest file for the GNAT runtime to be able to recognize that | |
482 the Windows version does not need the timeout correction. The manifest file | |
483 should be located in the same directory as the executable file, and its file | |
484 name must match the executable name suffixed by ``.manifest``. For example, | |
485 if the executable name is :file:`sock_wto.exe`, then the manifest file name | |
486 has to be :file:`sock_wto.exe.manifest`. The manifest file must contain at | |
487 least the following data:: | |
488 | |
489 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> | |
490 <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> | |
491 <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> | |
492 <application> | |
493 <!-- Windows Vista --> | |
494 <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> | |
495 <!-- Windows 7 --> | |
496 <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> | |
497 <!-- Windows 8 --> | |
498 <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> | |
499 <!-- Windows 8.1 --> | |
500 <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> | |
501 <!-- Windows 10 --> | |
502 <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/> | |
503 </application> | |
504 </compatibility> | |
505 </assembly> | |
506 | |
507 Without the manifest file, the socket timeout is going to be overcorrected on | |
508 these Windows Server versions and the actual time is going to be 500 | |
509 milliseconds shorter than what was set with GNAT.Sockets.Set_Socket_Option. | |
510 Note that on Microsoft Windows versions where correction is necessary, there | |
511 is no way to set a socket timeout shorter than 500 ms. If a socket timeout | |
512 shorter than 500 ms is needed on these Windows versions, a call to | |
513 Check_Selector should be added before any socket read or write operations. | |
489 | 514 |
490 | 515 |
491 .. _Mixed-Language_Programming_on_Windows: | 516 .. _Mixed-Language_Programming_on_Windows: |
492 | 517 |
493 Mixed-Language Programming on Windows | 518 Mixed-Language Programming on Windows |