Commit Graph

13700 Commits

Author SHA1 Message Date
Corinna Vinschen 52a5f8cc1a * flock.cc (inode_t::unlock_and_remove_if_unused): Rename from
unlock_and_remove.
2011-08-31 16:35:19 +00:00
Corinna Vinschen 2e560a092c * flock.cc (LOCK_OBJ_NAME_LEN): Change to accommodate extra lf_ver
field.
	(class lockf_t): Add lf_ver field.
	(lockf_t::lockf_t): Initialize lf_ver to 0.
	(class inode_t): Change i_wait to i_cnt.  Change comment to explain
	change in usage.
	(inode_t:use): Rename from wait.  Make private.
	(inode_t::unuse): Rename from unwait.  Make private.
	(inode_t::inuse): Rename from waiting.  Make private.
	(inode_t::notused): New public method to set use count to 0.
	(inode_t::unlock_and_remove): New method to unlock node and to delete
	it if it's unused in current process.
	(fhandler_base::del_my_locks): Drop global list lock.  Drop variable
	no_locks_left.  Simpify unlocking and removing node by just calling
	unlock_and_remove.
	(fixup_lockf_after_exec): Call notused method for each node.
	(inode_t::get): Call use method.  Lock node only if outside of list
	lock.
	(inode_t::get_all_locks_list): Accommodate additional lf_ver field
	when creating lockf_t structure from object name.
	(lockf_t::create_lock_obj_attr): Accommodate additional lf_ver field
	when creating object name from lockf_t structure.  Handle
	STATUS_OBJECT_NAME_COLLISION gracefully in F_POSIX case as well.
	Change comment accordingly.  Increment lf_ver field rather than high
	byte of lf_wid field.  Simplify comment.
	(fhandler_disk_file::lock): Always call unlock_and_remove rather than
	just UNLOCK on node.
	(lf_setlock): Move ret definition where it's used.  Drop unneeded
	tests for obj being not NULL.  Only check for deadlock condition if the
	lock we're trying to establish is a POSIX lock.  Revamp object
	collecting and wait code to cover all cases.  Don't return with EDEADLK
	if blocking process can't be opened for synchronization in F_POSIX case,
	rather just wait like in F_FLOCK case.  Change system_printf to
	debug_printf in that case.  Only run WaitForMultipleObjects with high
	priority.  Close obj and process handles prior to locking node.
2011-08-29 13:50:25 +00:00
Keith Marshall 36ccb620ec Don't expose implementation detail for opaque DIRENT structures. 2011-08-27 20:16:47 +00:00
Corinna Vinschen f4ec874328 * fhandler.cc (fhandler_base::open): Fix typo in comment.
(fhandler_base::close): Move call to del_my_locks from here...
	* fhandler_disk_file.cc (fhandler_disk_file::open): ...to here.
	* flock.cc (struct lockfattr_t): New type.
	(lockf_t::close_lock_obj): New method, use throughout.
	(lockf_t::create_lock_obj_attr): New method.
	(lockf_t::create_lock_obj): Use create_lock_obj_attr method.  Handle
	STATUS_OBJECT_NAME_COLLISION in F_FLOCK case gracefully.  Add lengthy
	comments to explain why and how.
	(lockf_t::open_lock_obj): Use create_lock_obj_attr method.
	(lockf_t::del_lock_obj): Call NtSetEvent rather than SetEvent for
	symmetry.
	(fhandler_disk_file::lock): Define n only where it's used.  Call
	need_fork_fixup only if call was successful.  Handle EINTR and
	ECANCELED return values from lf_setlock.
	(lf_setlock): Drop WAIT_UNLOCKED and WAIT_PROC_EXITED.  Don't wait
	for event object handle count to become <= 1 in F_LOCK case.
	Simplify WFMO return value handling.  Don't handle signal and cancel
	events here; just return with appropriate error code instead.
	(lf_getblock): Ignore locks for which the handle can't be opened.
	Use IsEventSignalled.
	* ntdll.h (STATUS_INVALID_INFO_CLASS): Undef if defined elsewhere to
	make sure the definition is casted to NTSTATUS.
	(STATUS_INVALID_HANDLE): Define and ditto.
	(STATUS_OBJECT_NAME_COLLISION): Define.
	(NtSetEvent): Declare.
