Commit Graph

9765 Commits

Author SHA1 Message Date
Christopher Faylor 8f8eeb70ba * child_info.h (cygheap_exec_info::sigmask): Declare new field.
* cygheap.cc (init_cygheap::find_tls): Rename threadlist_ix -> ix.  Only take
one pass through thread list, looking for eligible threads to signal.  Set a
new param indicating that function has found a sigwait* mask.
* cygheap.h (init_cygheap::find_tls): Reflect new parameter.
* dcrt0.cc (parent_sigmask): New variable.
(child_info_spawn::handle_spawn): Save parent's signal mask here.
(dll_crt0_1): Restore parent's signal mask to tls sigmask as appropriate.  Call
sig_dispatch_pending to flush signal queue when we can finally do something
with signals.
* exceptions.cc (sigpacket::process): Avoid attempting to handle signals if we
haven't finished initializing.  Rely on the fact that find_tls will do mask
checking and don't do it again.  Delete ill-named 'dummy' variable.
* sigproc.cc (cygheap_exec_info::alloc): Save calling thread's signal mask in
new sigmask field.
(wait_sig): Try to debug when WFSO fails and DEBUGGING is defined.
* thread.cc (pthread::set_tls_self_pointer): Make this a true automatic method
rather than inexplicably relying on a thread parameter.
(pthread::thread_init_wrapper): Accommodate set_tls_self_pointer change to
non-static.  Initialize sigmask before setting tid or suffer signal races.
* ehread.h (pthread::set_tls_self_pointer): Make non-static, delete parameter.
2013-03-31 12:35:44 +00:00
Christopher Faylor 4332090c2d whitespace 2013-03-31 11:05:35 +00:00
Corinna Vinschen 4aa4632ad2 * cygthread.cc (cygthread::terminate_thread): Only try to free
thread stack on systems not freeing it by themselves.
	* wincap.h (wincaps::terminate_thread_frees_stack): New element.
	* wincap.cc: Implement above element throughout.
2013-03-29 17:00:36 +00:00
Christopher Faylor bb93b7ab95 * pinfo.h (pinfo::status_exit): Rename from former static function in pinfo.cc.
(pinfo::operator == (char *)): Remove unused operator.
* pinfo.cc (pinfo::status_exit): Move this function info pinfo class.  Use
progname from the pinfo rather than myself.  Be defensive when inspecting
procinfo.
2013-03-29 16:19:11 +00:00
Christopher Faylor 6fcb223858 * sigproc.cc (wait_sig): Avoid uninitialized use of nb when retrying.
Consolidate two error messages into one.
2013-03-29 13:18:25 +00:00
Christopher Faylor 5e31c80e4e * sigproc.cc (pending_signals::retry): Declare new element.
(pending_signals::pending): Force an additional loop through wait_sig by
setting retry whenever this function is called.
(sig_send): Reorganize to wait for SIGHOLD at bottom.  Always add signal to
pending queue and work on whole queue rather than just the one signal.  Loop
when sigq.retry is set.  Fix long-broken check for SIGCHLD after queued
signals.
2013-03-29 01:22:14 +00:00
Christopher Faylor 1a863e04b3 * exceptions.cc (exception::handle): Generalize comment. 2013-03-28 16:14:53 +00:00
Corinna Vinschen d420513d39 * faq-what.xml (faq.what.supported): Mention Windows 8 and Server 2012.
Change sentence on native 64 bit version.
2013-03-27 16:12:30 +00:00
Christopher Faylor 744f64fded test checkin 2013-03-19 16:41:42 +00:00
Christopher Faylor 41090b6193 add news 2013-03-09 21:58:54 +00:00
Christopher Faylor 56bc657ce4 * cygtls.h (_cygtls::signal_debugger): Change argument type.
(_cygtls::copy_context): Delete declaration.
* exceptions.cc (exception::handle): Don't call copy_context() here.  Move
signal_handler call earlier and always call it.
(_cygtls::copy_context): Delete definition.
(_cygtls::signal_debugger): Move copy_context logic here.  Suspend thread
receiving signal before gathering context information.
2013-03-09 21:55:18 +00:00
Christopher Faylor 6a375e0325 * spawn.cc (child_info_spawn::worker): Save and restore my_wr_proc_pipe around
non-execing operations to avoid handle leak seen in
http://cygwin.com/ml/cygwin/2013-03/msg00152.html .
2013-03-09 00:11:31 +00:00
Corinna Vinschen 8981489bec * include/sys/un.h (UNIX_PATH_MAX): Rename from UNIX_PATH_LEN to
follow Linux.
	* fhandler_socket.cc: Change UNIX_PATH_LEN to UNIX_PATH_MAX throughout.
	(fhandler_socket::recv_internal): Don't return prematurely in case of
	successful return.  For AF_LOCAL sockets, overwrite returned AF_INET
	name with AF_LOCAL name.
