summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Cygwin: console: Revise the code to fix tab position.Takashi Yano2020-03-021-12/+3
| | | | | - This patch fixes the issue that the cursor position is broken if window size is changed while executing vim, less etc.
* Cygwin: ioctl: TIOCINQ: always return number of chars in the inbound queueCorinna Vinschen2020-03-022-8/+4
| | | | | | | | | | | | | So far ioctl(TIOCINQ) could end up returning -1 with errno set to EINVAL if a non-zero device error mask has been returned by ClearCommError. This doesn't reflect Linux behaviour, which always returns the number of chars in the inbound queue, independent of any I/O error condition. EINVAL was a pretty weird error code to use in this scenario, too. Fix this by dropping all checking for device errors in the TIOCINQ case. Just return the number of chars in the inbound queue. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix error in powf for (-1.0, NaN) inputFabian Schriever2020-03-021-1/+1
| | | | | Prevent confusion between -1.0 and 1.0 in powf. The corresponding similar error was previously fixed for pow (see commit bb25dd1b)
* arm: Finish moving newlib to unified syntax for Thumb1Richard Earnshaw2020-03-022-7/+19
| | | | | | Most code in newlib already uses unified syntax, but just a couple of laggards remain. This patch removes these and means the the entire code base has now been converted.
* Cygwin: console: Adjust the detailed behaviour of ESC sequences.Takashi Yano2020-02-282-7/+45
| | | | | | - This patch makes some detailed behaviour of ESC sequences such as "CSI Ps L" (IL), "CSI Ps M" (DL) and "ESC M" (RI) in xterm mode match with real xterm.
* Cygwin: AF_UNIX: rework fixup_after_execCorinna Vinschen2020-02-284-10/+16
| | | | | | | | | | | | | | | | | fhandler_socket_unix::fixup_after_exec incorrectly calls fhandler_socket_unix::fixup_after_fork with a NULL parent process handle. Not only that calling DuplicateHandle with a NULL parent handle fails, but it's utterly wrong trying to duplicate the handles at all here. Rather just set some important values to NULL and reopen the shared memory region. Create a fixup_helper method to call common code from fixup_after_fork and fixup_after_exec. Add comments to other invocations of fixup_after_fork with NULL handle to mark them as correct this way. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: 32 bit: remove old code to 16 bit align stackCorinna Vinschen2020-02-282-21/+6
| | | | | | | | | | | | | | | | | Aligning the stack pointer using an asm statement isn't any longer supported. gcc-9.2.0 generates the following warning: init.cc:33:46: error: listing the stack pointer register '%esp' in a clobber list is deprecated [-Werror=deprecated] [...] init.cc:33:46: note: the value of the stack pointer after an 'asm' statement must be the same as it was before the statement Replace the asm expression with the gcc function attribute `force_align_arg_pointer'. This aligns the stack exactly as required. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: AF_UNIX: use Nt functions within Nt functionsCorinna Vinschen2020-02-281-3/+3
| | | | | | Functionaly equivalent, but makes for cleaner code Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: AF_UNIX: fix creating shared mem region in dupCorinna Vinschen2020-02-281-6/+6
| | | | | | | | | reopen_shmem is accidentally called on the parent fhandler rather than the child fhandler, and it's called too early. Make sure to call it on the child and only after its shmem_handle is valid. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: Update dumper for bfd API changesJon Turney2020-02-272-8/+26
| | | | | | | | | Update dumper for bfd API changes in binutils 2.34 libbfd doesn't guarantee API stability, so we've just been lucky this hasn't broken more often. See binutils commit fd361982.
* Cygwin: console: Add emulation of CSI3J on Win10 1809.Takashi Yano2020-02-261-2/+17
| | | | | - This patch add emulation of CSI3J, which is broken in Win10 1809, rather than ignoring it as before.
* Cygwin: console: Add support for REP escape sequence to xterm mode.Takashi Yano2020-02-263-0/+45
| | | | | | | | | | - In Win10 upto 1809, xterm compatible mode does not have REP escape sequence which terminfo declares. This patch adds support for "CSI Ps b" (REP). With this patch, bvi (binary editor) works normally in Win10 1809. Also, xterm compatible mode does not have "CSI Pm `" (HPA), "CSI Pm a" (HPR) and "CSI Ps e" (VPR). However, they do not appear to be declared by terminfo. Therefore, these have been pending.
* Cygwin: console: Unify workaround code for CSI3J and CSI?1049h/l.Takashi Yano2020-02-261-21/+22
| | | | | - This patch unifies workaround code for CSI3J and CSI?1049h/l into the code handling other escape sequences in xterm mode.
* Cygwin: console: Add workaround for broken IL/DL in xterm mode.Takashi Yano2020-02-263-2/+166
| | | | | | | | | - Cygwin console with xterm compatible mode causes problem reported in https://www.cygwin.com/ml/cygwin-patches/2020-q1/msg00212.html if background/foreground colors are set to gray/black respectively in Win10 1903/1909. This is caused by "CSI Ps L" (IL), "CSI Ps M" (DL) and "ESC M" (RI) control sequences which are broken. This patch adds a workaround for the issue.
* Cygwin: ps: fix compiler warning in ttynamCorinna Vinschen2020-02-261-9/+10
| | | | | | | | | | | | | | | The helper function ttynam creates a tty name by using sprintf wrongly on a pretty short buffer. The foramt string only specifies a minimum field length, not a maximum field length, so gcc-9.2.0 complains: ps.cc:101:23: warning: 'sprintf' may write a terminating nul past the end of the destination [-Wformat-overflow=] Fix this thoroughly by specifying a maximum field width as well as by using snprintf with a fixed buffer length. Also, drop using a static buffer in favor of using a buffer in the caller. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: cygserver: drop useless packed attributeCorinna Vinschen2020-02-261-9/+3
| | | | | | | | | | | | | ...from structs used for data exchange between clients and cygserver. All of the structs have the same size and member offsets, packed or unpacked. Keeping the packed attribute results in ominous warnings from gcc-9.2.0: cygserver.cc:259:10: warning: taking address of packed member of 'client_request_attach_tty::request_attach_tty' may result in an unaligned pointer value [-Waddress-of-packed-member] Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: Makefile.in: add -fno-builtin-execve CFLAG when building exec.oCorinna Vinschen2020-02-261-0/+2
| | | | | | | | | | | | | | | | gcc-9.2.0 has an execve builtin which uses the nothrow attribute. This results in an error when aliasing execve to _execve for newlib: exec.cc:88:23: error: 'int _execve(const char*, char* const*, char* const*)' specifies less restrictive attribute than its target 'int execve(const char*, char* const*, char* const*)': 'nothrow' [-Werror=missing-attributes] 88 | EXPORT_ALIAS (execve, _execve) /* For newlib */ Add the -fno-builtin-execve CFLAGS when building exec.o to override the gcc builtin. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: posix timers: fix uninitialized variableCorinna Vinschen2020-02-261-1/+1
| | | | | | | | | | | | | | The variable returning the overrun count from the tracker object after disarming the overrun counter was not correctly initialized. For some reason this has only been noticed by gcc-9.2.0, not by the formerly used gcc-7.4.0. This problem should not have had any runtime impact. The method timer_tracker::disarm_overrun_event is supposed to be called in lock-step with timer_tracker::arm_overrun_event, which in turn results in the variable getting a valid value. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* cpuinfo:power management: add proc_feedback, acc_powerBrian Inglis2020-02-261-2/+2
| | | | | | | | | | | linux 4.6 x86/cpu: Add advanced power management bits Bit 11 of CPUID 8000_0007 edx is processor feedback interface. Bit 12 of CPUID 8000_0007 edx is accumulated power. Print proper names in /proc/cpuinfo [missed enabling this 2016 change during previous major cpuinfo update as no power related changes were made to the Linux files since then]
* x86_64/i386 fenv: Replace symlink with include fenv_stub.cJoel Sherrill2020-02-2523-23/+161
| | | | | | | | | | | | Having symlinks for these files led to an issue reported to the RTEMS Project that showed up using some tar for native Windows to unpack the newlib sources. It creates symlinks in the tar file as copies of the files the symlinks point to. If the links appear in the tar file before the source exists, it cannot copy the file. The solution in this patch is to convert the files that are symbolic links into simple files which include the file they were linked to. This should be more portable and avoids the symbolinc link problem.
* Cygwin: console: Fix segfault on shared_console_info access.Takashi Yano2020-02-242-12/+15
| | | | | | | | | - Accessing shared_console_info before initialization causes access violation because it is a NULL pointer. The cause of the problem reported in https://cygwin.com/ml/cygwin/2020-02/msg00197.html is this NULL pointer access in request_xterm_mode_output() when it is called from close(). This patch makes sure that shared_console_info is not NULL before calling request_xterm_mode_output().
* fhandler_proc/cpuinfo: support fast short REP MOVSBBrian Inglis2020-02-241-0/+1
| | | | | | | | | | | | | | Added in Linux 5.6: Check FSRM and use REP MOVSB for short copies on systems that have it. >From the Intel Optimization Reference Manual: 3.7.6.1 Fast Short REP MOVSB Beginning with processors based on Ice Lake Client microarchitecture, REP MOVSB performance is enhanced with string lengths up to 128 bytes. Support for fast-short REP MOVSB is indicated by the CPUID feature flag: CPUID [EAX=7H, ECX=0H).EDX.FAST_SHORT_REP_MOVSB[bit 4] = 1. There is no change in the REP STOS performance.
* Cygwin: add release message for NUL character bugsCorinna Vinschen2020-02-211-0/+7
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: don't move cursor on NUL char at allCorinna Vinschen2020-02-211-2/+3
| | | | | | | Add a comment instead to explain that this behaviour contradicts the terminfo entry. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: fhandler_console.cc: fix minor style issuesCorinna Vinschen2020-02-201-3/+3
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: console: ignore NUL byte on write in xterm emulation mode as wellCorinna Vinschen2020-02-201-1/+3
| | | | | | | | | | | | | A NUL byte in the output stream got accidentally not handled as IGN char in xterm console mode. The internal mbtowc conversion doesn't handle embedded NUL values gracefully, it always stops converting at NUL bytes. This broke the output of strings with embedded NUL bytes. Fix this by always skipping IGN chars in the "normal char output loop" and make sure not to move the cursor one position to the right, as in legacy console mode. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* newlib/libc/include/devctl.h: Add extern "C" wrapperJoel Sherrill2020-02-201-0/+8
| | | | Adding this was necessary to allow posix_devctl() from C++.
* Bump DLL version to 3.1.5Corinna Vinschen2020-02-191-1/+1
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: console: Add guard for set/unset xterm compatible mode.cygwin-3_1_4-releaseTakashi Yano2020-02-184-58/+103
| | | | | - Setting / unsetting xterm compatible mode may cause race issue between multiple processes. This patch adds guard for that.
* Cygwin: console: Fix ioctl() FIONREAD.Takashi Yano2020-02-181-4/+33
| | | | | | - ioctl() FIONREAD for console does not return correct value since commit cfb517f39a8bcf2d995a732d250563917600408a. This patch fixes the issue.
* Cygwin: add @cjksingle to release docsCorinna Vinschen2020-02-182-0/+12
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: describe new locale modifier @cjksingle for user guideThomas Wolff2020-02-181-0/+11
|
* Locale modifier "@cjksingle" to enforce single-width CJK width.Thomas Wolff2020-02-182-4/+17
| | | | | | This option follows a proposal in the Terminals Working Group Specifications (https://gitlab.freedesktop.org/terminal-wg/specifications/issues/9#note_406682). It makes locale width consistent with the corresponding mintty feature.
* Cygwin: rename NSIG to _NSIG, change visibility of NSIG to MISCCorinna Vinschen2020-02-187-29/+37
| | | | | | | | | | | NSIG is a deprecated symbol only visible under MISC visibility. _NSIG is used widely instead, and on most systems NSIG is defined in terms of _NSIG. Follow suit: Change NSIG to _NSIG throughout and change visiblity of NSIG to be defined only in __MISC_VISIBLE case. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: move 3.1.3 to 3.1.4 release documentCorinna Vinschen2020-02-182-33/+34
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: console: Fix code for restoring console mode.Takashi Yano2020-02-171-1/+1
| | | | | | - Commit 774b8996d1f3e535e8267be4eb8e751d756c2cec has a bug that restores console output mode into console input. This patch fixes the issue.
* Cygwin: Bump DLL version to 3.1.4Corinna Vinschen2020-02-171-1/+1
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: console: Change timing of set/unset xterm compatible mode.cygwin-3_1_3-releaseTakashi Yano2020-02-173-67/+89
| | | | | | | | | | | | | - If two cygwin programs are executed simultaneousley with pipes in cmd.exe, xterm compatible mode is accidentally disabled by the process which ends first. After that, escape sequences are not handled correctly in the other app. This is the problem 2 reported in https://cygwin.com/ml/cygwin/2020-02/msg00116.html. This patch fixes the issue. This patch also fixes the problem 3. For these issues, the timing of setting and unsetting xterm compatible mode is changed. For read, xterm compatible mode is enabled only within read() or select() functions. For write, it is enabled every time write() is called, and restored on close().
* pow: fix pow(-1.0, NaN)Nicolas Brunie2020-02-141-1/+1
| | | | | | | I think I may have encountered a bug in the implementation of pow: pow(-1.0, NaN) returns 1.0 when it should return NaN. Because ix is used to check input vs 1.0 rather than hx, -1.0 is mistaken for 1.0
* Cygwin: pty: Add error handling in setup_pseudoconsole().Takashi Yano2020-02-111-68/+111
| | | | | - In setup_pseudoconsole(), many error handling was omitted. This patch adds missing error handling.
* Only pass the minimum number of syscall argumentsGeorg Sauthoff2020-02-1118-29/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | Previously, __internal_syscall() compiled into asm-code that unconditionally sets the syscall argument registers a0 to a5. For example, the instruction sequence for a exit syscall looked like this: li a0, 1 # in ther caller of exit() # ... # in newlib: li a1, 0 # unused arguments li a2, 0 li a3, 0 li a4, 0 li a5, 0 li a7, 93 # exit syscall number (i.e. the binary contains then 5 superfluous instructions for this one argument syscall) This commit changes the RISC-V syscall code such that only the required syscall argument registers are set. GCC detects that argc is known at compile time and thus evaluates all the if-statements where argc is used at compile time (tested with -O2 and -Os).
* Cygwin: pty: Prevent potential errno overwriting.Takashi Yano2020-02-101-0/+3
| | | | | | | - In push_to_pcon_screenbuffer(), open() and ioctl() are called. Since push_to_pcon_screenbuffer() is called in read() and write(), errno which is set in read() and write() code may be overwritten in open() or ioctl() call. This patch prevent this situation.
* Cygwin: pty: Fix state mismatch caused in mintty.Takashi Yano2020-02-102-2/+16
| | | | | | | - PTY has a bug reported in: https://cygwin.com/ml/cygwin/2020-02/msg00067.html. This is the result of state mismatch between real pseudo console attaching state and state variable. This patch fixes the issue.
* Cygwin: pty: Inherit typeahead data between two input pipes.Takashi Yano2020-02-105-91/+329
| | | | | | | | | | | - PTY has a problem that the key input, which is typed during windows native app is running, disappear when it returns to shell. (Problem 3 in https://cygwin.com/ml/cygwin/2020-02/msg00007.html) This is beacuse pty has two input pipes, one is for cygwin apps and the other one is for native windows apps. The key input during windows native program is running is sent to the second input pipe while cygwin shell reads input from the first input pipe. This patch realize transfering input data between these two pipes.
* Cygwin: pty: Add missing member initialization for struct pipe_reply.Takashi Yano2020-02-101-1/+1
| | | | | - For pseudo console support, struct pipe_reply was changed in the past, however, the initialization was not fixed.
* Cygwin: pty: Remove debug codes and organize related codes.Takashi Yano2020-02-102-81/+23
| | | | | | - Debug codes used in the early stage of pseudo console support are removed. (Regarding ALWAYS_USE_PCON and USE_API_HOOK) Along with this, the codes related to this change are organized.
* Cygwin: pty: Avoid screen distortion on slave read.Takashi Yano2020-02-102-22/+32
| | | | | | - Echo back print is distorted when the cygwin program which calls Win32 console API directly calls slave read(). This patch fixes the issue.
* Cygwin: pty: Define mask_switch_to_pcon_in() in fhandler_tty.cc.Takashi Yano2020-02-102-8/+11
| | | | | - This patch moves the definition of mask_switch_to_pcon() from fhandler.h to fhandler_tty.cc.
* Cygwin: pty: Use pinfo() rather than kill() with signal 0.Takashi Yano2020-02-062-6/+6
| | | | | | | | | - PTY code has a problem that tcsh is terminated if the following command is executed. true; chcp & This seems to be caused by invalid pointer access which occurs when the process exits during the kill() code is execuetd. This patch avoids the issue by not using kill().
* Typo in license for newlib/libc/stdio/flags.cKeith Packard2020-02-061-1/+1
| | | | | | | | Fix spelling: MERCHANT I BILITY -> MERCHANT A BILITY Signed-off-by: Keith Packard <keithp@keithp.com>