2011-08-27 20:01:29 +00:00
Corinna Vinschen 477215fe7d * libc/time/mktm_r.c (_mktm_r): Fix previous fix. 2011-08-26 07:23:42 +00:00
Christopher Faylor 2691168e98 * cygthread.cc (cygthread::simplestub): Notify that the thread has detached
also in freerange thread case.
2011-08-25 19:37:39 +00:00
Corinna Vinschen 603ef545bd * fhandler.cc (fhandler_base::open): Never open files with
FILE_OVERWITE/FILE_OVERWRITE_IF.  Set file size to 0 explicitely if
	regular, existing file has been opened for writing with O_TRUNC flag
	set.  Explain why.
2011-08-25 13:35:43 +00:00
Corinna Vinschen 929a140824 * thread.cc (pthread::pthread): Drop setting parent_tls. Call
sigprocmask to copy parent thread signal mask into new parent_sigmask
	member.
	(pthread::thread_init_wrapper): Copy _my_tls.sigmask from new
	parent_sigmask member.
	* thread.h (class pthread): Drop parent_tls.  Add parent_sigmask.
2011-08-24 15:18:17 +00:00
Christopher Faylor 8323a37d5d * thread.cc (pthread::exit): Create dummy tls structure to hold _main_tls
contents if we've asked _main_tls to exit.
2011-08-24 14:23:38 +00:00
Corinna Vinschen c9e60624d3 * libc/time/mktm_r.c (_mktm_r): Fix computing tm_year. 2011-08-24 13:38:32 +00:00
Chris Sutcliffe b84aabf695 2011-08-23 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>
* include/_mingw.h: Increment version to 3.20.
2011-08-23 22:59:35 +00:00
Chris Sutcliffe 99724a3258 2011-08-23 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>
* tlsmthread.c: Update to reflect changes in tlssup.c.
        * tlssup.c: code clean-up.
2011-08-23 22:27:35 +00:00
Corinna Vinschen 58ef30a4e7 * poll.cc (poll): Don't return prematurely if invalid fds have been
encountered.  Enforce timeout set to 0 in case of invalid fds.  Take
	number of invalid fds into account when returning.
2011-08-23 14:05:04 +00:00
Corinna Vinschen 247caa48ea * fhandler_socket.cc (fhandler_socket::send_internal): Fix setting
nosignal flag.  Convert ECONNABORTED on connection-oriented socket
	to EPIPE, too.
2011-08-23 13:07:24 +00:00
Ralf Corsepius 1c5c40f638 2011-08-23 Ralf Corsépius <ralf.corsepius@rtems.org>
* libc/stdlib/putenv_r.c: Use "strchr" instead of obsolete "index".
	* libc/stdlib/setenv_r.c: Use "memcpy" instead of obsolete "bcopy".
2011-08-23 12:03:55 +00:00
Ralf Corsepius da344d0ea9 2011-08-23 Ralf Corsépius <ralf.corsepius@rtems.org>
* libc/misc/ffs.c, libc/string/bcmp.c, libc/string/bcopy.c,
	libc/string/bzero.c, libc/string/index.c, libc/string/rindex.c,
	libc/string/strcasecmp.c, libc/string/strncasecmp.c:
	Let synopsis reference "#include <strings.h>".
2011-08-23 12:01:51 +00:00
Ralf Corsepius 0792b19670 2011-08-23 Ralf Corsépius <ralf.corsepius@rtems.org>
* libc/posix/regexec.c: Define "nope" only #ifndef NDEBUG.
	* libc/stdio/vfscanf.c: Define "state" only #ifdef _MB_CAPABLE.
	* libc/string/wcwidth.c: Include <wctypes.h> for "iswprint" and
	"iswcntrl".
2011-08-23 11:59:56 +00:00
Ralf Corsepius 74c92a62fe 2011-08-23 Ralf Corsépius <ralf.corsepius@rtems.org>
* libc/sys/rtems/include/limits.h: Compute SSIZE_MAX based on
	__SIZE_MAX__, __SIZEOF_SIZE_T__ and __CHAR_BIT__.
2011-08-23 05:51:04 +00:00
Rainer Orth a22abf5d17 * picflag.m4: New file. 2011-08-22 17:51:24 +00:00
Ralf Corsepius f3e873f250 2011-08-22 Ralf Corsépius <ralf.corsepius@rtems.org>
* libc/string/index.c: Include <strings.h> for "index".
	* libc/string/rindex.c: Include <strings.h> for "rindex".
	* libc/string/strcasecmp.c: Include <strings.h> for "strcasecmp".
	Don't include <string.h>.
	* libc/string/strncasecmp.c: Include <strings.h> for "strncasecmp".
	Don't include <string.h>.
	* libc/string/bzero.c: Include <strings.h> for "bzero".
	Don't include <string.h>
	* libc/misc/ffs.c: Include <strings.h> for "ffs".
	Don't include <_ansi.h>.
