summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* * dll_init.cc (reserve_upto): Remove.Christopher Faylor2011-05-304-112/+147
| | | | | | | | | | | | | | | (release_upto): Ditto. (dll_list::reserve_space): New function to reserve space needed by DLL_LOAD dlls early in the fork process. (dll_list::load_after_fork): Rewrite to use recursion to track reservations it makes while trying to make dlls land where they belong. (dll_list::load_after_fork_impl): New function used by load_after_fork. (dll_list::alloc): Initialize image base field. * dll_init.h (dll_list::prefered_base): New field. (dll_list::reserve_space): Declare new function. (dll_list::load_after_fork): Declare new function. * fork.cc (frok::child): call dll_list::reserve_space early, so we can retry if it fails.
* * fhandler_termios.cc (fhandler_termios::bg_check): Do not return EIO when aChristopher Faylor2011-05-303-25/+54
| | | | | | | process group has no leader as this is allowed and does not imply an orphaned process group. Add a test for orphaned process groups. (tty_min::is_orphaned_process_group): Define new function. * tty.h (tty_min::is_orphaned_process_group): Define new function.
* * dll_init.cc (dll_list::find_by_modname): New function to search the dll listChristopher Faylor2011-05-306-35/+207
| | | | | | | | | | | | | | | | | | | | | | | | | | | for a module name only (no path). (dll_list::alloc): Initialize newly-added members of struct dll. (dll_list::append): New function to factor out the append operation (used by dll_list::topsort). (dll_list::populate_deps): New function to identify dll dependencies. (dll_list::topsort): New function to sort the dll list topologically by dependencies. (dll_list::topsort_visit): New helper function for the above. * dll_init.h (dll::ndeps): New class member. (dll::deps): Ditto. (dll::modname): Ditto. (dll_list::find_by_modname): New function related to topsort. (dll_list::populate_all_deps): Ditto. (dll_list::populate_deps): Ditto. (dll_list::topsort): Ditto. (dll_list::topsort_visit): Ditto. (dll_list::append): Ditto. (pefile): New struct allowing simple introspection of dll images. * fork.cc (fork): Topologically sort the dll list before forking * child_info.h (CURR_CHILD_INFO_MAGIC): Refresh. (child_info::refresh_cygheap): New function. * spawn.cc (spawn_guts): Call refresh_cygheap before creating a new process to ensure that cygheap_max is up-to-date. * fork.cc (frok::parent): Ditto.
* * cygheap.cc (cygheap_dummy): Rename from cygheap_at_start.Christopher Faylor2011-05-303-5/+13
| | | | | | | (cygheap): Accommodate name change to cygheap_dummy. (cygheap_init): Ditto. (cygheap_fixup_in_child): Simplify slightly. * fork.cc (fork): Add an advisory comment.
* * fhandler.cc (fhandler_overlapped::wait_overlapped): Make sure that I/O isChristopher Faylor2011-05-292-2/+7
| | | | cancelled on signal.
* * ps.cc (ttynam): Accommodate new console numbering.Christopher Faylor2011-05-292-8/+16
| | | | (main): Ditto.
* * dll_init.cc (dll_list::alloc): Initialize dll::image_size.Christopher Faylor2011-05-283-6/+48
| | | | | | | | (reserve_at): Don't reserve space needed by the target dll if the latter overlaps the free region to be blocked. (dll_list::load_after_fork): Use new version of reserve_at. * dll_init.h (dll::image_size): New member. (pefile): New struct.
* Revert previous checkins as they introduced a bug when running zsh.Christopher Faylor2011-05-284-225/+15
|
* * dll_init.cc (reserve_upto): Remove.Christopher Faylor2011-05-283-6/+34
| | | | | | | | | | | | (release_upto): Ditto. (dll_list::reserve_space): New function to reserve space needed by DLL_LOAD dlls early in the fork process. (dll_list::load_after_fork): Rewrite to use recursion for tracking reservations made while trying to make dlls land where they belong. (dll_list::load_after_fork_impl): Ditto. (dll_list::alloc): Initialize image base field. * dll_init.h (struct dll_list): declare new functions. (dll::image_size): New member.
* * dll_init.cc (dll_list::find_by_modname): New function to search the dll listChristopher Faylor2011-05-284-9/+191
| | | | | | | | | | | | | | | | | | | | | | for a module name only (no path). (dll_list::alloc): Initialize newly-added members of struct dll. (dll_list::append): New function to factor out the append operation (used by dll_list::topsort). (dll_list::populate_deps): New function to identify dll dependencies. (dll_list::topsort): New function to sort the dll list topologically by dependencies. (dll_list::topsort_visit): New helper function for the above. * dll_init.h (dll::ndeps): New class member. (dll::deps): Ditto. (dll::modname): Ditto. (dll_list::find_by_modname): New function related to topsort. (dll_list::populate_all_deps): Ditto. (dll_list::populate_deps): Ditto. (dll_list::topsort): Ditto. (dll_list::topsort_visit): Ditto. (dll_list::append): Ditto. (pefile): New struct allowing simple introspection of dll images. * fork.cc (fork): Topologically sort the dll list before forking.
* * dll_init.c (dll_list::load_after_fork): Don't clear in_forkee here.Christopher Faylor2011-05-284-46/+70
| | | | | | | | | * fork.cc (frok::errmsg): Rename from 'error'. (frok::error): New function. Handle conditional printing of error messages. (frok::parent): Record hchild handle for use by error function. Use throughout. Use error function rather than setting error pointer directly. (fork): Clear is_forkee here. Accommodate rename of 'error' to 'errmsg'. * sigproc.cc (child_info::proc_retry): Detect EXITCODE_FORK_FAILED.
* * fhandler.cc (handler_base_overlapped::wait_overlapped): Rework to attempt toChristopher Faylor2011-05-282-9/+20
| | | | | properly set errno and bytes read for non-blocking case. Change to just rely on res to indicate error conditions.
* * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Don't set io_pendingChristopher Faylor2011-05-281-0/+6
| | | | | unless ReadFile has returned an error. (this is a partial fix, accidentally checked in)
* * autoload.cc: Call _api_fatal in asm.Christopher Faylor2011-05-2841-2923/+4424
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * child_info.h: Redefine CURR_CHILD_INFO_MAGIC. (child_info_fork::abort): Rename from handle_failure. Change arguments. * cygtls.h (_local_storage::ttybuf): New field. * dcrt0.cc (vapi_fatal): Split api_fatal. Add "in forked process" to message when appropriate. (api_fatal): Use vapi_fatal. * devices.h: Make multiple inclusion safe. (fh_devices): Add FH_CONS* stuff. Reorder slightly. (device): Eliminate anonymous union. Add more ways to access minor/major. (device::setunit): Accommodate no-longer-anonymous union. (device::is_fs): Ditto. (device::is_fs_special): Ditto. (device::major): New function. (device::minor): Ditto. (device::is_device): New function. (device::not_device): Ditto. (device::operator int): New operator. (device::operator fh_devices): Ditto. (device::operator bool): Ditto. (device::operator DWORD): Ditto. (device::operator =): Ditto. (isproc_dev): New function. (isprocsys_dev): Ditto. (iscons_dev): Ditto. (istty_slave_dev): Ditto. * devices.in: Add new "/dev/cons*" strings. Accommodate no-longer-anonymous union throughout. (BRACK): Use more precise method for initialization. * devices.cc: Regenerate. * dtable.cc (dtable::stdio_init): Use get_cttyp instead of get_tty. (dtable::find_archetype): Use new DWORD operator in device to test archetypes. (dtable::init_std_file_from_handle): Use different method to initialize 'dev'. Adapt to different ctty handling and accommodate /dev/cons*. (fh_alloc): Accommodate no-longer-anonymous union. Adapt to new /dev/cons*. (build_fh_pc): Make debugging output more useful. * exceptions.cc (ctrl_c_handler): Use get_cttyp instead of get_tty. * external.cc (fillout_pinfo): Accommodate new cons* stuff. * fhandler.cc (fhandler_base::read): Eliminate is_slow() test. * fhandler.h (fhandler_base::*): Adapt to changes in device.h. (fhandler_*::is_slow): Delete. ( fhandler_proc::get_proc_fhandler): Return fh_devices type. * fhandler_console.cc (open_shared_console): New function. (console_unit): New class. (console_unit::console_unit): New constructor. (enum_windows): New function. Declare as friend to console_unit. (fhandler_console::set_unit): New function. (fhandler_console::get_tty_stuff): Call set_unit to set the unit number and determine if initialization is needed. Eliminate flags parameter. (tty_list::get_cttyp): Rename (sorta) from get_tty. Return pointer to correct tty_min. (fhandler_console::open): Adapt to elimination of argument to get_tty_stuff. (fhandler_console::output_tcsetattr): Properly detect error condition. (fhandler_console::fixup_after_fork_exec): Adapt to get_tty_stuff() setting tc automatically. * fhandler_proc.cc: Use FH_BAD rather than 0 throughout where using fh_devices enum. (fhandler_proc::get_proc_fhandler): Return fh_devices. Adapt to devices.h changes. * fhandler_process.cc: Adapt to devices.h changes. Use FH_BAD rather than 0 throughout where using fh_devices enum. * fhandler_procnet.cc: Ditto. * fhandler_procsys.cc: Ditto. * fhandler_procsysvipc.cc: Ditto. * fhandler_tape.cc (fhandler_dev_tape::fhandler_dev_tape): Ditto. * fhandler_termios.cc (handler_termios::bg_check): Use tc->ttyname() rather than assuming that we can construct a tty. * fhandler_tty.cc (fhandler_tty_master::fhandler_tty_master): Just return get_minor() of dev. (fhandler_pty_master::process_slave_output): Add slightly more debugging info. (fhandler_tty_slave::fhandler_tty_slave): Change name from ntty to unit. (fhandler_pty_master::open): Ditto. (fhandler_tty_slave::ioctl): Adapt to change which causes ctty to represent a complete device. (fhandler_tty_master::init_console): Add debugging for failure path. (fhandler_pty_master::setup): Use get_unit() to retrieve unit number rather than relying on raw ntty. (fhandler_pty_master::setup): Ditto. * fhandler_virtual.h (virt_tab_t): Redefine fhandler as fh_devices. * fork.cc: Remove obsolete vfork stuff. (frok::child): Don't assume that a ctty == 0 is valid. * mount.cc (mount_info::conv_to_win32_path): Adapt to device struct changes. (mount_info::conv_to_win32_path): Ditto. * path.cc (path_conv::check): Retrive major/minor numbers via a method rather than accessing them directly from device. Rely on dev operators to set/retrieve device information as required by device struct change. * path.h (isproc_dev): Move to devices.h. (isprocsys_dev): Ditto. (isvirtual_dev): Ditto. (path_conv:{isdevice,isfifo,isspecial,iscygdrive,issocket,get_devn,get_unitn}): Use device methods to access/manipulate devices. * pinfo.cc (pinfo::exit): Don't assume that ctty == 0 is valid. Use iscons_dev to determine if a device is a console. (_pinfo::_ctty): Use device::parse to generate tty/cons name. (_pinfo::set_ctty): Don't assume that ctty == 0 is valid. Remove redundant info from debugging. * shared.cc (offsets): Remove console offset. * shared_info.h (shared_locations): Ditto. * syscalls.cc (umask): Use device methods to manipulate device information. (ctermid): Use device::parse to generate term device name. * tlsoffsets.h: Regenerate. * tty.cc (ttyslot): Return minor number of ctty since ctty now represents a full device. (tty::create_master): Set ctty to a complete device. (tty_list::attach): Rework to detect new /dev/cons* stuff. (tty_list::terminate): Adapt to changes to ctty. (tty_list::init): Adapt to change to setntty - pass in device major number. (tty::exists): Use get_unit() to retrive tty unit number. (tty::open_mutex): Ditto. (tty::open_inuse): Ditto. (tty::create_inuse): Ditto. (tty::get_event): Ditto. (tty_min::ttyname): Define new function. * tty.h (tty_min::ntty): Redefine as fh_devices. (tty::exists): Use get_unit() to retrive tty unit number. (tty::open_mutex): Ditto. (tty::open_inuse): Ditto. (tty::create_inuse): Ditto. (tty::get_event): Ditto. (tty_min::ttyname): Declare new function. (tty::getntty): Declare as const. (tty_list::operator []): Assure that only minor part of argument is used. * dll_init.cc (dll_list::alloc): Detect mismatch of data segments early issuing an explicit error message if necessary. * heap.cc (heap_init): Adapt to changes from fork->handle_failure to fork->abort. * pinfo.h (EXITCODE_FORK_FAILED): New enum. (from Ryan Johnson) * sigproc.cc (child_info_fork::abort): Rename from handle_failure. Change arguments to allow passing in a printf-like message. * winsup.h (api_fatal): Delete macro definition. (api_fatal): Redefine from __api_fatal. (vapi_fatal): Declare new function. * include/sys/strace.h (strace_vprintf): Define new macro. * ntdll.h (_SYSTEM_INFORMATION_CLASS): Add SystemHandleInformation.
* * v8500/sbrk.c (_sbrk): Tidy code.Nick Clifton2011-05-274-38/+34
| | | | | | | Base start of heap on the "heap_start" symbol. * libc/sys/sysnecv850/sbrk.c (_sbrk): Tidy code. Base start of heap on the "heap_start" symbol.
* * shared.cc (offsets): Reorder so that console_state is lowest inCorinna Vinschen2011-05-273-10/+23
| | | | | | | memory. Explain why. (open_shared): Accommodate reordering of offsets array. * shared_info.h (shared_locations): Reorder SH_SHARED_CONSOLE after SH_MYSELF.
* * mount.h (MAX_MOUNTS): Raise to 64.Corinna Vinschen2011-05-262-1/+5
|
* fix changelog typoEric Blake2011-05-251-1/+1
|
* * libc/string/strerror.c (_strerror_r): Report "Success" for 0.Eric Blake2011-05-252-0/+10
|
* * new-features.sgml (ov-new1.7.10): Document strerror changes.Eric Blake2011-05-252-0/+5
|
* perror: fix POSIX compliance and work with recent newlib changeEric Blake2011-05-254-54/+81
| | | | | | | | | * cygtls.h (strerror_r_buf): New buffer. * errno.cc (strerror): Move guts... (_strerror_r): ...to new function demanded by newlib. (strerror_r): Don't clobber strerror buffer. (_user_strerror): Drop unused declaration. * tlsoffsets.h: Regenerate.
* strerror: allow user hook to comply with POSIX rulesEric Blake2011-05-258-27/+73
| | | | | | | | | | | * libc/string/strerror.c (strerror): Split body into... (_strerror_r): ...new reentrant function. * libc/string/u_strerr.c (_user_strerror): Update signature. * libc/include/stdio.h (_strerror_r): New prototype. * libc/posix/collate.c (__collate_err): Adjust callers. * libc/stdio/perror.c (_perror_r): Likewise. * libc/string/strerror_r.c (strerror_r): Likewise. * libc/string/xpg_strerror_r.c (__xpg_strerror_r): Likewise.
* * init.cc (dll_entry): Reinstantiate wow64_test_stack_marker andCorinna Vinschen2011-05-252-9/+11
| | | | previous stack tests.
* * legal.sgml: Drop an old paragraph. Reactivate copyright note forCorinna Vinschen2011-05-252-5/+8
| | | | documentation.
* * posix.sgml (std-notes): Add missing <para>.Corinna Vinschen2011-05-252-2/+6
|
* 2011-05-24 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>Chris Sutcliffe2011-05-242-5/+8
| | | | | | * include/stdlib.h (strtod): Declare as extern to resolve compilation issues. Thanks to cgf for the report.
* 2011-05-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>Andreas Krebbel2011-05-242-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | * config/tc-s390.c (md_gather_operands): Fix check for floating register pair operands. 2011-05-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * opcode/s390.h: Replace S390_OPERAND_REG_EVEN with S390_OPERAND_REG_PAIR. 2011-05-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * s390-opc.c: Replace S390_OPERAND_REG_EVEN with S390_OPERAND_REG_PAIR. Fix INSTR_RRF_0UFEF instruction type. * s390-opc.txt: Fix cxr instruction type. 2011-05-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * gas/s390/esa-g5.d: Fix fp register pair operands. * gas/s390/esa-g5.s: Likewise. * gas/s390/zarch-z196.d: Likewise. * gas/s390/zarch-z196.s: Likewise. * gas/s390/zarch-z9-109.d: Likewise. * gas/s390/zarch-z9-109.s: Likewise. * gas/s390/zarch-z9-ec.d: Likewise. * gas/s390/zarch-z9-ec.s: Likewise.
* * mount.cc (mount_info::conv_to_win32_path): Remove unused code.Corinna Vinschen2011-05-244-9/+9
| | | | | | * mount.h (class mount_info): Remove sys_mount_table_counter member. * shared_info.h (class shared_info): Ditto. (CURR_SHARED_MAGIC): Update.
* 2011-05-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>Andreas Krebbel2011-05-242-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config/tc-s390.c (md_gather_operands): Emit an error for odd numbered registers used as register pair operand. 2011-05-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * opcode/s390.h: Add S390_OPCODE_REG_EVEN flag. 2011-05-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * s390-opc.c: Add new instruction types marking register pair operands. * s390-opc.txt: Match instructions having register pair operands to the new instruction types. 2011-05-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * gas/s390/esa-g5.d: Fix register pair operands. * gas/s390/esa-g5.s: Likewise. * gas/s390/esa-z9-109.d: Likewise. * gas/s390/esa-z9-109.s: Likewise. * gas/s390/zarch-z196.d: Likewise. * gas/s390/zarch-z196.s: Likewise. * gas/s390/zarch-z9-109.d: Likewise. * gas/s390/zarch-z9-109.s: Likewise. * gas/s390/zarch-z900.d: Likewise. * gas/s390/zarch-z900.s: Likewise. * gas/s390/zarch-z990.d: Likewise. * gas/s390/zarch-z990.s: Likewise.
* * pinfo.h (struct _pinfo): Reduce size of progname array slightly.Corinna Vinschen2011-05-242-2/+11
| | | | Explain why.
* * cygtls.h (strerror_buf): Resize to allow '-'.Eric Blake2011-05-232-2/+3
|
* strerror: match recent glibc changesEric Blake2011-05-232-4/+9
| | | | | * errno.cc (strerror): Print unknown errno as int. (__xpg_strerror_r): Likewise, and don't clobber strerror buffer.
* Fix typo in ChangeLog of previous commitChris Sutcliffe2011-05-231-1/+1
|
* 2011-05-23 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>Chris Sutcliffe2011-05-232-1/+9
| | | | | | | * include/time.h (daytime, timezone, tzname): Rework guards to expose when compiles with __STRICT_ANSI__. Thanks to Felipe Contreras for the report.
* * fhandler_process.cc (thread_info::fill_if_match): Reformat.Corinna Vinschen2011-05-232-7/+22
| | | | | (format_process_maps): Ditto. Fetch pointer to procinfo structure from mapped process. Print info about global shared Cygwin regions.
* 2011-05-22 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>Chris Sutcliffe2011-05-232-5/+7
| | | | | | | * include/stdlib.h (strtod): Remove possible static declaration to resolve issue with gcc. Thanks to Tobias Burnus for the report.
* 2011-05-22 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>Chris Sutcliffe2011-05-232-4/+11
| | | | | | | * include/stdlib.h (_rotl, _lrotl, _rotr, _lrotr): Resolve conflict with gcc by wrapping the functions in brackets. Thanks to Kai Tietz for the report.
* 2011-05-22 A.B., Khalid <abkhd@users.sourceforge.net>Chris Sutcliffe2011-05-233-6/+15
| | | | | * Makefile.in: Add support for msvcr100.dll. * msvcrt.def.in: Ditto.
* 2011-05-22 Antoine LECA <antoinel@users.sourceforge.net>Chris Sutcliffe2011-05-232-11/+17
| | | | | | * mingwex/mingw-fseek.c: The anonymous union feature for LARGE_INTEGER is not always available, go the long way and use the explicit named union members, which are also declared in winnt.h.
* 2011-05-22 Antoine LECA <antoinel@users.sourceforge.net>Chris Sutcliffe2011-05-232-1/+5
| | | | * mingwex/isblank.c: Fix typo in declaration.
* 2011-05-22 Antoine LECA <antoinel@users.sourceforge.net>Chris Sutcliffe2011-05-233-2/+11
| | | | | | | * include/_mingw.h: Define GCC system_header only if PCC is not defined. * include/stdlib.h: Fix a long-standing typo which prevented correct use of the MB_CUR_MAX macro/variable when DECLSPEC is not supported and <stdlib.h> is included before <ctype.h>.
* 2011-05-22 Chris Sutcliffe <ir0nh34d@users.sf.net>Chris Sutcliffe2011-05-232-1/+7
| | | | | | * include/wingdi.h (GCP_RESULTSW): Correct defintion. Thanks to Albrecht Schlosser for the report and the fix.
* 2011-05-22 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>Chris Sutcliffe2011-05-232-0/+7
| | | | | | * include/wchar.h: Include stdio.h to grab definition of FILENAME_MAX. Thanks to Jim Bell for the report and Greg Chicares for the fix.
* * fhandler_process.cc (struct dos_drive_mappings): Use malloc/freeCorinna Vinschen2011-05-212-44/+108
| | | | | | | | | | | | | | | | rather than cmalloc/cfree. Check return value from malloc before using it. (struct heap_info): Ditto. (struct thread_info): Ditto. Rename from stack_info. Rename members and local variables accordingly. (thread_info::thread_info): Store stack and TEB addresses. (thread_info::fill_if_match): Print "teb" if a TEB address has been found. Special case for WOW64, explain why. (format_process_maps): Fetch PEB address. Print MEM_RESERVE regions with equal signs to distinguish them from PAGE_NOACCESS regions. Fix printing of 'p' and 's' to differ between MEM_PRIVATE and MEM_MAPPED pages, as on Linux. Print 'g' instead of 'p for PAGE_GUARD pages. Print PEB and SharedUserData area if recognized.
* * miscfuncs.cc (CygwinCreateThread): Fix condition for adding theCorinna Vinschen2011-05-202-5/+8
| | | | guardsize to the stacksize. Fix accompanying comment.
* * miscfuncs.cc (CygwinCreateThread): Add accidentally missing comment.Corinna Vinschen2011-05-202-0/+5
|
* * fhandler_process.cc (struct heap_info): Change type of base and endCorinna Vinschen2011-05-202-12/+122
| | | | | | members to char *. Print "shared" rather than "share". (struct stack_info): New class to fetch process stack information. (format_process_maps): Initialize and check for stack information.
* * miscfuncs.cc (thread_wrapper): Remove statements added for debuggingCorinna Vinschen2011-05-202-2/+5
| | | | purposes.
* * child_info.h (CURR_CHILD_INFO_MAGIC): Update.Corinna Vinschen2011-05-2010-127/+295
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (class child_info_fork): Remove stacksize, add stackaddr and guardsize members. * dcrt0.cc (child_info_fork::alloc_stack_hard_way): Partial rewrite to regenerate the stack exactly as in the parent. (child_info_fork::alloc_stack): Set stackaddr to 0, rather than stacksize. (dll_crt0_1): Check for stackaddr before changing the stack addresses in the TEB. * fork.cc (frok::child): Check for stackaddr here. (frok::parent): Set ch.stackaddr and ch.guardsize if not called from the main thread. * init.cc (dll_entry): Replace pointer to NT_TIB with pointer to TEB. Fix incorrectly changed address test before removing _my_tls. Set StackLimit to NULL on Windows 2000. Explain why. * miscfuncs.cc (struct thread_wrapper_arg): Store stackbase rather than stacksize, store commitaddr, remove guardsize. Store all pointers as char * for easier address arithmetic. (thread_wrapper): Rewrite to remove OS stack before calling thread function. Add lots of comments to explain what we do. (CygwinCreateThread): Reserve our own stack in case we got no application stack. Add comments. * ntdll.h (struct _TEB): Extend defintion up to DeallocationStack member. * thread.cc (pthread_attr::pthread_attr): Use "(size_t) -1" rather then 0xffffffff. * wincap.h (wincaps::has_stack_size_param_is_a_reservation): New element. * wincap.cc: Implement above element throughout.
* * thread.cc: Mark psiginfo and psignal as available in list ofYaakov Selkowitz2011-05-192-2/+7
| | | | optional cancellation points.