4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-02-02 04:20:28 +08:00

19596 Commits

Author SHA1 Message Date
jhb
d9f12d2c76 Make the system C11 atomics headers fully compatible with external GCC.
The <sys/cdefs.h> and <stdatomic.h> headers already included support for
C11 atomics via intrinsincs in modern versions of GCC, but these versions
tried to "hide" atomic variables inside a wrapper structure.  This wrapper
is not compatible with GCC's internal <stdatomic.h> header, so that if
GCC's <stdatomic.h> was used together with <sys/cdefs.h>, use of C11
atomics would fail to compile.  Fix this by not hiding atomic variables
in a structure for modern versions of GCC.  The headers already avoid
using a wrapper structure on clang.

Note that this wrapper was only used if C11 was not enabled (e.g.
via -std=c99), so this also fixes compile failures if a modern version
of GCC was used with -std=c11 but with FreeBSD's <stdatomic.h> instead
of GCC's <stdatomic.h> and this change fixes that case as well.

Reported by:	Mark Millard
Reviewed by:	kib
Differential Revision:	https://reviews.freebsd.org/D16585
2020-10-27 10:50:45 -04:00
Takashi Yano via Cygwin-patches
cef9a6cfb2 Cygwin: pty: Fix race condition in initialization of pseudo console.
- If output of non-cygwin process is piped to cygwin process, such
  as less, the non-cygwin process sometimes fails to start and hangs.
  This patch fixes the issue.
2020-10-27 10:50:45 -04:00
Ken Brown
a4f00ed42f Cygwin: AF_UNIX: add winsup/cygwin/socket_tests 2020-10-26 17:43:43 -04:00
Ken Brown
7d9bb0b2bc Cygwin: AF_UNIX: modify some FIXME comments 2020-10-26 15:08:39 -04:00
Ken Brown
7c0d061ec8 Cygwin: AF_UNIX: minor tweak 2020-10-26 14:51:08 -04:00
Ken Brown
67da0f3087 Cygwin: AF_UNIX: peek_pipe: check for STATUS_BUFFER_OVERFLOW
Treat this the same as STATUS_SUCCESS.
2020-10-26 14:50:09 -04:00
Ken Brown
abb6475a3b Cygwin: AF_UNIX: grab_admin_pkt: check for unread data in pipe
If there's unread data in the pipe from a previous partial read of a
packet, just return.  There can't be an administrative packet waiting
to be read in that case.
2020-10-26 14:38:20 -04:00
Ken Brown
3a6137eb3a Cygwin: AF_UNIX: accept4: set O_RDWR on new file descriptor 2020-10-26 10:53:37 -04:00
Ken Brown
f4cfd55ee0 Cygwin: AF_UNIX: improve select_printf output
Don't call get_name, which is useless.
2020-10-26 10:22:21 -04:00
Ken Brown
6afbd9bf9a Cygwin: AF_UNIX: fix MAX_AF_PKT_LEN
Define it to be UINT16_MAX, since the pckt_len member of
af_unix_pkt_hdr_t is of type uint16_t.

Previously it was 65536 (== UINT16_MAX + 1), which is 0 when cast to
uint16_t.  So an attempt to write a packet of size MAX_AF_PKT_LEN
actually wrote 0 bytes.
2020-10-26 09:13:42 -04:00
Ken Brown
fc26f2932b Cygwin: AF_UNIX: select_read: fix thinko
Don't set read_ready true if the socket is not connected.  One of the
uses of select is for a listening socket to wait for a connection
request.
2020-10-25 17:05:37 -04:00
Ken Brown
b3cef213d8 Cygwin: AF_UNIX: evaluate_cmsg_data: more FIXMEs 2020-10-24 10:48:55 -04:00
Ken Brown
408636b186 Cygwin: AF_UNIX: sendmsg: add FIXME comment 2020-10-24 10:05:17 -04:00
Ken Brown
f85a03882e Cygwin: AF_UNIX: implement evaluate_cmsg_data
And use it in recvmsg.

I'm not sure this implementation is what was intended when the
evaluate_cmsg_data method was added.

For now, just support an ancillary data block consisting of a single
cmsghdr, containing SCM_CREDENTIALS.

For convenience, add a 'mshdr *' argument and make the 'cloexec'
argument false by default.  The 'cloexec' argument is not currently
used, and I want to avoid having to artificially specify a value for
it when recvmsg calls evaluate_cmsg_data.
2020-10-24 10:00:40 -04:00
Ken Brown
9cfea13054 Cygwin: AF_UNIX: implement create_cmsg_data
For now, just support an ancillary data block consisting of a single
cmsghdr, containing SCM_CREDENTIALS.