2011-08-22 16:49:37 +00:00
Christopher Faylor 8f8977bb8b * Makefile.in: Check for header file existence when building dumper.exe too. 2011-08-21 19:36:52 +00:00
Christopher Faylor 059f809e4b * dtable.cc (conv_start_chars): Remove unneeded section attribute. 2011-08-21 18:45:07 +00:00
Yaakov Selkowitz 0cd08cee4b * include/paths.h (_PATH_MAILDIR): Define.
(_PATH_SHELLS): Define.
2011-08-21 03:22:30 +00:00
Corinna Vinschen f71c1cdb55 * fhandler_process.cc (format_process_maps): Define page protection
shortcuts RO, X, and WC.  Use in creating access flag string.  Don't
	set type flag to 's' for copy-on-write pages, as on Linux.
2011-08-20 18:55:45 +00:00
Ralf Corsepius fe9bdaedff 2011-08-19 Ralf Corsépius <ralf.corsepius@rtems.org>
* libc/sys/rtems/crt0.c: Rework RTEMS_STUB macro.
	Include <unistd.h>.
	Remove C++-style comments.
	Remove hppa, a29k.
	Add clock_gettime, gettimeofday, sched_yield.
2011-08-20 05:34:22 +00:00
Chris Sutcliffe 8d5b10a681 2011-08-20 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>
* include/_mingw.h: Increment version to 3.19.
2011-08-20 05:00:12 +00:00
Chris Sutcliffe 0ed575b596 2011-08-19 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>
* include/float.h: Modify guard to accomodate CLang.

        Thanks to Ruben Van Boxem for the report.
2011-08-20 04:12:22 +00:00
Chris Sutcliffe ea2b1b2ff0 2011-08-19 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>
* tlssup.c: Remove mingwm10.dll fallback.
2011-08-20 04:11:28 +00:00
Chris Sutcliffe 74604ab159 2011-08-19 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>
* include/sys/types.h (ssize_t): Defined as int as opposed to long.

        Thanks to bvassche for the report.
2011-08-20 01:38:16 +00:00
Yaakov Selkowitz 1165d4442d * new-features.sgml (ov-new1.7.10): Document /proc/devices
and /proc/misc.
2011-08-19 20:06:28 +00:00
Yaakov Selkowitz 07797cc0d8 * devices.h (fh_devices): Define DEV_MISC_MAJOR, DEV_MEM_MAJOR,
DEV_SOUND_MAJOR.  Use throughout.
* fhandler_proc.cc (proc_tab): Add /proc/devices and /proc/misc
virtual files.
(format_proc_devices): New function.
(format_proc_misc): New function.
2011-08-19 20:05:15 +00:00
Christopher Faylor c8a66289e4 * dtable.cc: Mark some const variables as static.
* environ.cc (conv_start_chars): Move to shared cygwin region and initialize at
compile time.
(match_first_char): New generic function for querying conv_start_chars.
(posify_maybe): Rename from posify.
(environ_init): Remove conv_envvars initialization.  Don't check
conv_start_chars, just allow posify_maybe to make the decision.
* fhandler_console.cc (__vt100_conv): Fix formatting.  Mark as const.
2011-08-19 18:19:22 +00:00
Ralf Corsepius 34dc27f95d 2011-08-19 Ralf Corsépius <ralf.corsepius@rtems.org>
* libc/stdio/vasiprintf.c: Include "local.h" for "_svfiprintf_r".
	* libc/stdio/vasprintf.c Include "local.h" for "_svfprintf_r".
	* libc/stdio/vsiprintf.c: Include "local.h" for "_svfiprintf_r".
	* libc/stdio/vsniprintf.c: Include "local.h" for "_svfiprintf_r".
	* libc/stdio/vsnprintf.c: Include "local.h" for "_svfprintf_r"
	* libc/stdio/vsprintf.c: Include "local.h" for "_svfprintf_r"
2011-08-19 17:00:32 +00:00
Ralf Corsepius af8a9163c3 2011-08-19 Ralf Corsépius <ralf.corsepius@rtems.org>
* libc/string/bcmp.c: Include <strings.h> for "bcmp".
	* libc/string/bcopy.c: Include <strings.h> for "bcopy".
	* libc/string/strcasestr.c: Include <strings.h> for "strncasecmp".
	* libc/time/strptime.c: Include <strings.h> for "strncasecmp".
