]> sourceware.org Git - newlib-cygwin.git/log
newlib-cygwin.git
4 years agoRevert "Cygwin: serial: read: if VMIN > 0, wait for VMIN chars in inbound queue" topic/serial_io github/topic/serial_io
Corinna Vinschen [Wed, 25 Mar 2020 20:01:29 +0000 (21:01 +0100)]
Revert "Cygwin: serial: read: if VMIN > 0, wait for VMIN chars in inbound queue"

This reverts commit 082f2513c721e942d0fd563c4dc9117eee3513ab.

Turns out, Linux as well as BSD really only wait for the smaller
number, MIN or # of requested bytes.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agofhandler_serial: fix comments
Corinna Vinschen [Wed, 25 Mar 2020 11:25:06 +0000 (12:25 +0100)]
fhandler_serial: fix comments

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agoCygwin: serial: read: if VMIN > 0, wait for VMIN chars in inbound queue
Corinna Vinschen [Wed, 25 Mar 2020 11:21:59 +0000 (12:21 +0100)]
Cygwin: serial: read: if VMIN > 0, wait for VMIN chars in inbound queue

Per termios, read waits for MIN chars even if the number of requested
bytes is less.  This requires to add WaitCommEvent to wait non-busily
for MIN chars prior to calling ReadFile, so, reintroduce it.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agoCygwin: serial: use per call OVERLAPPED structs
Corinna Vinschen [Mon, 23 Mar 2020 20:06:00 +0000 (21:06 +0100)]
Cygwin: serial: use per call OVERLAPPED structs

Sharing the OVERLAPPED struct and event object in there between
read and select calls in the fhandler might have been a nice
optimization way back when, but it is a dangerous, not thread-safe
approach.  Fix this by creating per-fhandler, per-call OVERLAPPED
structs and event objects on demand.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agoCygwin: serial: select: call ClearCommError prior to calling WaitCommEvent
Corinna Vinschen [Mon, 23 Mar 2020 16:23:19 +0000 (17:23 +0100)]
Cygwin: serial: select: call ClearCommError prior to calling WaitCommEvent

This (hopefully) eliminates a race condition

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agoCygwin: serial: select: fix WaitCommEvent request
Corinna Vinschen [Mon, 23 Mar 2020 12:08:32 +0000 (13:08 +0100)]
Cygwin: serial: select: fix WaitCommEvent request

- make sure event object is reset
- set read_ready to true if WaitCommEvent returns success
- improve debugging

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agoCygwin: serial: tcsetattr: set timeouts unconditionally
Corinna Vinschen [Mon, 23 Mar 2020 11:13:35 +0000 (12:13 +0100)]
Cygwin: serial: tcsetattr: set timeouts unconditionally

tcsetattr checks if the VTIME and VMIN values changed and only
calls SetCommTimeouts if so.  That's a problem if tcsetattr
is supposed to set VTIME and VIMN to 0, because these are the
start values anyway.  But this requires to set ReadIntervalTimeout
to MAXDWORD, which just doesn't happen.

Fix this by dropping the over-optimization of checking the old
values before calling SetCommTimeouts,

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agoCygwin: serial: avoid overrun of vtime
Corinna Vinschen [Sat, 21 Mar 2020 09:36:11 +0000 (10:36 +0100)]
Cygwin: serial: avoid overrun of vtime

After changing the type of fhandler_serial::vtime_ to cc_t, vtime_
must be stored in 10s of seconds, not in milliseconds.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agoCygwin: serial: select: fix previous revamp patch
Åke Rehnman [Fri, 20 Mar 2020 09:37:17 +0000 (10:37 +0100)]
Cygwin: serial: select: fix previous revamp patch

- We need a verify function.
- The event object referenced in WaitCommEvent must not be a local var,
  move it into fhandler_serial.

4 years agoCygwin: serial: revamp overlapped IO in read and select
Corinna Vinschen [Wed, 18 Mar 2020 20:14:06 +0000 (21:14 +0100)]
Cygwin: serial: revamp overlapped IO in read and select

Get rid of WaitCommEvent and using overlapped_armed to share the
same overlapped operation between read and select.  Rather, make
sure to cancel the overlapped IO before leaving any of these functions.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agoCygwin: serial: read: revamp raw_read, change vmin_ and vtime_ to cc_t
Corinna Vinschen [Tue, 17 Mar 2020 16:45:05 +0000 (17:45 +0100)]
Cygwin: serial: read: revamp raw_read, change vmin_ and vtime_ to cc_t

- Datatypes were incorrect, especially vmin_ and vtime_.
  Change them to cc_t, as in user space.