FIXME: We're supposed to check the credentials.
2020-10-24 09:56:58 -04:00
Ken Brown via Cygwin-patches
6940081505 Cygwin: AF_INET and AF_LOCAL: recv_internal: fix MSG_WAITALL support
If MSG_WAITALL is set, recv_internal calls WSARecv or WSARecvFrom in a
loop, in an effort to fill all the scatter-gather buffers.  The test
for whether all the buffers are full was previously incorrect.
2020-10-23 08:25:29 -04:00
Ken Brown
324faf1e07 Cygwin: AF_UNIX: socketpair: fix connect state
Both sockets should have connect state 'connected', not just the
second.
2020-10-22 15:12:29 -04:00
Ken Brown
6b08c5e15d Cygwin: AF_UNIX: reopen_shmem: fix view size
Use sizeof (af_unix_shmem_t) as the view size, as when the shared
memory was created.  Previously PAGESIZE was used, causing
NtMapViewOfSection to fail with STATUS_INVALID_VIEW_SIZE.
2020-10-22 14:55:52 -04:00
Ken Brown
7992fc068d Cygwin: AF_UNIX: fill in the default constructor
Previously the default constructor did nothing.  In particular,
fixup_after_fork never got called because need_fork_fixup wasn't set.
2020-10-22 14:45:34 -04:00
Ken Brown
8d99c2f9e2 Cygwin: AF_UNIX: socketpair: set O_RDWR 2020-10-22 12:41:59 -04:00
Jon Turney
ddbcf815c0 Cygwin: Drop do-nothing install_target target 2020-10-22 07:30:51 -04:00
Jon Turney
fea254f1e3 Cygwin: Drop do-nothing install_host target
Drop do-nothing install_host target, which is only used when not
cross-compiling.
2020-10-22 07:30:51 -04:00
Jon Turney
2f44dea077 Cygwin: Remove nostdlib Makefile variable
It's used in one place, and it's value is unconditional.
2020-10-22 07:30:51 -04:00
Jon Turney
005b0a1e3e Cygwin: gendef generates sigfe.s and cygwin.def
Express that gendef generates sigfe.s and cygwin.def in a slightly less
nutty way.
2020-10-22 07:30:51 -04:00
Jon Turney
629e3459bb Cygwin: Drop cygwin version.o from cygserver
The data it contains isn't referenced since 9e9bc3a4.
2020-10-22 07:30:51 -04:00
Jon Turney
d96595e416 Cygwin: Remove lsaauth
Remove lsaauth, not built since 2741dd05.
2020-10-22 07:30:51 -04:00
Ken Brown
db3edfaee9 Cygwin: AF_UNIX: tweak peek_socket_unix
If the socket is listening, then report it as readable (i.e., accept
would not block) if NtQueryInformationFile reports its state as
anything but FILE_PIPE_LISTENING_STATE.  Also report it as readable if
NtQueryInformationFile fails.
2020-10-22 07:30:42 -04:00
Ken Brown
7c04247105 Cygwin: AF_UNIX: select: first cut
Untested.

There are many FIXMEs that need attention.

I haven't thought much about datagram sockets.  Some of the code might
only work for stream sockets.
2020-10-21 19:51:02 -04:00
Ken Brown
84f97738a7 Cygwin: set_bits: extend socket code to all sockets
select.cc:set_bits sets the readfds entry on wsock sockets that have a
failed connect.  Tweak the code so that it applies to all sockets.

To help with this, add virtual connect_state methods to the
fhandler_socket class.  Versions of these methods for
fhandler_socket_wsock and fhandler_socket_unix already exist.
2020-10-21 19:46:49 -04:00
Ken Brown
721814a4cd Cygwin: AF_UNIX: make some methods public
Some previously protected methods are now public so that they can be
used in select.cc.
2020-10-21 19:46:48 -04:00
Ken Brown
58205dc374 Cygwin: AF_UNIX: move the definition of class af_unix_pkt_hdr_t
It is needed in select.cc, so move the definition from
fhandler_socket_unix.cc to fhandler.h.
2020-10-21 19:46:48 -04:00
Ken Brown
533c9b05b8 Cygwin: AF_UNIX: sendmsg: call grab_admin_pkt
Check to see if the peer has sent a shutdown packet before calling
saw_shutdown.
2020-10-21 08:44:06 -04:00
Jon Turney
90e3a93741 Cygwin: Use aclocal option --system-acdir rather than --acdir
In autogen.sh, use 'aclocal --system-acdir' rather than 'aclocal --acdir'.

