Mercurial > hg > CbC > CbC_gcc
diff 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 |
line wrap: on
line diff
--- a/gcc/ada/doc/gnat_ugn/platform_specific_information.rst Thu Oct 25 07:37:49 2018 +0900 +++ b/gcc/ada/doc/gnat_ugn/platform_specific_information.rst Thu Feb 13 11:34:05 2020 +0900 @@ -49,15 +49,15 @@ Most programs should experience a substantial speed improvement by being compiled with a ZCX run-time. This is especially true for -tasking applications or applications with many exception handlers.} +tasking applications or applications with many exception handlers. +Note however that the ZCX run-time does not support asynchronous abort +of tasks (``abort`` and ``select-then-abort`` constructs) and will instead +implement abort by polling points in the runtime. You can also add additional +polling points explicitly if needed in your application via ``pragma +Abort_Defer``. This section summarizes which combinations of threads and exception support are supplied on various GNAT platforms. -It then shows how to select a particular library either -permanently or temporarily, -explains the properties of (and tradeoffs among) the various threads -libraries, and provides some additional -information about several specific platforms. .. _Summary_of_Run-Time_Configurations: @@ -260,7 +260,7 @@ platforms. -.. only:: PRO or GPL +.. only:: PRO .. rubric:: Installing from the Command Line @@ -273,32 +273,15 @@ line you should pass parameter :switch:`/S` (and, optionally, :switch:`/D=<directory>`) as command-line arguments. -.. only:: PRO - For example, for an unattended installation of - GNAT 7.0.2 into the default directory - ``C:\\GNATPRO\\7.0.2`` you would run: - - :: - - gnatpro-7.0.2-i686-pc-mingw32-bin.exe /S - - To install into a custom directory, say, ``C:\\TOOLS\\GNATPRO\\7.0.2``: - - :: - - gnatpro-7.0.2-i686-pc-mingw32-bin /S /D=C:\TOOLS\GNATPRO\7.0.2 - -.. only:: GPL - - For example, for an unattended installation of - GNAT 2012 into ``C:\\GNAT\\2012``: - - :: - - gnat-gpl-2012-i686-pc-mingw32-bin /S /D=C:\GNAT\2012 - -.. only:: PRO or GPL + GNAT 19.2 into the default directory :file:`C:\\GNATPRO\\19.2` you + would run:: + + gnatpro-19.2-x86-windows-bin /S + + To install into a custom directory, say, :file:`C:\\TOOLS\\GNATPRO\\19.2`:: + + gnatpro-19.2-x86-windows-bin /S /D=C:\TOOLS\GNATPRO\19.2 You can use the same syntax for all installers. @@ -306,7 +289,6 @@ associations, so such activities need to be done by hand. - .. _Using_GNAT_on_Windows: Using GNAT on Windows @@ -488,6 +470,49 @@ Ada.Command_Line.Argument (1) -> "'*.txt'" +Windows Socket Timeouts +----------------------- + +Microsoft Windows desktops older than ``8.0`` and Microsoft Windows Servers +older than ``2019`` set a socket timeout 500 milliseconds longer than the value +set by setsockopt with ``SO_RCVTIMEO`` and ``SO_SNDTIMEO`` options. The GNAT +runtime makes a correction for the difference in the corresponding Windows +versions. For Windows Server starting with version ``2019``, the user must +provide a manifest file for the GNAT runtime to be able to recognize that +the Windows version does not need the timeout correction. The manifest file +should be located in the same directory as the executable file, and its file +name must match the executable name suffixed by ``.manifest``. For example, +if the executable name is :file:`sock_wto.exe`, then the manifest file name +has to be :file:`sock_wto.exe.manifest`. The manifest file must contain at +least the following data:: + + <?xml version="1.0" encoding="UTF-8" standalone="yes"?> + <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> + <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> + <application> + <!-- Windows Vista --> + <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> + <!-- Windows 7 --> + <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> + <!-- Windows 8 --> + <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> + <!-- Windows 8.1 --> + <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> + <!-- Windows 10 --> + <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/> + </application> + </compatibility> + </assembly> + +Without the manifest file, the socket timeout is going to be overcorrected on +these Windows Server versions and the actual time is going to be 500 +milliseconds shorter than what was set with GNAT.Sockets.Set_Socket_Option. +Note that on Microsoft Windows versions where correction is necessary, there +is no way to set a socket timeout shorter than 500 ms. If a socket timeout +shorter than 500 ms is needed on these Windows versions, a call to +Check_Selector should be added before any socket read or write operations. + + .. _Mixed-Language_Programming_on_Windows: Mixed-Language Programming on Windows