- Error checking had a gap or two.  Debug output used the
  wrong formatting.

- Don't use ev member for ClearCommError and WaitCommEvent.
  Both returned values are different (error value vs. event
  code).  The values are not used elsewhere so it doesn't make
  sense to store them in the object.  Therefore, drop ev member.

- Some variable names were not very helpful.  Especially using
  n as lpNumberOfBytesTransferred from GetOverlappedResult and
  then actually printing it as if it makes sense was quite
  puzzeling.

- Rework the loop and the definition of minchars so that it
  still makes sense when looping.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agoCygwin: serial: select: simplify peek_serial
Corinna Vinschen [Tue, 17 Mar 2020 16:24:56 +0000 (17:24 +0100)]
Cygwin: serial: select: simplify peek_serial

- Don't use ev member for ClearCommError and WaitCommEvent.
  Both returned values are different (error value vs. event
  code).  The values are not used elsewhere so it doesn't make
  sense to store them in the object.

- Drop local variable ready which is used inconsequentially.

- Since WFSO already waits 10 ms, don't wait again if no char
  is in the inbound queue.

- Avoid else if chains.

- Only print one line of debug output on error.

- Drop overlapped_armed < 0 check.  This value is only set in
  fhandler_serial::raw_read if VTIME > 0, and even then it's only
  set to be immediately reset to 0 before calling ReadFile.  So
  overlapped_armed is never actually < 0 when calling select.

- Fix a screwed up statement order.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agoCygwin: Use a separate Start Menu folder for WoW64 installs
Jon Turney [Thu, 19 Mar 2020 13:54:10 +0000 (13:54 +0000)]
Cygwin: Use a separate Start Menu folder for WoW64 installs

This aligns the shortcuts to documentation with the setup changes in
https://sourceware.org/pipermail/cygwin-apps/2020-March/039873.html

v2:
Create/remove the Start Menu directory as needed/possible
Correctly use that directory when making shortcuts

4 years agoFix hypotf missing mask in hi+lo decomposition
Fabian Schriever [Thu, 19 Mar 2020 15:34:08 +0000 (16:34 +0100)]
Fix hypotf missing mask in hi+lo decomposition

Add the missing mask for the decomposition of hi+lo which caused some
errors of 1-2 ULP.

This change is taken over from FreeBSD:
https://github.com/freebsd/freebsd/commit/95436ce20dab5a34ba46373410b96411b1734578

Additionally I've removed some variable assignments which were never
read before being overwritten again in the next 2 lines.

4 years agoFix modf/f for NaN input
Fabian Schriever [Wed, 18 Mar 2020 13:18:20 +0000 (14:18 +0100)]
Fix modf/f for NaN input

For NaN input the modf/f procedures should return NaN instead of zero
with the sign of the input.

4 years agoFix for k_tan.c specific inputs
Fabian Schriever [Tue, 17 Mar 2020 14:48:44 +0000 (15:48 +0100)]
Fix for k_tan.c specific inputs

