aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-09-05Cygwin: pty: Fix select() with pseudo console support.Takashi Yano4-15/+207
- select() did not work correctly when both read and except are polled simultaneously for the same fd and the r/w pipe is switched to pseudo console side. This patch fixes this isseu.
2019-09-05Cygwin: pty: Disable clear screen on new pty if TERM=dumb or emacs*.Takashi Yano3-5/+16
- Pseudo console support introduced by commit 169d65a5774acc76ce3f3feeedcbae7405aa9b57 shows garbage ^[[H^[[J in some of emacs screens. These screens do not handle ANSI escape sequences. Therefore, clear screen is disabled on these screens.
2019-09-04Cygwin: pty: Add a workaround for ^C handling.Takashi Yano2-1/+6
- Pseudo console support introduced by commit 169d65a5774acc76ce3f3feeedcbae7405aa9b57 sometimes cause random crash or freeze by pressing ^C while cygwin and non-cygwin processes are executed simultaneously in the same pty. This patch is a workaround for this issue.
2019-09-04Cygwin: pty: Limit API hook to the program linked with the APIs.Takashi Yano4-71/+66
- API hook used for pseudo console support causes slow down. This patch limits API hook to only program which is linked with the corresponding APIs. Normal cygwin program is not linked with such APIs (such as WriteFile, etc...) directly, therefore, no slow down occurs. However, console access by cygwin.dll itself cannot switch the r/w pipe to pseudo console side. Therefore, the code to switch it forcely to pseudo console side is added to smallprint.cc and strace.cc.
2019-09-04Cygwin: pty: Fix state management for pseudo console support.Takashi Yano6-254/+289
- Pseudo console support introduced by commit 169d65a5774acc76ce3f3feeedcbae7405aa9b57 has some bugs which cause mismatch between state variables and real pseudo console state regarding console attaching and r/w pipe switching. This patch fixes this issue by redesigning the state management.
2019-09-04Cygwin: pty: Move function hook_api() into hookapi.cc.Takashi Yano3-44/+35
- PTY uses Win32 API hook for pseudo console suppot. The function hook_api() is used for this purpose and defined in fhandler_tty.cc previously. This patch moves it into hookapi.cc.
2019-09-04Cygwin: pty: Speed up a little hooked Win32 API for pseudo console.Takashi Yano1-1/+3
- Some Win32 APIs are hooked in pty code for pseudo console support. This causes slow down. This patch improves speed a little.
2019-09-04Cygwin: pty: Code cleanupTakashi Yano1-28/+0
- Cleanup the code which is commented out by #if 0 regarding pseudo console. - Remove #if 1 for experimental code which seems to be stable.
2019-09-04Adjust nios2 and m68k semihosting for sys/stat.h changes.Sandra Loosemore4-12/+12
Commit 72ff9acad2ab54e80a19ddaec0106065c817e3f6 caused st_atime, st_ctime, and st_mtime to be defined as macros. This collided with use of these identifiers as field names in struct gdb_stat (which represents the GDB RSP encoding of struct stat) in libgloss semihosting support for nios2 and m68k. This patch renames the affected fields of struct gdb_stat. Signed-off-by: Sandra Loosemore <sandra@codesourcery.com>
2019-09-03Cygwin: sys/wait.h: Add _wait prototype to avoid compiler warningCorinna Vinschen1-0/+4
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2019-09-03fe_dfl_env.c: Fix typo in commentJoel Sherrill1-1/+1
2019-09-03riscv/include/fenv.h: Use shared fenv.h.Joel Sherrill1-42/+0
libc/include/fenv.h was a direct copy of this file.
2019-08-29Cygwin: add W10 pseudo console support to release notesCorinna Vinschen2-6/+18
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2019-08-29Cygwin: pty: add pseudo console support.Takashi Yano12-55/+2016
- Support pseudo console in PTY. Pseudo console is a new feature in Windows 10 1809, which provides console APIs on virtual terminal. With this patch, native console applications can work in PTYs such as mintty, ssh, gnu screen or tmux.
2019-08-26Cygwin: get_posix_access: avoid negative subscriptKen Brown1-4/+4
Don't refer to lacl[pos] unless we know that pos >= 0.
2019-08-20Fix regression in visium caused by sys/stat.h changeJeff Law2-6/+6
2019-08-20Cygwin: math: Properly propagate input NANs in a few functionsMartin Storsjö6-8/+20
While the C99 standard doesn't explicitly require this, the standard says it is recommended (F.9.13). Signed-off-by: Martin Storsjö <martin@martin.st>
2019-08-20Cygwin: math: Fix cosh(-INFINITY) to return +INFINITYMartin Storsjö1-1/+1
Signed-off-by: Martin Storsjö <martin@martin.st>
2019-08-20Cygwin: math: Fix the return value for tgammal for zero and negative integersMartin Storsjö1-2/+5
For zero, it should return HUGE_VAL (INFINITY), for negative integers, it should return NAN. Signed-off-by: Martin Storsjö <martin@martin.st>
2019-08-19Revert previous change to sys/stat.h and fix cris libglossJeff Johnston2-15/+12
- revert previous fix which altered sys/stat.h - fix libgloss/cris/gensyscalls to undef st_atime, st_mtime, and st_ctime macros which cannot be used with new_stat structure
2019-08-19Fix regression in cris-elf caused by sys/stat.h changeJeff Johnston1-2/+11
2019-08-18Cygwin: select: revamp non-polling code for signalfdCorinna Vinschen8-111/+40
Rather than waiting for signalfd_select_wait in a thread, which is racy, create a global event "my_pendingsigs_evt" which is set and reset by wait_sig depending only on the fact if blocked signals are pending or not. This in turn allows to WFMO on this event in select as soon as signalfds are present in the read descriptor set. Select's peek and verify will then check if one of the present signalfds is affected. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2019-08-17Revert "Cygwin: fix potential SEGV in sigwaitinfo/signalfd scenario"Corinna Vinschen2-17/+3
This reverts commit 92115a83a4579635e253be2887d3706d28b477fd. This was utterly wrong.
2019-08-16stat.h: use POSIX-required timefields throughoutCorinna Vinschen1-16/+6
...except in certain SysV R4 cases for backward compat. This is probably not required anymore, but it doesn't hurt to keep it in.
2019-08-15fenv: Include documentation in generated .info fileJoel Sherrill5-2/+49
2019-08-15Cygwin: ldd: Try harder to get dll namesMark Geisert2-2/+44
Borrow a trick from strace to lessen occurrences of "??? => ???" in ldd output. Specifically, if the module name isn't found in the usual place in the mapped image, use the file handle we have to look up the name.
2019-08-15Cygwin: console: Fix the condition to interrupt select() by SIGWINCHTakashi Yano1-1/+3
- Add code so that select() is not interrupted by SIGWINCH if it is ignored (SIG_IGN or SIG_DFL).
2019-08-15Cygwin: console: Fix workaround for horizontal tab positionTakashi Yano1-18/+29
- The workaround commit 33a21904a702191cebf0e81b4deba2dfa10a406c does not work as expected if window size is changed while screen is alternated. Fixed.
2019-08-14memmem.c and strstr.c: do not require -std=c99Giacomo Tesio2-5/+10
2019-08-13fenv: Update makedocbook for eae68bfcJon Turney1-1/+3
Teach makedocbook how to handle some new things seen in the makedoc markup since eae68bfc: - 'link with' lines appearing in SYNOPSIS sections Also, don't raise a NoneType exception when there's something we don't know how to handle in a SYNOPSIS section, just exit.
2019-08-13fenv: Fix typo-ed variable name in documentationJon Turney1-1/+1
2019-08-13fenv: Fix mangled makedoc markupJon Turney4-8/+8
See makedoc.c:657: Variables are marked up as '<[foo]>'. Code is marked up as '<<foo>>'.
2019-08-13fenv: fe_dfl_env.c doesn't contain any documentationJon Turney2-2/+2
fe_dfl_env.c doesn't contain any documentation, so drop it from makedoc processing.
2019-08-13Cygwin: fix potential SEGV in sigwaitinfo/signalfd scenarioCorinna Vinschen2-3/+17
On sigwaitinfo or reading from a signalfd, signal processing sets up signal handling via sigdelayed even if the handler address is NULL. This doesn't have any impact on sigwaitinfo scenarios (or at least, I wasn't able to come up with a reproducer) but it breaks signalfd scenarios, where eventually a call to call_signal_handler from sigdelayed will try to call the NULL function. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2019-08-12sched.h: Declare affinity functions only on targets supporting themCorinna Vinschen1-0/+6
2019-08-12Cygwin: ps: fix a compiler warningCorinna Vinschen1-2/+2
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2019-08-12Cygwin: console: Fix cursor position restore after screen alternation.Takashi Yano1-0/+3
- If screen is alternated on console, cursor position is not restored correctly in the case of xterm compatible mode is enabled. For example, the shell prompt is shown at incorrect position after using vim. This patch fixes this problem.
2019-08-12Cygwin: console: Add workaround for windows xterm compatible mode bug.Takashi Yano1-0/+19
- The horizontal tab positions are broken after resizing console window. This seems to be a bug of xterm compatible mode of windows console. This workaround fixes this problem.
2019-08-12Cygwin: console: Fix deadlock at calling fork().Takashi Yano1-2/+6
- Calling fork() on console occasionally falls into deadlock. The reason is not clear, however, this patch fixes this problem anyway.
2019-08-09Regenerated files from fenv.h additionJoel Sherrill3-7/+636
2019-08-09Add default implementation of fenv.h and all methodsJoel Sherrill18-8/+999
The default implementation of the fenv.h methods return -EOPNOTSUP. Some of these have implementations appropriate for soft-float. The intention of the new fenv.h is that it be portable and that architectures provide their own implementation of sys/fenv.h.
2019-08-09Miscellaneous Makefile.in regeneratedJoel Sherrill4-46/+33
2019-08-09Cygwin: drop preliminary 3.0.8 release fileCorinna Vinschen1-19/+0
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2019-08-09Cygwin: add missing bugfix release messages for 3.1.0Corinna Vinschen1-0/+29
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2019-08-08Cygwin: shmat: use mmap allocator strategy on 64 bitCorinna Vinschen5-89/+109
This avoids collisions of shmat maps with Windows own datastructures when allocating top-down. This patch moves the mmap_allocator class definition into its own files and just uses it from mmap and shmat.
2019-08-08Cygwin: getpriority() and top display for priority is inconsistentLavrentiev, Anton1-15/+3
Fix this by aligning /proc/[PID]/stat to the values returned by getpriority().
2019-08-07Cygwin: build_env: fix off-by-one bug when re-adding PATHMichael Haubenwallner1-1/+1
Adding default winvar 'PATH=C:\cygwin64\binZ' to an environment that is already allocated for 'SYSTEMROOT=ZWINDIR=Z', we need to count that trailing (Z)ero as well. Otherwise we trigger this assertion failure: $ /bin/env -i SYSTEMROOT= WINDIR= /bin/env assertion "(s - envblock) <= tl" failed: file "/home/corinna/src/cygwin/cygwin-3.0.7/cygwin-3.0.7-1.x86_64/src/newlib-cygwin/winsup/cygwin/environ.cc", line 1302, function: char** build_env(const char* const*, WCHAR*&, int&, bool, HANDLE) Aborted (core dumped)
2019-08-06Cygwin: exec: check execute bit prior to evaluating scriptCorinna Vinschen1-6/+6
When the exec family of functions is called for a script-like file, the av::setup function handles the exec[vl]p case as well. The execve case for files not starting with a she-bang is handled first by returning ENOEXEC. Only after that, the file's executability is checked. This leads to the problem that ENOEXEC is returned for non-executable files as well. A calling shell interprets this as a file it should try to run as script. This is not desired for non-executable files. Fix this problem by checking the file for executability first. Only after that, follow the other potential code paths. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2019-08-05Align libgloss/arm and libc/sys/arm sources: miscellaneous fixesAlexander Fedotov4-78/+82
1. Trim trailing spaces 2. Align comments, function declarations and definitions
2019-08-05Align libgloss/arm and libc/sys/arm sources: Lite exit supportAlexander Fedotov1-0/+16
Applied changes from commit 2404223: * arm/crt0.S (_mainCRTStartup): Weak reference to atexit and _fini when lite exit is enabled.