summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Cygwin: FIFO: dup/fork/exec: make sure child starts unlockedKen Brown2020-05-081-8/+23
| | | | | There can be deadlocks if the child starts with its fifo_client_lock in the locked state.
* Cygwin: FIFO: honor the flags argument in dupKen Brown2020-05-081-27/+33
| | | | Also improve the error handling.
* Cygwin: FIFO: remove the arm methodKen Brown2020-05-082-32/+3
| | | | | There's no reason to check for errors when we set read_ready or write_ready. We don't do that for other events.
* Cygwin: FIFO: simplify the listen_client_thread codeKen Brown2020-05-082-74/+47
| | | | | | | | | | | | | | | | | | Always return 0; no one is doing anything with the return value anyway. Remove the return value from stop_listen_client. Make the connection event auto-reset, so that we don't have to reset it later. Simplify the process of connecting a bogus client when thread termination is signaled. Make some failures fatal. Remove the unnecessary extra check for thread termination near the end of listen_client_thread.
* Cygwin: FIFO: change the fifo_client_connect_state enumKen Brown2020-05-082-17/+22
| | | | | | | | | | | | | | | | | Make the values correspond to the possible return values of fifo_client_handler::pipe_state(). When cleaning up the fc_handler list in listen_client_thread(), don't delete handlers in the fc_closing state. I think the pipe might still have input to be read in that case. Set the state to fc_closing later in the same function if a connection is made and the status returned by NtFsControlFile is STATUS_PIPE_CLOSING. In raw_read, don't error out if NtReadFile returns an unexpected status; just set the state of that handler to fc_error. One writer in a bad state doesn't justify giving up on reading.
* Cygwin: FIFO: simplify the fifo_client_handler structureKen Brown2020-05-082-65/+19
| | | | | | Replace the 'fhandler_base *' member by a HANDLE to the server side of the Windows named pipe instance. Make the corresponding simplifications throughout.
* Cygwin: FIFO: minor change - use NtCloseKen Brown2020-05-081-16/+16
| | | | | Replace CloseHandle by NtClose since all handles are created by NT functions.
* Revert "localtime define _DIAGASSERT" and followups affecting localtime.ccCorinna Vinschen2020-05-041-302/+236
| | | | | | | | | | | | | | | This reverts commits 453b6d17bf0581e55258c5eb6dc7afbad1927cab, 489a47d6036660a6cbab1addfb2b7678c0de8bf2, 3003c3dacd157c11f5e035bc18bdd30631800720, 9e29639ca01208a4a8bac5b9d0f6491b34b1017e, a40701c7dc9970457a19728e371c71e7501057e7, 0a41de2725dbf2f325e55016d85d76560845ff8d, b8aa5f7a0fe70a9a53fe4019227271a78758ae67, 0f4bda879283eaf013f86dd80e5588721a811ea0, 65bf580752db7ac01ecae19dc56aa26ea34f5e47, 3f0c2ac96e7c493bbfc2bc1b0c1274445b756a9d, 76d4d40b8b23d046473a5946cf6b83faa36ae7be, f2e06d8af5f390d81b64375a69ca834ca19d6029.
* setup_pseudoconsole(): handle missing/incorrect helper gracefullyJohannes Schindelin2020-05-041-1/+17
| | | | | | | | | | | | | When `cygwin-console-helper.exe` is either missing, or corresponds to a different Cygwin runtime, we currently wait forever while setting up access to the pseudo console, even long after the process is gone that was supposed to signal that it set up access to the pseudo console. Let's handle that more gracefully: if the process exited without signaling, we cannot use the pseudo console. In that case, let's just fall back to not using it. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* localtime define _DIAGASSERTCorinna Vinschen2020-04-291-2/+4
|
* localtime 1.82Corinna Vinschen2020-04-281-22/+15
|
* localtime 1.81Corinna Vinschen2020-04-281-104/+101
|
* localtime 1.80Corinna Vinschen2020-04-281-4/+12
|
* localtime 1.79Corinna Vinschen2020-04-281-3/+3
|
* localtime 1.78Corinna Vinschen2020-04-281-64/+68
|
* localtime 1.77Corinna Vinschen2020-04-281-3/+3
|
* localtime 1.76Corinna Vinschen2020-04-281-3/+3
|
* localtime 1.75Corinna Vinschen2020-04-281-3/+8
|
* localtime 1.74Corinna Vinschen2020-04-281-88/+133
|
* localtime 1.73Corinna Vinschen2020-04-271-7/+17
|
* Cygwin: localtime.cc: reformat for easier patchingCorinna Vinschen2020-04-271-8/+10
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: add release message for fixed floppy bugsCorinna Vinschen2020-04-241-0/+4
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: raw disk I/O: lock floppys as wellCorinna Vinschen2020-04-241-2/+2
| | | | | | | | | The workaround to access the full disk required since Vista and described in http://support.microsoft.com/kb/942448 (NOT ACCESSIBLE at the time of writing this commit message) is required on floppy drives as well. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: raw disk I/O: Fix return value in error caseCorinna Vinschen2020-04-241-3/+4
| | | | | | | | | | | | | | | The cast to generate the return value uses a DWORD variable as test and set value. The error case is the constant -1. Given the type of the other half of the conditioal expression, -1 is cast to DWORD as well. On 64 bit, this results in the error case returning a 32 bit -1 value which is equivalent to (ssize_t) 4294967295 rather than (ssize_t) -1. Add a fixing cast. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: file I/O: make sure to treat write return value as ssize_tCorinna Vinschen2020-04-241-3/+3
| | | | | | | | The return type of fhandler write methods is ssize_t. Don't use an int to store the return value, use ssize_t. Use ptrdiff_t for the buffer size. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: accounts: Report unrecognized db_* nsswitch.conf keywordsDavid Macek via Cygwin-patches2020-04-221-0/+2
| | | | Signed-off-by: David Macek <david.macek.0@gmail.com>
* Cygwin: accounts: Don't keep old schemes when parsing nsswitch.confDavid Macek via Cygwin-patches2020-04-222-4/+8
| | | | | | | | | | | | | | | | | The implicit assumption seemed to be that any subsequent occurence of the same setting in nsswitch.conf is supposed to rewrite the previous ones completely. This was not the case if the third or any further schema was previously defined and the last line defined less than that (but at least 2), for example: ``` db_home: windows cygwin /myhome/%U db_home: cygwin desc ``` Let's document this behavior as well. Signed-off-by: David Macek <david.macek.0@gmail.com>
* Cygwin: accounts: Unify nsswitch.conf db_* defaultsDavid Macek via Cygwin-patches2020-04-222-21/+11
| | | | Signed-off-by: David Macek <david.macek.0@gmail.com>
* Cygwin: Add David Macek to CONTRIBUTORSCorinna Vinschen2020-04-211-0/+1
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: symlinks: fix WSL symlink creation if cygdrive prefix is /Corinna Vinschen2020-04-211-4/+6
| | | | | | | | | | | | | | | | | | If the cygdrive prefix is /, then the following happens right now: $ ln -s /tmp/foo . $ ls -l foo lrwxrwxrwx 1 user group 12 Apr 15 23:44 foo -> /mnt/tmp/foo Fix this by skipping cygdrive prefix conversion to WSL drive prefix "/mnt", if the cygdrive prefix is just "/". There's no satisfying way to do the right thing all the time in this case anyway. For a description and the alternatives, see https://cygwin.com/pipermail/cygwin-developers/2020-April/011859.html Also, fix a typo in a comment. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* cygheap_pwdgrp: Handle invalid db_* entries correctlyDavid Macek via Cygwin-patches2020-04-171-1/+4
| | | | | | | | If the first scheme in db_* was invalid, the code would think there were no schemes specified and replace the second scheme with NSS_SCHEME_DESC. Signed-off-by: David Macek <david.macek.0@gmail.com>
* Cygwin: faq: disable outdated "sshd in domain" faqCorinna Vinschen2020-04-141-0/+2
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* proc_cpuinfo: Add PPIN support for AMDBrian Inglis2020-04-141-0/+1
| | | | | | Newer AMD CPUs support a feature called protected processor identification number (PPIN). This feature can be detected via CPUID_Fn80000008_EBX[23].
* Cygwin: utils: override definition of PMEM_EXTENDED_PARAMETERCorinna Vinschen2020-04-072-0/+2
| | | | | | | | | | PMEM_EXTENDED_PARAMETER is defined in the local winlean.h as long as mingw-w64 doesn't define it (in winnt.h). ntdll.h needs the definition for declaring NtMapViewOfSectionEx. cygpath.cc and ps.cc both include ntdll.h but not winlean.h, so they complain about the missing definition. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: mmap_alloc: fix comment to document using the extended memory APICorinna Vinschen2020-04-071-10/+13
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: threads: use extended memory API if availableCorinna Vinschen2020-04-071-3/+48
| | | | | | | | | | | | | So far Cygwin was jumping through hoops to restrict memory allocation to specific regions. With the advent of VirtualAlloc2 and MapViewOfFile3 (and it's NT counterpart NtMapViewOfSectionEx), we can skip searching for free space in the specific regions and just call these functions and let the OS do the job more efficiently and less racy. Use VirtualAlloc2 on W10 1803 and later in thread stack allocation. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: mmap: use extended memory API if availableCorinna Vinschen2020-04-071-10/+74
| | | | | | | | | | | | | So far Cygwin was jumping through hoops to restrict memory allocation to specific regions. With the advent of VirtualAlloc2 and MapViewOfFile3 (and it's NT counterpart NtMapViewOfSectionEx), we can skip searching for free space in the specific regions and just call these functions and let the OS do the job more efficiently and less racy. Use the new functions on W10 1803 and later in mmap. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: memory: declare extended memory APICorinna Vinschen2020-04-075-0/+69
| | | | | | | | | | | | | Windows 10 1803 introduced an extended memory API allowing to specify memory regions allocations are to be taken off. In preparation of using this API, define the struct MEM_EXTENDED_PARAMETER and friends. Declare and allow to autoload the functions VirtualAlloc2 and NtMapViewOfSectionEx. Introduce a wincap flag has_extended_mem_api. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: threads: add missing include of mmap_alloc.hCorinna Vinschen2020-04-071-0/+1
| | | | | | This is needed for using mmap_alloc.alloc() Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: threads: lower thread size from pool to 256 MegsCorinna Vinschen2020-04-071-1/+1
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: threads: use mmap area to fulfill requests for big stacksCorinna Vinschen2020-04-071-4/+6
| | | | | | | Otherwise big stacks have a higher probability to collide with randomized PEBs and TEBs after fork. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: symlinks: Allow traversing WSL symlinksCorinna Vinschen2020-04-051-0/+6
| | | | | | | | | | | | Unfortunately Windows doesn't understand WSL symlinks, despite being a really easy job. NT functions trying to access paths traversing WSL symlinks return the status code STATUS_IO_REPARSE_TAG_NOT_HANDLED. Handle this status code same as STATUS_OBJECT_PATH_NOT_FOUND in symlink_info::check to align behaviour to traversing paths with other non-NTFS type symlinks. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: docs: revamp docs explaining symlinksCorinna Vinschen2020-04-034-77/+146
| | | | | | | The descriptions of symlink handling are a bit dated, so revamp them and add the new WSL symlink type. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: symlinks: create WSL symlinks on supporting filesystemsCorinna Vinschen2020-04-033-26/+105
| | | | | | | | | WSL symlinks are reparse points containing a POSIX path in UTF-8. On filesystems supporting reparse points, use this symlink type. On other filesystems, or in case of error, fall back to the good old plain SYSTEM file. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: symlinks: fix WSL symlinks pointing to /mntCorinna Vinschen2020-04-021-15/+35
| | | | | | | | | | Commit 4a36897af392 allowed to convert /mnt/<drive> path prefixes to Cygwin cygdrive prefixes on the fly. However, the patch neglected WSL symlinks pointing to the /mnt directory. Rearrange path conversion so /mnt is converted to the cygdrive prefix path itself. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* winsup/cygwin: remove defines added in mingw-w64 v7.0.0Biswapriyo Nath2020-04-013-17/+0
| | | | Signed-off-by: Biswapriyo Nath <nathbappai@gmail.com>
* Cygwin: symlinks: support WSL symlinksCorinna Vinschen2020-03-273-0/+83
| | | | | | | | Treat WSL symlinks just like other symlinks. Convert absolute paths pointing to Windows drives via /mnt/<driveletter> to Windows-style paths <driveletter>: Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: serial: fix GCC warningCorinna Vinschen2020-03-261-1/+1
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* newlib/libm/math: Make pow/powf return qnan for snan argKeith Packard via Newlib2020-03-262-7/+16
| | | | | | | | The IEEE spec for pow only has special case for x**0 and 1**y when x/y are quiet NaN. For signaling NaN, the general case applies and these functions should signal the invalid exception and return a quiet NaN. Signed-off-by: Keith Packard <keithp@keithp.com>
* newlib/libm/common: Don't re-convert float to bits in modf/modffKeith Packard via Newlib2020-03-262-15/+5
| | | | | | | | These functions shared a pattern of re-converting the argument to bits when returning +/-0. Skip that as the initial conversion still has the sign bit. Signed-off-by: Keith Packard <keithp@keithp.com>