This fix for k_tan.c is a copy from fdlibm version 5.3 (see also
http://www.netlib.org/fdlibm/readme), adjusted to use the macros
available in newlib (SET_LOW_WORD).

This fix reduces the ULP error of the value shown in the fdlibm readme
(tan(1.7765241907548024E+269)) to 0.45 (thereby reducing the error by
1).

This issue only happens for large numbers that get reduced by the range
reduction to a value smaller in magnitude than 2^-28, that is also
reduced an uneven number of times. This seems rather unlikely given that
one ULP is (much) larger than 2^-28 for the values that may cause an
issue.  Although given the sheer number of values a double can
represent, it is still possible that there are more affected values,
finding them however will be quite hard, if not impossible.

We also took a look at how another library (libm in FreeBSD) handles the
issue: In FreeBSD the complete if branch which checks for values smaller
than 2^-28 (or rather 2^-27, another change done by FreeBSD) is moved
out of the kernel function and into the external function. This means
that the value that gets checked for this condition is the unreduced
value. Therefore the input value which caused a problem in the
fdlibm/newlib kernel tan will run through the full polynomial, including
the careful calculation of -1/(x+r). So the difference is really whether
r or y is used. r = y + p with p being the result of the polynomial with
1/3*x^3 being the largest (and magnitude defining) value. With x being
<2^-27 we therefore know that p is smaller than y (y has to be at least
the size of the value of x last mantissa bit divided by 2, which is at
least x*2^-51 for doubles) by enough to warrant saying that r ~ y.  So
we can conclude that the general implementation of this special case is
the same, FreeBSD simply has a different philosophy on when to handle
especially small numbers.

4 years agoCygwin: serial: wait for CancelIo completion
Corinna Vinschen [Mon, 16 Mar 2020 09:20:16 +0000 (10:20 +0100)]
Cygwin: serial: wait for CancelIo completion

Per https://devblogs.microsoft.com/oldnewthing/20110202-00/?p=11613
GetOverlappedResult must be called blocking, waiting for the overlapped
operation to complete.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agoRTEMS: Include missing header and fix stub
Sebastian Huber [Fri, 13 Mar 2020 17:21:36 +0000 (18:21 +0100)]
RTEMS: Include missing header and fix stub

Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
4 years agoCygwin: pty: Add FreeConsole to destructor of pty slave.
Takashi Yano via Cygwin-patches [Fri, 13 Mar 2020 03:06:49 +0000 (12:06 +0900)]
Cygwin: pty: Add FreeConsole to destructor of pty slave.

- When pseudo console is closed, all the processes attched to the
  pseudo console are terminated. This causes the problem reported
  in https://sourceware.org/pipermail/cygwin/2020-March/244046.html.
  This patch fixes the issue.

4 years agoCygwin: serial: try fix o_nonblock
Corinna Vinschen [Thu, 12 Mar 2020 15:07:01 +0000 (16:07 +0100)]
Cygwin: serial: try fix o_nonblock

4 years agoCygwin: belatedly add Hans-Bernhard to CONTRIBUTORS file
Corinna Vinschen [Wed, 11 Mar 2020 16:40:03 +0000 (17:40 +0100)]
Cygwin: belatedly add Hans-Bernhard to CONTRIBUTORS file

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agoCygwin: fix formatting: drop trailing whitespace
Corinna Vinschen [Wed, 11 Mar 2020 12:36:41 +0000 (13:36 +0100)]
Cygwin: fix formatting: drop trailing whitespace

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agoCygwin: fix formatting: collapse whitespace-only lines
Corinna Vinschen [Wed, 11 Mar 2020 12:28:27 +0000 (13:28 +0100)]
Cygwin: fix formatting: collapse whitespace-only lines

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agoCygwin: fix formatting: drop spaces leading tabs
Corinna Vinschen [Wed, 11 Mar 2020 12:23:55 +0000 (13:23 +0100)]
Cygwin: fix formatting: drop spaces leading tabs

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agoCygwin: fix formatting: replace TAB char with \t in string constant
Corinna Vinschen [Wed, 11 Mar 2020 12:44:05 +0000 (13:44 +0100)]
Cygwin: fix formatting: replace TAB char with \t in string constant

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agoFix truncf for sNaN input
Fabian Schriever [Wed, 11 Mar 2020 09:58:05 +0000 (10:58 +0100)]
Fix truncf for sNaN input

Make line 47 in sf_trunc.c reachable. While converting the double
precision function trunc to the single precision version truncf an error
was introduced into the special case. This special case is meant to
catch both NaNs and infinities, however qNaNs and infinities work just
fine with the simple return of x (line 51). The only error occurs for
sNaNs where the same sNaN is returned and no invalid exception is
raised.

4 years agoi386/fenv.c: Include fenv.c implementation shared with x86_64, not stub
Joel Sherrill [Tue, 10 Mar 2020 15:03:44 +0000 (10:03 -0500)]
i386/fenv.c: Include fenv.c implementation shared with x86_64, not stub

4 years agoFix error in fdim/f for infinities
Fabian Schriever [Tue, 10 Mar 2020 10:24:12 +0000 (11:24 +0100)]
Fix error in fdim/f for infinities

The comparison c == FP_INFINITE causes the function to return +inf as it
expects x = +inf to always be larger than y. This shortcut causes
several issues as it also returns +inf for the following cases:
 - fdim(+inf, +inf), expected (as per C99): +0.0
 - fdim(-inf, any non NaN), expected: +0.0

I don't see a reason to keep the comparison as all the infinity cases
return the correct result using just the ternary operation.

4 years agoFix error in exp in magnitude [2e-32,2e-28]
Fabian Schriever [Fri, 6 Mar 2020 14:46:33 +0000 (15:46 +0100)]
Fix error in exp in magnitude [2e-32,2e-28]

While testing the exp function we noticed some errors at the specified
magnitude. Within this range the exp function returns the input value +1
as an output. We chose to run a test of 1m exponentially spaced values
in the ranges [-2^-27,-2^-32] and [2^-32,2^-27] which showed 7603 and
3912 results with an error of >=0.5 ULP (compared with MPFR in 128 bit)
with the highest being 0.56 ULP and 0.53 ULP.

It's easy to fix by changing the magnitude at which the input value +1
is returned from <2^-28 to <2^-32 and using the polynomial instead. This
reduces the number of results with an error of >=0.5 ULP to 485 and 479
in above tests, all of which are exactly 0.5 ULP.

As we were already checking on exp we also took a look at expf. For expf
the magnitude where the input value +1 is returned can be increased from
<2^-28 to <2^-23 without accuracy loss for a slight performance
improvement. To ensure this was the correct value we tested all values
in the ranges [-2^-17,-2^-28] and [2^-28,2^-17] (~92.3m values each).

4 years agoCygwin: console: Fix behaviour of "ESC 8" after reset.
Takashi Yano [Mon, 9 Mar 2020 01:38:36 +0000 (10:38 +0900)]
Cygwin: console: Fix behaviour of "ESC 8" after reset.

- This patch matches the behaviour of "ESC 8" (DECRC) to the real
  xterm after full reset (RIS), soft reset (DECSTR) and "CSI 3 J".

4 years agoDo not bother passing optional argument to WriteConsoleA.
Hans-Bernhard Broeker [Sun, 8 Mar 2020 20:41:14 +0000 (21:41 +0100)]
Do not bother passing optional argument to WriteConsoleA.

Passing a pointer to a local variable to WriteConsoleA is
not actually needed if we're not going to do anything with
what WriteConsoleA would put in there.

For the wpbuf class the pointer argument was made optional,
so it can be just left out; other call places now pass a
NULL pointer instead.  The local variables `wn' and `n'
are no unused, so they go away.

4 years agoCollect handling of wpixput and wpbuf into a helper class.
Hans-Bernhard Broeker [Sun, 8 Mar 2020 20:41:13 +0000 (21:41 +0100)]
Collect handling of wpixput and wpbuf into a helper class.

Replace direct access to a pair of co-dependent variables
by calls to methods of a class that encapsulates their relation.

Also replace C #define by C++ class constant.

4 years agoFix error in float trig. function range reduction
Fabian Schriever [Tue, 3 Mar 2020 13:49:06 +0000 (14:49 +0100)]
Fix error in float trig. function range reduction

The single-precision trigonometric functions show rather high errors in
specific ranges starting at about 30000 radians. For example the sinf
procedure produces an error of 7626.55 ULP with the input
5.195880078125e+04 (0x474AF6CD) (compared with MPFR in 128bit
precision). For the test we used 100k values evenly spaced in the range
of [30k, 70k]. The issues are periodic at higher ranges.

This error was introduced when the double precision range reduction was
first converted to float. The shift by 8 bits always returns 0 as iq is
never higher than 255.

The fix reduces the error of the example above to 0.45 ULP, highest
error within the test set fell to 1.31 ULP, which is not perfect, but
still a significant improvement. Testing other previously erroneous
ranges no longer show particularly large accuracy errors.

4 years agoCygwin: console: convert wpbuf_put to inline function
Corinna Vinschen [Mon, 2 Mar 2020 19:30:09 +0000 (20:30 +0100)]
Cygwin: console: convert wpbuf_put to inline function

fix potential buffer overrun while at it

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agoCygwin: console: Add a workaround for "ESC 7" and "ESC 8".
Takashi Yano [Mon, 2 Mar 2020 01:12:57 +0000 (10:12 +0900)]
Cygwin: console: Add a workaround for "ESC 7" and "ESC 8".

- In xterm compatible mode, "ESC 7" and "ESC 8" do not work properly
  in the senario:
   1) Execute /bin/ls /bin to fill screen.
   2) Sned CSI?1049h to alternate screen.
   3) Reduce window size.
   4) Send CSI?1049l to resume screen.
   5) Send "ESC 7" and "ESC 8".
  After sending "ESC 8", the cursor goes to incorrect position. This
  patch adds a workaround for this issue.

