summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* Typo in license terms for newlib/libm/common/log2.cKeith Packard2020-02-061-1/+1
| | | | | | The closing quotes were in the wrong place Signed-off-by: Keith Packard <keithp@keithp.com>
* libgloss: Fix lseek semihosting bug on nios2 and m68kSandra Loosemore2020-02-062-2/+2
| | | | | | | | When off_t is 32 bits, the value needs to be sign-extended to 64 bits before shifting right to extract the high-order word. Previously negative offsets were incorrectly encoded. Signed-off-by: Sandra Loosemore <sandra@codesourcery.com>
* Cygwin: pty: Remove meaningless pointer increment.Takashi Yano2020-02-041-1/+1
| | | | | - Since commit 73742508fcd8e994450582c1b7296c709da66764, a pointer increment in master write code which has no effect was remaining.
* Cygwin: console: Revise color setting codes in legacy console mode.Takashi Yano2020-02-042-21/+28
| | | | | | - With this patch, foreground color and background color are allowed to be set simultaneously by 24 bit color escape sequence such as ESC[38;2;0;0;255;48;2;128;128;0m in legacy console mode.
* Cygwin: fhandler_fifo.cc: add commentaryKen Brown2020-02-011-0/+29
|
* Cygwin: fstat_helper: always use handle in call to get_file_attributeKen Brown2020-01-311-3/+4
| | | | | | | | | When fhandler_base::fstat_helper is called, the handle h returned by get_stat_handle() should be pc.handle() and should be safe to use for getting the file information. Previously, the call to get_file_attribute() for FIFOs set the first argument to NULL instead of h, thereby forcing the file to be opened for fetching the security descriptor in get_file_sd().
* RISC-V: Use newlib nano specific libm.Jim Wilson2020-01-311-1/+1
| | | | | | | | | | | The libm gamma functions use the _gamma_signgam field of the reentrant structure, which changes offset with the --enable-newlib-reent-small configure option, which means we need to use a newlib nano specific version of libm in addition to libc in the nano.specs file. Reported by Keith Packard. There is a riscv-gnu-toolchain patch that goes along with this to create the new libm_nano.a file. Signed-off-by: Jim Wilson <jimw@sifive.com>
* Cygwin: document recent changesKen Brown2020-01-302-0/+8
|
* Cygwin: AF_LOCAL: fix fcntl and dup if O_PATH is setKen Brown2020-01-302-0/+17
| | | | | | | | | | | | Make fhandler_socket_local::dup and fhandler_socket_local::fcntl (a new method) call fhandler_base::dup and fhandler_base::fcntl if O_PATH is set. We're viewing the socket as a disk file here, but there's no need to implement the actions of fhandler_disk_file::dup and fhandler_disk_file::fcntl, which do nothing useful in this case beyond what the fhandler_base methods do. (The extra actions are only useful when I/O is going to be done on the file.)
* Cygwin: AF_LOCAL::fstatvfs: use our handle if O_PATH is setKen Brown2020-01-301-0/+7
| | | | | | | | If O_PATH is set, then the fhandler_socket_local object has a handle that can be used for getting the statvfs information. Use it by calling fhandler_base::fstatvfs_by_handle. Without this change, fhandler_disk_file::fstatfvs would be called on a new fhandler_disk object, which would then have to be opened.
* Cygwin: AF_LOCAL: set appropriate errno on system callsKen Brown2020-01-301-4/+15
| | | | | | | | | | | | | | | | | | | If an AF_LOCAL socket is opened with O_PATH, all socket system calls that take a file descriptor argument fail on the resulting descriptor. Make sure that errno is set as on Linux for those calls that are implemented on Linux. In almost all cases it is ENOTSOCK. There are two exceptions: - sockatatmark(3); errno is EBADF. - bindresvport(3); errno is EAFNOSUPPORT if the second argument sin (of type struct sockaddr_in *) is non-NULL and satisfies sin->sin_family == AF_INET. Finally, there are two BSD socket system calls implemented on Cygwin but not Linux: getpeereid(3) and bindresvport_sa(3). Set errno to ENOTSOCK for these for consistency with the majority of the other calls.
* Cygwin: AF_LOCAL: allow opening with the O_PATH flagKen Brown2020-01-302-0/+22
| | | | | | | | | | | | If that flag is not set, or if an attempt is made to open a different type of socket, the errno is now EOPNOTSUPP instead of ENXIO. This is consistent with POSIX, starting with the 2016 edition. Earlier editions were silent on this issue. Opening is done in a (new) fhandler_socket_local::open method by calling fhandler_base::open_fs. Also add a corresponding fhandler_socket_local::close method.
* Use remove-advertising-clause script to edit BSD licensesKeith Packard2020-01-29300-1034/+307
| | | | | | | This edits licenses held by Berkeley and NetBSD, both of which have removed the advertising requirement from their licenses. Signed-off-by: Keith Packard <keithp@keithp.com>
* Revert "newlib: fix fseek optimization with SEEK_CUR"Corinna Vinschen2020-01-292-12/+50
| | | | | | | | | | | This reverts commit 59362c80e3a02c011fd0ef3d7f07a20098d2a9d5. This breaks gnulib's autoconf test for POSIX compatibility of fflush/fseek. After fflush/fseek, ftello and lseek are out of sync, with lseek having the wrong offset. This breaks backward compatibility with Cygwin applications. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: stat: fix st_mode of fifosCorinna Vinschen2020-01-291-2/+2
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>