2013-03-07 15:39:35 +00:00
Corinna Vinschen b5545a7b7e * fhandler_socket.cc (fhandler_socket::bind): Fix check for AF_LOCAL
filename length to allow non-NUL terminated strings within namelen
	bytes.  Copy over sun_path to local array sun_path to have a
	NUL-terminated string for subsequent function calls.  Move path_conv
	check before OS bind call to not bind the socket before being sure
	the file doesn't exist.  Add and fix comments.
2013-03-07 11:04:28 +00:00
Corinna Vinschen bd142b93ae * mount.cc (fs_names): Add trailing NULL element to avoid potential
SEGV in format_proc_filesystems.
2013-03-06 14:10:23 +00:00
Corinna Vinschen 0a42dbf12a * faq-using.xml: Fix expression and uppercase Samba. 2013-03-06 11:28:29 +00:00
Christopher Faylor 4afefdec51 Remove now-inappropriate comment. 2013-03-01 16:28:09 +00:00
Christopher Faylor f77f82bba5 fix latest changelog description 2013-03-01 15:55:39 +00:00
Christopher Faylor aad4a3c932 * exceptions.cc (exception::handle): Eliminate buggy recursed value and just
check if we're exiting.
2013-03-01 15:48:14 +00:00
Corinna Vinschen 1ef8ce71a8 * include/pthread.h (pthread_atfork): Add missing declaration. 2013-02-26 10:32:36 +00:00
Yaakov Selkowitz 7b3739f2ae * include/error.h (error_message_count): Declare as dllimport.
(error_one_per_line): Ditto.
(error_print_progname): Ditto.
2013-02-21 03:15:47 +00:00
Yaakov Selkowitz 7e38f161ea * Makefile.in (CYGWIN_LDFLAGS): Replace -static-lib* with -static.
(MINGW_LDFLAGS): Ditto.
(ZLIB): Simplify accordingly.
2013-02-21 02:13:17 +00:00
Christopher Faylor df85c52e8c * pathnames.sgml: Remove stray '@'. 2013-02-13 18:07:24 +00:00
Christopher Faylor 729c92aaa7 * pathnames.sgml: Clarify '@' processing. 2013-02-13 17:57:19 +00:00
Corinna Vinschen 064e3a9115 * child_info.h (CURR_CHILD_INFO_MAGIC): Update.
(class child_info_fork): Drop extraneous semicolon.
2013-02-08 20:15:05 +00:00
Corinna Vinschen cf4acdbc1f * fhandler_socket.cc (fhandler_socket::bind): Fix error code for
empty filename.
2013-02-04 12:21:56 +00:00
Corinna Vinschen 188fc1cf6e * fhandler_socket.cc (fhandler_socket::bind): Fix length check of
AF_LOCAL filename so it never accesses memory beyond namelen.  Also
	make sure filename is NUL-terminated.