4 years agoCygwin: console: Prevent buffer overrun.
Takashi Yano [Mon, 2 Mar 2020 01:12:56 +0000 (10:12 +0900)]
Cygwin: console: Prevent buffer overrun.

- This patch prevent potential buffer overrun in the code handling
  escape sequences.

4 years agoCygwin: console: Fix setting/unsetting xterm mode for input.
Takashi Yano [Mon, 2 Mar 2020 01:12:55 +0000 (10:12 +0900)]
Cygwin: console: Fix setting/unsetting xterm mode for input.

- This patch fixes the issue that xterm compatible mode for input
  is not correctly set/unset in some situation such as:
   1) cat is stopped by ctrl-c.
   2) The window size is changed in less.
  In case 1), request_xterm_mode_input(true) is called in read(),
  however, cat is stopped without request_xterm_mode_input(false).
  In case 2), less uses longjmp in signal handler, therefore,
  corresponding request_xterm_mode_input(false) is not called if
  the SIGWINCH signal is sent within read(). With this patch,
  InterlockedExchange() is used instead of InterlockedIncrement/
  Decrement().

4 years agoCygwin: console: Revise the code to fix tab position.
Takashi Yano [Mon, 2 Mar 2020 01:12:54 +0000 (10:12 +0900)]
Cygwin: console: Revise the code to fix tab position.

