summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin
Commit message (Collapse)AuthorAgeFilesLines
...
* Document previous changeCorinna Vinschen2015-07-011-0/+3
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix fork after recovered stack overflowCorinna Vinschen2015-07-012-2/+19
| | | | | | | * fork.cc (frok::parent): Set stacktop value based on requested stack pointer value in child. Explain why. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add comment to sigaltstack to explain setting ss_flags hereCorinna Vinschen2015-06-302-0/+8
| | | | | | * signal.cc (sigaltstack): Add comment. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Handle ss_flags value longjmp safe.Corinna Vinschen2015-06-273-5/+18
| | | | | | | | | * exceptions.cc (_cygtls::call_signal_handler): Drop manipulating thread's ss_flags here. It's not safe against longjmp. * signal.cc (sigaltstack): Check if we're running on the alternate stack and set ss_flags returned in oss to SS_ONSTACK. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Define larger MINSIGSTKSZ and SIGSTKSZ values for CygwinCorinna Vinschen2015-06-262-0/+13
| | | | | | | | * include/cygwin/signal.h: Revert to define MINSIGSTKSZ and SIGSTKSZ here with bigger values to allow _cygtls to reside on signal stack, should it turn out to be required at one point. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix values returned by getrlimit(RLIMIT_STACK)Corinna Vinschen2015-06-262-10/+31
| | | | | | | * resource.cc (getrlimit): Fix values returned by RLIMIT_STACK. Explain why this had to be changed. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Complement SIGEV_* enums with macrosKen Brown2015-06-232-0/+8
| | | | | | * include/cygwin/signal.h (SIGEV_*): Add macros. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Don't push on original stack during alternate signal stack setupCorinna Vinschen2015-06-222-56/+56
| | | | | | | | | * exceptions.cc (_cygtls::call_signal_handler): Drop pushing a register on the original stack, it confuses GCC. Rearrange the assembler code so that $rax/$eax is not used by GCC to prepare an argument value. Use $rax/$eax without saving. Drop clearing $rbp/$epb. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Safe all clobbered volatile registers when using alternate stackCorinna Vinschen2015-06-212-22/+54
| | | | | | | | | * exceptions.cc (_cygtls::call_signal_handler): Drop subtracting 16 bytes from the alternate stack, it's not necessary. Safe all clobbered registers. Safe one on the orignal stack, the others on the alternate stack on both platforms. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix commentsCorinna Vinschen2015-06-201-2/+2
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* ChangeLog entries for Cygwin's alternate signal stack implementationCorinna Vinschen2015-06-201-0/+25
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add alternate signal stack to docsCorinna Vinschen2015-06-201-0/+6
| | | | | | | * new-features.xml (ov-new2.1): Add alterante signal stack info. * posix.xml (std-susv4): Move sigaltstack here. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Implement using alternate signal stack in CygwinCorinna Vinschen2015-06-201-13/+108
| | | | | | | * exceptions.cc (_cygtls::call_signal_handler): Implement alternate signal stack handling. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Use MINSIGSTKSZ and SIGSTKSZ from newlib for Cygwin as wellCorinna Vinschen2015-06-201-3/+0
| | | | | | | | | | * libc/include/sys/signal.h: Move altstack macros completely outside of rtems block. * include/cygwin/signal.h: Remove definitions of MINSIGSTKSZ and SIGSTKSZ here. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Handle exceptions in sigaltstackCorinna Vinschen2015-06-201-21/+35
| | | | | | * signal.cc (sigaltstack): Add fault handler. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Preliminary infrastructure to implement alternate stackCorinna Vinschen2015-06-198-147/+208
| | | | | | | | | | | | | | | | | | | | | | | * libc/include/sys/signal.h: Define SS_ONSTACK and SS_DISABLE unconditionally. (sigaltstack): Enable prototype on Cygwin. * common.din (sigaltstack): Export. * cygtls.cc (_cygtls::init_thread): Initialize altstack. * cygtls.h (__tlsstack_t): Rename from __stack_t to distinguish more clearly from stack_t. Accommodate throughout. (_cygtls): Add altstack member. * exceptions.cc (exception::handle): Set SIGSEGV handler to SIG_DFL if we encounter a stack overflow, and no alternate stack has been defined. * include/cygwin/signal.h (MINSIGSTKSZ): Define (SIGSTKSZ): Define. (SA_ONSTACK): Define. * signal.cc (sigaltstack): New function. * tlsoffset.h: Regenerate. * tlsoffset64.h: Ditto. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Formatting fixes in exceptions.ccCorinna Vinschen2015-06-192-37/+67
| | | | | | * Makefile.in (install-man): Exclude release subdir from search paths. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Disallow installing "man pages" from release subdirCorinna Vinschen2015-06-182-4/+8
| | | | | | * Makefile.in (install-man): Exclude release subdir from search paths. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add sethostnameCorinna Vinschen2015-06-175-2/+26
| | | | | | | | | | | | * net.cc (sethostname): New function. * common.din (sethostname): Export * include/cygwin/version.h (CYGWIN_VERSION_DLL_MAJOR): Bump to 2001. (CYGWIN_VERSION_DLL_MINOR): Set to 0. * new-features.xml (ov-new): Rename from ov-new1.7. (ov-new2.1): Add new section. Document sethostname. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add release/2.0.5 fileCorinna Vinschen2015-06-171-0/+16
|
* Try to handle concurrent close on socket more gracefullyCorinna Vinschen2015-06-152-14/+53
| | | | | | | | | | | | | | | * fhandler_socket.cc (LOCK_EVENTS): Don't enter critical section with invalid mutex handle since then socket has been closed. (UNLOCK_EVENTS): Close critical section. (fhandler_socket::evaluate_events): Handle calling connect on shutdown socket. (fhandler_socket::wait_for_events): Try for pthread_testcancel in case of WAIT_FAILED. Try to come up with a better errno in case we waited on an invalid handle. (fhandler_socket::release_events): Change wsock_mtx and wsock_evt to NULL under lock to avoid accessing invalid handle. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Handle more Winsock error codes.Corinna Vinschen2015-06-152-0/+7
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Don't enforce SA_RESTART in non-main threadsCorinna Vinschen2015-06-152-1/+12
| | | | | | | | * exceptions.cc (_cygtls::call_signal_handler): Disable enforcing SA_RESTART in non-main threads to allow returning with EINTR from system calls. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix ChangeLog entryCorinna Vinschen2015-06-111-1/+1
|
* Bump minor DLL version to 5Corinna Vinschen2015-06-112-1/+5
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Avoid compiler warning in latest patchcygwin-2_0_4-releaseCorinna Vinschen2015-06-082-2/+7
| | | | | | | * pinfo.cc (_pinfo::cwd): Initialize s to avoid comiler warning. (_pinfo::cmdline): Ditto. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Evaluate /proc/$PID/{root,cwd,cmdline} for native processesCorinna Vinschen2015-06-083-3/+94
| | | | | | | | | | | * pinfo.cc (_pinfo::root): Fake default root for native processes. (open_commune_proc_parms): New helper function to access process parameter block. (_pinfo::cwd): Fetch missing cwd for native processes from processes parameter block. (_pinfo::cmdline): Ditto for command line. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* add bind mount fix to release notesCorinna Vinschen2015-06-081-0/+3
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Avoid delays trying to fetch Cygwin info from non-Cygwin processesCorinna Vinschen2015-06-083-1/+22
| | | | | | | * pinfo.cc (_pinfo::commune_request): Don't try to send commune requests to non-Cygwin processes. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Generate SIGHUP for terminal process group on tty master closeTakashi Yano2015-06-082-6/+25
| | | | | | | | | * fhandler_tty.cc (fhandler_pty_slave::write): Move causing of SIGHUP into fhandler_pty_master::close(). (fhandler_pty_slave::read): Ditto. (fhandler_pty_master::close): Ditto. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Bump minor DLL version to 4Corinna Vinschen2015-06-082-1/+5
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add Cygwin 2.0.3 release filecygwin-2_0_3-releaseCorinna Vinschen2015-06-031-0/+8
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Bump minor DLL version to 3Corinna Vinschen2015-06-022-1/+5
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Use NtQueryObject to detect closing the last master handleCorinna Vinschen2015-05-282-8/+29
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* * net.cc: Define _NETIOAPI_H_ to accomodate newer w32api.Takashi Yano2015-05-272-1/+6
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Bump minor DLL version to 2cygwin-2_0_2-releaseCorinna Vinschen2015-05-032-1/+5
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Bump minor DLL version to 1cygwin-2_0_1-releaseCorinna Vinschen2015-04-303-1/+13
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Use all ACEs from original ACL on Samba shareCorinna Vinschen2015-04-302-3/+8
| | | | | | | * security.cc (convert_samba_sd): Fix accidental dropping of all non-Unix User, non-Unix Group accounts. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Define __s64 and __u64cygwin-2_0_0-releaseCorinna Vinschen2015-04-272-1/+9
| | | | | | * include/asm/types.h: Add __s64 and __u64 types. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Document previous unlink patchCorinna Vinschen2015-04-231-0/+6
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Handle unlinking in-use files on virtual drivesCorinna Vinschen2015-04-234-3/+46
| | | | | | | | | | * path.cc (path_conv::set_nt_native_path): New function. * path.h (path_conv::set_nt_native_path): Add prototype. * syscall.cc (try_to_bin): Handle moving files to the recycler accessed via a local virtual drive (subst). Fix a problem renaming the file to the unique replacement name on Samba. Align comment. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix closing too many handles in pty fchown/fchmodCorinna Vinschen2015-04-232-3/+5
| | | | | | | * fhandler_tty.cc (fhandler_pty_slave::fch_close_handles): Don't close handles not opened via fhandler_pty_slave::fch_open_handles. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix OPOST for non-Cygwin pty slavesTakashi Yano2015-04-235-19/+178
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * fhandler.h (class fhandler_base): Add virtual function get_io_handle_cyg() to get handle from which OPOST-processed output is read on PTY master. (class fhandler_pty_slave): Add variable output_handle_cyg to store a handle to which OPOST-processed output is written. Add two functions, i.e., set_output_handle_cyg() and get_output_handle_cyg(), regarding variable output_handle_cyg. Now, output_handle is used only by native windows program. The data before OPOST-processing is written to output_handle and OPOST-processing is applied in the master-side. For a cygwin process, OPOST-processing is applied in the slave-side, and the data after OPOST-processing is written to output_handle_cyg. (class fhandler_pty_master): Add two variables, i.e., io_handle_cyg and to_master_cyg, to store handles of a pipe through which OPOST-processed output passes. Add pty_master_fwd_thread and function pty_master_fwd_thread() for a thread which applies OPOST-processing and forwards data from io_handle to to_master_cyg. Add function get_io_handle_cyg() regarding variable io_handle_cyg. Now, the pipe between io_handle and to_master are used only by native windows program for applying OPOST-processing in the master-side. For a cygwin process, the pipe between io_handle_cyg and to_master_cyg is used for passing through the data which is applied OPOST-processing in the slave-side. * fhandler_tty.cc (struct pipe_reply): Add member to_master_cyg. (fhandler_pty_master::process_slave_output): Read slave output from io_handle_cyg rather than io_handle. (fhandler_pty_slave::fhandler_pty_salve): Initialize output_handle_cyg. (fhandler_pty_slave::open): Set output_handle_cyg by duplicating handle to_master_cyg on PTY master. (fhandler_pty_slave::close): Close handle output_handle_cyg. (fhandler_pty_slave::write): Write data to output_handle_cyg rather than output_handle. (fhandler_pty_slave::fch_close_handles): Close handle output_handle_cyg. (fhandler_pty_master::fhandler_pty_master): Initialize io_handle_cyg, to_master_cyg and master_fwd_thread. (fhandler_pty_master::cleanup): Clean up to_master_cyg as well. (fhandler_pty_master::close): Print to_master_cyg as well in debug message. Terminate master forwarding thread. Close handles to_master_cyg and io_handle_cyg. (fhandler_pty_master::ioctl): Use io_handle_cyg rather than to_master. (fhandler_pty_master::pty_master_thread): Add code for duplicating handle to_master_cyg. (fhandler_pty_master::pty_master_fwd_thread): New function for a thread to forward OPOST-processed data from io_handle to to_master_cyg. This thread applies OPOST-processing to the output of native windows program. (::pty_master_fwd_thread): Ditto. (fhandler_pty_master::setup): Create a new pipe to pass thruegh OPOST- processed output. Create new thread to forward data from io_handle to to_master_cyg. Set handle to_master_cyg to tty. Print io_handle_cyg as well in debug message. Close handles io_handle_cyg and to_master_cyg in case of error. (fhandler_pty_master::fixup_after_fork): Set handle to_master_cyg to tty. Copy handle to_master_cyg from arch->to_master_cyg. (fhandler_pty_master::fixup_after_exec): Clean up to_master_cyg. * select.cc: Check handle returned by get_io_handle_cyg() rather than get_handle(). * tty.h (class tty): Add variable _to_master_cyg to store a handle to which OPOST-processed data is written. Add two functions, to_master_cyg() and set_to_master_cyg(), regarding _to_master_cyg. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Undef basename before defining function.Corinna Vinschen2015-04-232-0/+7
| | | | | | | * path.cc (basename): Undefine basename before defining function to avoid type collision with prototype in string.h. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Remove Cygwin's libgen.hCorinna Vinschen2015-04-232-23/+4
| | | | | | * include/libgen.h: Remove in favor of newlib version. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix broken SID in passwd/group entry for unkown accountCorinna Vinschen2015-04-232-1/+6
| | | | | | | * uinfo.cc (pwdgrp::fetch_account_from_windows): Always revert SID subauth count after checking for known domain. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix broken PSID problem on cygheap in account handlingCorinna Vinschen2015-04-234-4/+20
| | | | | | | | | | * pwdgrp.h: Add comment to explain below change. (struct pg_pwd): Convert sid member to BYTE array. (struct pg_grp): Ditto. * grp.cc (pwdgrp::parse_group): Accommodate above change. * passwd.cc (pwdgrp::parse_passwd): Ditto. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Don't rely on size argument in shmget callCorinna Vinschen2015-04-233-1/+17
| | | | | | | | * shm.cc (shmget): Fetch segment size from server rather than using size argument to accommodate existing segments. Add comment to explain why. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Bump Cygwin version to 2.0.0.Corinna Vinschen2015-04-233-2/+7
| | | | | | | | | | * include/cygwin/version.h (CYGWIN_VERSION_DLL_MAJOR): Bump to 2000. (CYGWIN_VERSION_DLL_MINOR): Set to 0. * new-features.xml (ov-new2.0): Rename from ov-new1.7.36 and change version number to 2.0. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Set mcontext.cr2 to the faulting addressJon TURNEY2015-04-232-0/+9
| | | | | | | * exceptions.cc (call_signal_handler): Set mcontext.cr2 to the faulting address. Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>