2011-08-19 16:58:20 +00:00
Joel Brobecker c0fabb9f3d Include the <root>/cpu/ dir in GDB releases
This directory contains some files that are used to generate some
of the files included in the GDB release, and thus must be part of
the GDB release also.

ChangeLog:

        * src-release (GDB_SUPPORT_DIRS): Add 'cpu'.
2011-08-19 15:48:36 +00:00
Nick Clifton 4fb059e5bb * iq2000/sim.ld (.gcc_except_table): Include .gcc_except_table.foo
sections as well.
2011-08-19 14:57:50 +00:00
Corinna Vinschen e8fdf15a75 * libc/include/process.h: Remove exec family function declarations.
Add comment.
	* libc/include/sys/unistd.h (execlpe): Declare for Cygwin.
2011-08-19 14:29:34 +00:00
Corinna Vinschen 6648762916 * libc/time/mktime.c (validate_structure): Account for tm_mon possibly
being given as negative.
	(mktime): Set tm_isdst=0 when !daylight.
2011-08-19 14:14:18 +00:00
Corinna Vinschen aeeaae457b * fhandler_console.cc (fhandler_console::read): Recognize backspace key
using the device independent key code, rather than the device dependent
	scan code.
2011-08-19 13:10:01 +00:00
Corinna Vinschen 17e1361aa3 * include/winuser.h: Ad missing MAPVK_xxx definitions. 2011-08-19 11:58:05 +00:00
Yaakov Selkowitz 28c2fbeed8 * sysv_shm.cc (ACCESSPERMS): Remove to fix redefined warning, as
this is now defined in <sys/stat.h>.
2011-08-19 01:41:49 +00:00
Christopher Faylor 6072b95eeb * dcrt0.cc (dll_crt0_0): Remove unneeded __stdcall decoration.
* init.cc: Reflect change to dll_crt0_0 in declaration.
2011-08-18 15:59:16 +00:00
Corinna Vinschen 8f19b4b64f * dtable.cc (dtable::get_debugger_info): Add missing braces.
(dtable::stdio_init): Fix incorrect negation of not_open(2) condition.
2011-08-18 09:16:50 +00:00
Pierre Humblet 927761a425 2011-08-16 Pierre Humblet <Pierre.Humblet@ieee.org>
* net.cc (gethostby_helper): Remove DEBUGGING code from and
        streamline the second pass.
2011-08-16 23:32:18 +00:00
Corinna Vinschen 833db5481f * dlfcn.cc (dlopen): Reimplement RTLD_NODELETE for Windows 2000 using
internal datastructures.  Explain the code.
	* ntdll.h (struct _LDR_DATA_TABLE_ENTRY): Define.
	(struct _PEB_LDR_DATA): Define.
	(struct _PEB): Change PVOID LoaderData to PPEB_LDR_DATA Ldr.

	* fhandler_process.cc (format_process_maps): Call NtQueryVirtualMemory
	with valid return length pointer.  Explain why.
2011-08-16 20:08:34 +00:00
Corinna Vinschen 9d3b795b47 * new-features.sgml (ov-new1.7.10): Document new RTLD flags. 2011-08-16 14:51:06 +00:00
Corinna Vinschen c429beb296 * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. 2011-08-16 14:48:38 +00:00
Corinna Vinschen 6bc64eac26 * autoload.cc (GetModuleHandleExW): Define.
* dlfcn.cc: Throughout mark exported symbols as extern "C".
	(dlopen): Unignore flags argument.  Define ret to NULL.  Fix typo in
	comment.  Support Glibc flags RTLD_NOLOAD and RTLD_NODELETE.
	* include/dlfcn.h:  Clean up comments.
	(RTLD_NODELETE): Define.
	(RTLD_NOLOAD): Define.
	(RTLD_DEEPBIND): Define.
2011-08-16 14:44:26 +00:00
Corinna Vinschen 56c387b1b3 * pipe.cc (pipe): Just call _pipe with O_BINARY mode. Move code to
generate normalized pathnames from here...
	(_pipe): ...to here.
2011-08-15 16:05:13 +00:00
Yao Qi a2ffbf1e80 Merge from gcc:
2011-08-14  Yao Qi  <yao@codesourcery.com>
	* configure.ac (tic6x-*-*): Remove gdb from noconfigdirs.
	* configure: Regenerate.
2011-08-14 12:28:16 +00:00