- This patch fixes the issue that the cursor position is broken if
  window size is changed while executing vim, less etc.

4 years agoCygwin: ioctl: TIOCINQ: always return number of chars in the inbound queue
Corinna Vinschen [Mon, 2 Mar 2020 16:02:51 +0000 (17:02 +0100)]
Cygwin: ioctl: TIOCINQ: always return number of chars in the inbound queue

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>
4 years agoFix error in powf for (-1.0, NaN) input
Fabian Schriever [Mon, 2 Mar 2020 14:40:23 +0000 (15:40 +0100)]
Fix error in powf for (-1.0, NaN) input

Prevent confusion between -1.0 and 1.0 in powf. The corresponding
similar error was previously fixed for pow (see commit bb25dd1b)

4 years agoarm: Finish moving newlib to unified syntax for Thumb1
Richard Earnshaw [Mon, 2 Mar 2020 13:33:11 +0000 (13:33 +0000)]
arm: Finish moving newlib to unified syntax for Thumb1

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.

4 years agoCygwin: console: Adjust the detailed behaviour of ESC sequences.
Takashi Yano [Thu, 27 Feb 2020 02:33:50 +0000 (11:33 +0900)]
Cygwin: console: Adjust the detailed behaviour of ESC sequences.

- 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.

4 years agoCygwin: AF_UNIX: rework fixup_after_exec
Corinna Vinschen [Fri, 28 Feb 2020 12:21:05 +0000 (13:21 +0100)]
Cygwin: AF_UNIX: rework fixup_after_exec

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>
4 years agoCygwin: 32 bit: remove old code to 16 bit align stack
Corinna Vinschen [Fri, 28 Feb 2020 13:31:56 +0000 (14:31 +0100)]
Cygwin: 32 bit: remove old code to 16 bit align stack

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>
4 years agoCygwin: AF_UNIX: use Nt functions within Nt functions
Corinna Vinschen [Fri, 28 Feb 2020 11:40:49 +0000 (12:40 +0100)]
Cygwin: AF_UNIX: use Nt functions within Nt functions

Functionaly equivalent, but makes for cleaner code

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agoCygwin: AF_UNIX: fix creating shared mem region in dup
Corinna Vinschen [Fri, 28 Feb 2020 11:39:41 +0000 (12:39 +0100)]
Cygwin: AF_UNIX: fix creating shared mem region in dup

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>
4 years agoCygwin: Update dumper for bfd API changes
Jon Turney [Wed, 26 Feb 2020 18:48:51 +0000 (18:48 +0000)]
Cygwin: Update dumper for bfd API changes

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.

4 years agoCygwin: console: Add emulation of CSI3J on Win10 1809.
Takashi Yano [Wed, 26 Feb 2020 15:33:02 +0000 (00:33 +0900)]
Cygwin: console: Add emulation of CSI3J on Win10 1809.

- This patch add emulation of CSI3J, which is broken in Win10 1809,
  rather than ignoring it as before.

4 years agoCygwin: console: Add support for REP escape sequence to xterm mode.
Takashi Yano [Wed, 26 Feb 2020 15:33:01 +0000 (00:33 +0900)]
Cygwin: console: Add support for REP escape sequence to xterm mode.

- 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.

4 years agoCygwin: console: Unify workaround code for CSI3J and CSI?1049h/l.
Takashi Yano [Wed, 26 Feb 2020 15:33:00 +0000 (00:33 +0900)]
Cygwin: console: Unify workaround code for CSI3J and CSI?1049h/l.

- This patch unifies workaround code for CSI3J and CSI?1049h/l into
  the code handling other escape sequences in xterm mode.

4 years agoCygwin: console: Add workaround for broken IL/DL in xterm mode.
Takashi Yano [Wed, 26 Feb 2020 15:32:59 +0000 (00:32 +0900)]
Cygwin: console: Add workaround for broken IL/DL in xterm mode.