'--acdir' was deprecated in automake 1.11 and removed in automake 1.13.
2020-10-19 17:54:56 -04:00
Jon Turney
0f6a76a835 Cygwin: Remove --with-windows-{libs,headers} 2020-10-19 17:54:56 -04:00
Jon Turney
d37c87d889 Cygwin: Remove ccwrap
ccwrap massages the compiler's standard include directories to remove
'/usr/include/w32api', with the intent of allowing it to be overriden by
'--with-windows-headers' (See 4c36016b).

I'm not 100% convinced that this is always working as desired, since in
some places w32api includes are done using <w32api/something.h>, which
will find them via the path /usr/include.

If this does turn out to be needed, this could also be implemented by
constructing the appropriate compiler flags once, rather than on every
compiler invocation.
2020-10-19 17:54:55 -04:00
Jon Turney
5accf1be05 Cygwin: Stop using c++wrap for MinGW-compiled utilities
Stop using c++wrap for MinGW-compiled utilities.

(Partially reverts 96079146)
2020-10-19 17:54:55 -04:00
Torbjörn SVENSSON via Newlib
73e7ca5c80 libc/time: Move internal newlib tz-structs into own header
As discussed in GCC bug 97088
(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97088), parameters in
prototypes of library functions should use reserved names, or no name
at all.

This patch moves the internal struct __tzrule_struct to its own
internal header sys/_tz_structs.h.  This is included from newlib's
time code as well as from Cygwin's localtime wrapper.

Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@st.com>
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2020-10-19 17:54:54 -04:00
Ken Brown
0ee48565f0 Cygwin: AF_UNIX: recvmsg: check for shutdown
Call grab_admin_pkt at appropriate times to check whether we've been
shut down for reading.  Also, update our shutdown state whenever we
read a packet.

Untested.

FIXME: I'm not sure whether I've treated datagram sockets properly.
2020-10-19 17:23:40 -04:00
Ken Brown
99490d2825 Cygwin: AF_UNIX: grab_admin_pkg: refactor
Extract from grab_admin_pkg two new methods, record_shut_info and
process_admin_pkg.  Also add a new 'peek' argument to grab_admin_pkg.
If this is true, peek to see if the next packet in the pipe is an
administrative packet.  Otherwise, assume we already know it is.
2020-10-19 17:22:34 -04:00
Ken Brown
c60fcf1116 Cygwin: AF_UNIX: sendmsg: send shutdown state
Send the current shutdown state rather than _SHUT_NONE as part of
every packet sent.
2020-10-19 09:26:41 -04:00
Ken Brown
95012189c0 Cygwin: AF_UNIX: sendmsg: fix errno if socket is shut down
Following Posix and Linux, the errno should be EPIPE, not ESHUTDOWN.
2020-10-19 08:56:59 -04:00
Ken Brown
e1beea13e1 Cygwin: AF_UNIX: recvmsg: fix thinko
The pointer 'my_iovptr' was being incremented before it was used.
2020-10-17 14:58:53 -04:00
Jon Turney
039be0a0b4 Cygwin: Remove unused doc/ug-info.xml
Remove doc/ug-info.xml, not used in any document.
2020-10-14 16:02:58 -04:00
Jon Turney
db7375cdab Cygwin: Remove empty MT_SAFE and MT_SAFE_OBJECTS 2020-10-14 16:02:58 -04:00
Jon Turney
affd2cca88 Cygwin: Remove autoconf variable INSTALL_LICENSE
Remove autoconf variable INSTALL_LICENSE, which has a constant value
which is only used once.
2020-10-14 16:02:58 -04:00
Jon Turney
5107953a3a Cygwin: Drop AC_SUBST(LIBSERVER)
The autoconf variable LIBSERVER isn't defined, and it's value isn't
used. (The Makefile.in contains a literal value for the name of this
library instead).
2020-10-14 16:02:58 -04:00
Jon Turney
c9c6abfa16 Cygwin: Remove AC_ARG_PROGRAM/program_transform_name
Not done consistently, and probably never used.
2020-10-14 16:02:58 -04:00
Jon Turney
aed1829c54 Cygwin: Remove AC_PROG_MAKE_SET
This is only needed if we are using an ancient make which doesn't set
${MAKE}, but we say "This makefile requires GNU make." everywhere.

It only has an effect if @SET_MAKE@ is used, which we aren't doing
consistently.
2020-10-14 16:02:58 -04:00
Jon Turney
fe18bd2728 Cygwin: Drop STDINCFLAGS overrides
This used to turn off -nostdinc on a per-file basis, but has no effect
since 4c36016b5706.
2020-10-14 16:02:58 -04:00
Jon Turney
05d657d7a5 Cygwin: Drop looking for w32api in winsup/w32api
Stop looking for w32api headers in the (no longer existent)
winsup/w32api directory (removed in commit 61746d6ae850).
2020-10-14 16:02:58 -04:00