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