- 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.

4 years agoCygwin: ps: fix compiler warning in ttynam
Corinna Vinschen [Wed, 26 Feb 2020 20:08:51 +0000 (21:08 +0100)]
Cygwin: ps: fix compiler warning in ttynam

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>
4 years agoCygwin: cygserver: drop useless packed attribute
Corinna Vinschen [Wed, 26 Feb 2020 19:52:55 +0000 (20:52 +0100)]
Cygwin: cygserver: drop useless packed attribute

...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>
4 years agoCygwin: Makefile.in: add -fno-builtin-execve CFLAG when building exec.o
Corinna Vinschen [Wed, 26 Feb 2020 16:02:01 +0000 (17:02 +0100)]
Cygwin: Makefile.in: add -fno-builtin-execve CFLAG when building exec.o

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>
4 years agoCygwin: posix timers: fix uninitialized variable
Corinna Vinschen [Wed, 26 Feb 2020 15:50:34 +0000 (16:50 +0100)]
Cygwin: posix timers: fix uninitialized variable

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>
4 years agocpuinfo:power management: add proc_feedback, acc_power
Brian Inglis [Tue, 25 Feb 2020 23:44:16 +0000 (16:44 -0700)]
cpuinfo:power management: add proc_feedback, acc_power

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]

4 years agox86_64/i386 fenv: Replace symlink with include fenv_stub.c
Joel Sherrill [Tue, 25 Feb 2020 13:38:33 +0000 (07:38 -0600)]
x86_64/i386 fenv: Replace symlink with include fenv_stub.c

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.

4 years agoCygwin: console: Fix segfault on shared_console_info access.
Takashi Yano [Mon, 24 Feb 2020 16:12:16 +0000 (01:12 +0900)]
Cygwin: console: Fix segfault on shared_console_info access.

- 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().

4 years agofhandler_proc/cpuinfo: support fast short REP MOVSB
Brian Inglis [Fri, 21 Feb 2020 21:28:08 +0000 (14:28 -0700)]
fhandler_proc/cpuinfo: support fast short REP MOVSB

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.

4 years agoCygwin: add release message for NUL character bugs
Corinna Vinschen [Fri, 21 Feb 2020 09:57:10 +0000 (10:57 +0100)]
Cygwin: add release message for NUL character bugs

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agoCygwin: don't move cursor on NUL char at all
Corinna Vinschen [Fri, 21 Feb 2020 09:26:25 +0000 (10:26 +0100)]
Cygwin: don't move cursor on NUL char at all

Add a comment instead to explain that this behaviour contradicts
the terminfo entry.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agoCygwin: fhandler_console.cc: fix minor style issues
Corinna Vinschen [Thu, 20 Feb 2020 13:57:26 +0000 (14:57 +0100)]
Cygwin: fhandler_console.cc: fix minor style issues

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agoCygwin: console: ignore NUL byte on write in xterm emulation mode as well
Corinna Vinschen [Thu, 20 Feb 2020 13:48:03 +0000 (14:48 +0100)]
Cygwin: console: ignore NUL byte on write in xterm emulation mode as well

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>
4 years agonewlib/libc/include/devctl.h: Add extern "C" wrapper
Joel Sherrill [Wed, 19 Feb 2020 14:03:40 +0000 (08:03 -0600)]
newlib/libc/include/devctl.h: Add extern "C" wrapper

Adding this was necessary to allow posix_devctl() from C++.

4 years agoBump DLL version to 3.1.5
Corinna Vinschen [Wed, 19 Feb 2020 12:38:42 +0000 (13:38 +0100)]
Bump DLL version to 3.1.5

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agoCygwin: console: Add guard for set/unset xterm compatible mode. cygwin-3_1_4-release
Takashi Yano [Tue, 18 Feb 2020 09:12:54 +0000 (18:12 +0900)]
Cygwin: console: Add guard for set/unset xterm compatible mode.

- Setting / unsetting xterm compatible mode may cause race issue
  between multiple processes. This patch adds guard for that.

4 years agoCygwin: console: Fix ioctl() FIONREAD.
Takashi Yano [Tue, 18 Feb 2020 04:05:07 +0000 (13:05 +0900)]
Cygwin: console: Fix ioctl() FIONREAD.

- ioctl() FIONREAD for console does not return correct value since
  commit cfb517f39a8bcf2d995a732d250563917600408a. This patch fixes
  the issue.