2013-02-04 12:04:20 +00:00
Christopher Faylor 118e51be1d * DevNotes: Add entry cgf-000022.
* cygtls.h (_cygtls::func): Define as a sa_sigaction style function.
* exceptions.cc (sig_handle_tty_stop): Ditto.
(_cygtls::interrupt_setup): Fix coercion to accommodate 'func' change.
(ctrl_c_handler): Use tty kill_pgrp to send a signal.
(sigpacket::process): Don't process sigflush here.
(_cygtls::call_signal_handler): Reorganize to avoid a race.  Always call
sa_sigaction style function.
* fhandler_termios.cc (is_flush_sig): Define new function.
(tty_min::kill_pgrp): Handle tty flush when signal detected.
(fhandler_termios::bg_check): Be slightly more paranoid about checking for
valid tty.
(fhandler_termios::sigflush): Don't flush unless tty owner.
* fhandler_tty.cc (fhandler_pty_slave::ioctl): Use tty kill_pgrp to send
signal.
(fhandler_pty_master::ioctl): Ditto.
* signal.cc (killsys): Delete definition.
* sigproc.h (killsys): Delete declaration.
* include/cygwin/signal.h (siginfo_t): Simplify union/struct nesting slightly.
Implement mechanism to allow cygwin data passing.
2013-01-31 05:26:47 +00:00
Christopher Faylor 95b7947d04 * faq-programming.xml: Remove reference to "make check". 2013-01-23 16:54:35 +00:00
Christopher Faylor a69e27906f * miscfuncs.cc (__import_address): Check if malloc field points directly at
'malloc'.
2013-01-23 14:24:34 +00:00
Christopher Faylor 0e8c8b0093 * miscfuncs.cc (__import_address): On second thought, the chance that this
pointer could be NULL is very low so don't bother checking for it.
2013-01-23 14:06:06 +00:00
Christopher Faylor df37bdc5b7 * exceptions.cc (exception::handle): Make attempt to recursively dump stack
fatal.
2013-01-23 05:27:36 +00:00
Christopher Faylor 1fc747f37a * miscfuncs.cc (__import_address): Avoid NULL explicitly. 2013-01-23 02:06:44 +00:00
Christopher Faylor 9c4478df47 * miscfuncs.cc (__import_address): Avoid treating random instructions as import
jump.
* malloc_wrapper.cc (malloc_init): Remove comment about 64-bit.
2013-01-23 02:02:36 +00:00
Christopher Faylor 93ff4bbee0 * dcrt0.cc (dll_crt0_1): Comment assumption.
* exceptions.cc (sigpacket::setup_handler): Avoid sending signals during fork
processing.
2013-01-21 17:17:44 +00:00
Christopher Faylor 3b1a8c572f * dcrt0.cc (dll_crt0_1): Flag that we are working "incyg". Handle any signals
(presumably exiting signals) which may have come in while we are in the process
of setting up.
2013-01-21 16:56:09 +00:00
Christopher Faylor df0f949cfd Update copyrights 2013-01-21 16:28:27 +00:00
Christopher Faylor 02211f348d Update copyrights 2013-01-21 16:21:23 +00:00
Christopher Faylor f5183c2533 * update-copyright: Recognize configure.ac scripts too. 2013-01-21 16:20:23 +00:00
Corinna Vinschen e6e5ab6936 Use same fix to silence newer gcc as in 64 bit branch 2013-01-21 13:53:03 +00:00
Christopher Faylor 6d34849474 * cygerrno.h (__reg3): Define.
* cygmalloc.h (__reg3): Ditto.
2013-01-21 07:42:02 +00:00
Christopher Faylor a526df1e20 * cygerrno.h: Conditionally define __regN for cygserver. 2013-01-21 07:34:07 +00:00
Christopher Faylor 2033ccdd17 * malloc_wrapper.cc (malloc_init): Re-add inadvertently dropped comment which
explains what's going on with the use_internal calculation.
2013-01-21 04:43:48 +00:00
Christopher Faylor bc837d22f3 Throughout, update copyrights to reflect dates which correspond to main-branch
checkins.  Regularize copyright format.
2013-01-21 04:38:31 +00:00
Christopher Faylor 6e75c72b89 Throughout, change __attribute__ ((regparm (N))) to just __regN. Throughout,
(mainly in fhandler*) start fixing gcc 4.7.2 mismatch between regparm
definitions and declarations.
* gendef: Define some functions to take @ declaration to accommodate _regN
defines which use __stdcall.
* gentls_offsets: Define __regN macros as empty.
* autoload.cc (wsock_init): Remove unneeded regparm attribute.
* winsup.h (__reg1): Define.
(__reg2): Define.
(__reg3): Define.
* advapi32.cc (DuplicateTokenEx): Coerce some initializers to avoid warnings
from gcc 4.7.2.
* exceptions.cc (status_info): Declare struct to use NTSTATUS.
(cygwin_exception::dump_exception): Coerce e->ExceptionCode to NTSTATUS.
* fhandler_clipboard.cc (cygnativeformat): Redefine as UINT to avoid gcc 4.7.2
warnings.
(fhandler_dev_clipboard::read): Ditto.
2013-01-21 04:34:52 +00:00
Christopher Faylor d89e61f354 * update-copyright (update_maybe): Accommodate perl-style copyright comments. 2013-01-21 04:30:27 +00:00
Christopher Faylor eb0876b22f * update-copyright: Silently skip nonexistent files. Display filename on
update.  Don't update non-Red Hat copyrights.
2013-01-21 03:55:55 +00:00
Christopher Faylor 0413f0bd40 * update-copyright: Update standard copyright information based on cvs log and
current sandbox status.
2013-01-20 23:56:26 +00:00
Christopher Faylor 4713b1b294 * malloc_wrapper.cc: Change 'use_internal_malloc' to 'use_internal' throughout.
(export_malloc_called): Delete.
(internal_malloc_determined): New variable.
(malloc_init): Control calculation of internal/external malloc based on
'internal_malloc_determined'.  Use import_address() to determine if malloc in
user_data is ours or not.
* miscfuncs.cc (thread_wrapper): Make static.
(__import_address): Define new function.
* miscfuncs.h (import_address): New define.
(__import_address): Declare new function.
2013-01-20 22:59:58 +00:00
Christopher Faylor 1471537a8f * sigproc.cc (sig_dispatch_pending): Add correct regparm attributes to match
declaration.
(pid_exists): Ditto.
(proc_subproc): Ditto.
(sig_clear): Ditto.
(sig_send): Ditto.
(checkstate): Ditto.
2013-01-20 06:34:59 +00:00