4 years agoCygwin: add @cjksingle to release docs
Corinna Vinschen [Tue, 18 Feb 2020 10:32:47 +0000 (11:32 +0100)]
Cygwin: add @cjksingle to release docs

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agoCygwin: describe new locale modifier @cjksingle for user guide
Thomas Wolff [Sun, 16 Feb 2020 23:00:00 +0000 (00:00 +0100)]
Cygwin: describe new locale modifier @cjksingle for user guide

4 years agoLocale modifier "@cjksingle" to enforce single-width CJK width.
Thomas Wolff [Sun, 16 Feb 2020 23:00:00 +0000 (00:00 +0100)]
Locale modifier "@cjksingle" to enforce single-width CJK width.

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.

4 years agoCygwin: rename NSIG to _NSIG, change visibility of NSIG to MISC
Corinna Vinschen [Tue, 18 Feb 2020 10:17:43 +0000 (11:17 +0100)]
Cygwin: rename NSIG to _NSIG, change visibility of NSIG to MISC

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>
4 years agoCygwin: move 3.1.3 to 3.1.4 release document
Corinna Vinschen [Tue, 18 Feb 2020 10:19:23 +0000 (11:19 +0100)]
Cygwin: move 3.1.3 to 3.1.4 release document

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agoCygwin: console: Fix code for restoring console mode.
Takashi Yano [Mon, 17 Feb 2020 12:46:27 +0000 (21:46 +0900)]
Cygwin: console: Fix code for restoring console mode.

- Commit 774b8996d1f3e535e8267be4eb8e751d756c2cec has a bug that
  restores console output mode into console input. This patch fixes
  the issue.

4 years agoCygwin: Bump DLL version to 3.1.4
Corinna Vinschen [Mon, 17 Feb 2020 12:56:44 +0000 (13:56 +0100)]
Cygwin: Bump DLL version to 3.1.4

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
4 years agoCygwin: console: Change timing of set/unset xterm compatible mode. cygwin-3_1_3-release
Takashi Yano [Mon, 17 Feb 2020 10:29:07 +0000 (19:29 +0900)]
Cygwin: console: Change timing of set/unset xterm compatible mode.

- 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().

4 years agopow: fix pow(-1.0, NaN)
Nicolas Brunie [Fri, 14 Feb 2020 09:12:25 +0000 (10:12 +0100)]
pow: fix pow(-1.0, NaN)

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

4 years agoCygwin: pty: Add error handling in setup_pseudoconsole().
Takashi Yano [Mon, 10 Feb 2020 17:45:14 +0000 (02:45 +0900)]
Cygwin: pty: Add error handling in setup_pseudoconsole().

- In setup_pseudoconsole(), many error handling was omitted. This
  patch adds missing error handling.

4 years agoOnly pass the minimum number of syscall arguments
Georg Sauthoff [Mon, 10 Feb 2020 20:19:58 +0000 (21:19 +0100)]
Only pass the minimum number of syscall arguments

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).

4 years agoCygwin: pty: Prevent potential errno overwriting.
Takashi Yano [Mon, 10 Feb 2020 11:42:45 +0000 (20:42 +0900)]
Cygwin: pty: Prevent potential errno overwriting.

- 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.

4 years agoCygwin: pty: Fix state mismatch caused in mintty.
Takashi Yano [Sun, 9 Feb 2020 14:47:30 +0000 (23:47 +0900)]
Cygwin: pty: Fix state mismatch caused in mintty.

- 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.

4 years agoCygwin: pty: Inherit typeahead data between two input pipes.
Takashi Yano [Sun, 9 Feb 2020 14:46:59 +0000 (23:46 +0900)]
Cygwin: pty: Inherit typeahead data between two input pipes.

- 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.

4 years agoCygwin: pty: Add missing member initialization for struct pipe_reply.
Takashi Yano [Sun, 9 Feb 2020 14:46:03 +0000 (23:46 +0900)]
Cygwin: pty: Add missing member initialization for struct pipe_reply.

- For pseudo console support, struct pipe_reply was changed in the
  past, however, the initialization was not fixed.

4 years agoCygwin: pty: Remove debug codes and organize related codes.
Takashi Yano [Sun, 9 Feb 2020 14:46:02 +0000 (23:46 +0900)]
Cygwin: pty: Remove debug codes and organize related codes.

- 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.

4 years agoCygwin: pty: Avoid screen distortion on slave read.
Takashi Yano [Sun, 9 Feb 2020 14:46:01 +0000 (23:46 +0900)]
Cygwin: pty: Avoid screen distortion on slave read.

- Echo back print is distorted when the cygwin program which calls
  Win32 console API directly calls slave read(). This patch fixes
  the issue.

4 years agoCygwin: pty: Define mask_switch_to_pcon_in() in fhandler_tty.cc.
Takashi Yano [Sun, 9 Feb 2020 14:46:00 +0000 (23:46 +0900)]
Cygwin: pty: Define mask_switch_to_pcon_in() in fhandler_tty.cc.

- This patch moves the definition of mask_switch_to_pcon() from
  fhandler.h to fhandler_tty.cc.

4 years agoCygwin: pty: Use pinfo() rather than kill() with signal 0.
Takashi Yano [Thu, 6 Feb 2020 10:48:17 +0000 (19:48 +0900)]
Cygwin: pty: Use pinfo() rather than kill() with signal 0.

- 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().

4 years agoTypo in license for newlib/libc/stdio/flags.c
Keith Packard [Wed, 5 Feb 2020 06:48:19 +0000 (22:48 -0800)]
Typo in license for newlib/libc/stdio/flags.c

Fix spelling:

MERCHANT I BILITY -> MERCHANT A BILITY

Signed-off-by: Keith Packard <keithp@keithp.com>
4 years agoTypo in license terms for newlib/libm/common/log2.c
Keith Packard [Wed, 5 Feb 2020 06:48:18 +0000 (22:48 -0800)]
Typo in license terms for newlib/libm/common/log2.c

The closing quotes were in the wrong place

Signed-off-by: Keith Packard <keithp@keithp.com>
4 years agolibgloss: Fix lseek semihosting bug on nios2 and m68k
Sandra Loosemore [Wed, 5 Feb 2020 04:34:13 +0000 (21:34 -0700)]
libgloss: Fix lseek semihosting bug on nios2 and m68k

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>
4 years agoCygwin: pty: Remove meaningless pointer increment.
Takashi Yano [Tue, 4 Feb 2020 12:25:52 +0000 (21:25 +0900)]
Cygwin: pty: Remove meaningless pointer increment.

- Since commit 73742508fcd8e994450582c1b7296c709da66764, a pointer
  increment in master write code which has no effect was remaining.

4 years agoCygwin: console: Revise color setting codes in legacy console mode.
Takashi Yano [Sat, 1 Feb 2020 04:28:39 +0000 (13:28 +0900)]
Cygwin: console: Revise color setting codes in legacy console mode.

- 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.

4 years agoCygwin: fhandler_fifo.cc: add commentary
Ken Brown [Sat, 1 Feb 2020 21:36:31 +0000 (16:36 -0500)]
Cygwin: fhandler_fifo.cc: add commentary

4 years agoCygwin: fstat_helper: always use handle in call to get_file_attribute
Ken Brown [Thu, 30 Jan 2020 15:08:21 +0000 (10:08 -0500)]
Cygwin: fstat_helper: always use handle in call to get_file_attribute

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().

4 years agoRISC-V: Use newlib nano specific libm.
Jim Wilson [Wed, 29 Jan 2020 22:46:17 +0000 (14:46 -0800)]
RISC-V: Use newlib nano specific libm.

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>
4 years agoCygwin: document recent changes
Ken Brown [Wed, 29 Jan 2020 17:09:49 +0000 (12:09 -0500)]
Cygwin: document recent changes

4 years agoCygwin: AF_LOCAL: fix fcntl and dup if O_PATH is set
Ken Brown [Sat, 25 Jan 2020 18:08:00 +0000 (13:08 -0500)]
Cygwin: AF_LOCAL: fix fcntl and dup if O_PATH is set

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.)

4 years agoCygwin: AF_LOCAL::fstatvfs: use our handle if O_PATH is set
Ken Brown [Sat, 25 Jan 2020 12:45:10 +0000 (07:45 -0500)]
Cygwin: AF_LOCAL::fstatvfs: use our handle if O_PATH is set

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.

4 years agoCygwin: AF_LOCAL: set appropriate errno on system calls
Ken Brown [Thu, 23 Jan 2020 20:11:15 +0000 (15:11 -0500)]
Cygwin: AF_LOCAL: set appropriate errno on system calls

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.

4 years agoCygwin: AF_LOCAL: allow opening with the O_PATH flag
Ken Brown [Thu, 23 Jan 2020 19:39:15 +0000 (14:39 -0500)]
Cygwin: AF_LOCAL: allow opening with the O_PATH flag

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.

4 years agoUse remove-advertising-clause script to edit BSD licenses
Keith Packard [Tue, 28 Jan 2020 18:54:53 +0000 (10:54 -0800)]
Use remove-advertising-clause script to edit BSD licenses

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>
This page took 0.072627 seconds and 5 git commands to generate.