Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/winsup
AgeCommit message (Collapse)Author
2016-06-21Add release message for commit 2c83227Corinna Vinschen
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-06-21Drop useless calls to path_conv.isgood_inodeCorinna Vinschen
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-06-21Use correct file info (especially inode number) for newly created filesCorinna Vinschen
fhandler_base::open_fs has two problems: - When newly creating a file, the file info in the path_conv is incorrect. It points to info for the parent dir, not to info for the file itself (which, naturally, wasn't available before). - Fetching the file's inode number only worked for non-NFS. Both problems should be fixed now by reloading file info if the file has just been created, as well as using the new FS-agnostic path_conv::get_ino method. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-06-21Use new path_conv_handle functions to access file infoCorinna Vinschen
This avoids having to call nfs_fetch_fattr3/file_get_fai depending on FS type as well as having to extract the info FS dependent. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-06-21Improve encapsulation of FS type behind path_conv coverCorinna Vinschen
Rather than having to check for the FS type in the caller and having to call different functions whether FS is NFS or not, encapsulate the info in path_conv_handle/path_conv methods to allow FS type agnostic calling from upper level functions. This patch only implements the methods. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-06-15uinfo.cc: More comment fixes, remove unused testing code.Corinna Vinschen
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-06-15uinfo.cc: Fix commentCorinna Vinschen
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-06-08Fix typos in comments and debug output in select_stuff::waitCorinna Vinschen
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-06-06Add release message for commit 7239bb7b3ded5ab961dc56dc346d8ab83660ba29Corinna Vinschen
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-06-06Add release message for select(2) changesCorinna Vinschen
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-06-06Improve timer handling in select.Corinna Vinschen
Commit a23e6a35d896a075640db714b28ce74bb6b8d7ff introduced a timer object to the WFMO handling in select_stuff::wait to allow sub-tickcount timeout values in select. Problems with this patch: The timer was created and destroyed on every invocation of select_stuff::wait, thus potentially multiple times per select. Also, since the timer was prepended to the WFMO hande list, the timer handle could shadow actual events on other objects, given that WFMO checks the objects in the order they have been specified in the HANDLE array. The timer was also created/destroyed and added to the HANDLE array even if it was not required. This patch drops the local timer HANDLE and recycles the cw_timer HANDLE in the cygtls area instead. Thus we typically don't need to create the timer in select at all, and we never have to destroy it. The timer HANDLE is now also appended as last object to the HANDLE array, and it's only added if actually needed. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-06-06Fix condition in select which results in busy loop.Corinna Vinschen
The check for current timestamp > start timestamp has an unwelcome side effect: The loop is not left as long as the current timestamp hasn't been incremented. This leads to busy loops of about one tick (10 to 16 ms per MSDN). This fixes https://cygwin.com/ml/cygwin/2016-05/msg00327.html Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-06-06Return at most one line of input in canonical modeTakashi Yano
'man termios' says: "A read(2) returns at most one line of input" in canonical mode. On cygwin 2.5.1, read(2) returns all data in buffer if the buffer size specified is large enough. This behaviour is correct in noncanonical mode, but is not correct in canonical mode. While checking this problem, I found a bug of tcflush(). tcflush() flushes only partial data in the buffer. The patch also fixes this bug. The patch has also been tested against the problem reported in https://cygwin.com/ml/cygwin/2016-05/msg00318.html. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-06-06Allow 'make distclean' to clean winsup/cygwinKen Brown
But don’t let it remove source files.
2016-06-06Only regenerate tlsoffsets{64}.h if cygtls.h can be compiledCorinna Vinschen
The rule to make tlsoffset{64}.h has a flaw. If cygtls.h can't be built for whatever reason, it *still* regenerates tlsoffsets{64}.h, just with size 0. If the bug is not in cygtls.h itself, this behaviour breaks further building, because fixing the problem won't result in regenerating tlsoffset{64}.h. Manual intervention is required. Fix that by removing tlsoffsets{64}.h if gentls_offsets fails. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-06-03cygwin: include sys/types.h in sys/xattr.hYaakov Selkowitz
Using libattr's <xattr/xattr.h> requires consumers to explicitly include <sys/types.h> first, but glibc's header in sys/ already contains the include. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
2016-06-03sched.cc: Use PROCESS_QUERY_INFORMATION for nowCorinna Vinschen
Temporarily revert to use PROCESS_QUERY_INFORMATION instead of PROCESS_QUERY_LIMITED_INFORMATION to make sure every aspect of the next release is still XP/2003 compatible. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-06-01Revert "Cygwin hangs up if several keys are typed during outputting a lot of ↵Corinna Vinschen
texts." This reverts commit 252a07b0ad3353abcd0fcd9b1b65ff977acd679e. This change introduced a hang in certain scenarios, for an example see https://cygwin.com/ml/cygwin/2016-05/msg00318.html
2016-06-01dlopen: Add dot to filename if no slash is presentCorinna Vinschen
We're appending a dot to the filename before calling LoadLibrary to override ".dll" automagic. This only worked for paths, not for simple filenames since it required a slash in the pathname. Fix that. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-05-31Cygwin: Add release messages for previous two commitsCorinna Vinschen
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-05-31realpath: Handle Win32 and NT long path prefixesCorinna Vinschen
So far drive letter paths have been handled special since path_conv leaves the incoming path untouched except for converting backslashes to forward slashes. However, if the incoming path starts with a long path prefix, the same problem occurs. Therefore handle all paths starting with a backslahs the same way. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-05-25TZ: Replace unreliable isupper calls on wcharsCorinna Vinschen
In case the TZ variable is empty, Cygwin fetches timezone info from Windows. Extracting the timezone short name uses isupper on wide chars. Replace with explicit check for A <= character <= Z to be independent of undefined behaviour. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-05-24Git is Git, not GITAdam Dinwoodie
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-05-24Fix typo and wrong URL in winsup/READMECorinna Vinschen
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-05-20Add release message for previous mmap fixCorinna Vinschen
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-05-20mmap: Fix size restriction of maps due to using 32 bit size typeCorinna Vinschen
Throughout mmap, size-related variables and parameters are still using DWORD as type, which disallows mapping ranges > 4Gigs. Fix this by using SIZE_T throughout for those vars and parameters. Also, drop unused off parameter from 1st variant of mmap_record::map_pages. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-05-20Add release message for scheduler fixesCorinna Vinschen
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-05-20Fix thread priority handlingCorinna Vinschen
So far pthread::postcreate() only sets the thread priority at all, only if the inherit-scheduler attribute is PTHREAD_EXPLICIT_SCHED. This completely ignores the PTHREAD_INHERIT_SCHED case, since in contrast to POSIX, a thread does not inherit its priority from the creating thread, but always starts with THREAD_PRIORITY_NORMAL. pthread_getschedparam() only returns what's stored in the thread attributes, not the actual thread priority. This patch fixes both problems. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-05-20Rewrite scheduler functions getting and setting process and thread priorityCorinna Vinschen
So far the scheduler priority handling is not POSIX compatible. The priorities use a range of -14 up to +15, which means it's not clear if the POSIX-required return value of -1 in case of an error is *really* an error or just the valid priority value -1. Even more confusing, -14 is the *max* value and 15 is the *min* value. Last but not least this range doesn't match the POSIX requirement of at least 32 priority values. This patch cleans up scheduler priority handling and moves the valid priority range to 1 (min) - 32 (max). It also adds a function sched_get_thread_priority() which will help to make thread priority more POSIX-like. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-05-20Miscellaneous style cleanup, whitespace only.John Hood
2016-05-20Improve and simplify select().John Hood
* select.h: Eliminate redundant select_stuff::select_loop state. * select.cc (select): Eliminate redundant select_stuff::select_loop state. Eliminate redundant code for zero timeout. Do not return early on early timer return. (select_stuff::wait): Eliminate redundant select_stuff::select_loop state.
2016-05-20Use high-resolution timebases for select().John Hood
* select.h: Change prototype for select_stuff::wait() for larger microsecond timeouts. * select.cc (pselect): Convert from old cygwin_select(). Implement microsecond timeouts. (cygwin_select): Rewrite as a wrapper on pselect(). (select): Implement microsecond timeouts. (select_stuff::wait): Implement microsecond timeouts with a timer object.
2016-05-18Bump Cygwin DLL version to 2.5.2Corinna Vinschen
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-04-21Always provide register_t via <sys/types.h>Sebastian Huber
Always provide register_t via <sys/types.h> for glibc and BSD compatibility. Define __BIT_TYPES_DEFINED__ to 1 like glibc for legacy header files. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
2016-04-21Remove cygwin/types.hCorinna Vinschen
2016-04-21Resurrect <machine/types.h> for <sys/types.h>Sebastian Huber
Resurrect <machine/_user_types.h> for use in <sys/types.h>. Newlib targets may provide an own version of <machine/types.h> in their machine directory to add custom user types for <sys/types.h>. Check the _SYS_TYPES_H header guard to prevent a direct include of <machine/types.h>, since the <machine/types.h> file is a Newlib speciality. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
2016-04-20Add release message for commit 9409c53Corinna Vinschen
2016-04-20Don't test pthread objects for being already initialized at init timeCorinna Vinschen
For all pthread init functions, POSIX says Results are undefined if pthread_FOO_init() is called specifying an already initialized pthread_FOO object. So far our pthread init functions tested the incoming object if it's already an initialized object and, if so, returned EBUSY. That's ok *iff* the object was already initialized. However, as the example in https://cygwin.com/ml/cygwin/2016-04/msg00473.html shows, an uninitialized pthread object could also accidentally look like an initialized object and then returning EBUSY is not ok. Consequentially, all those tests are dangerous. Per POSIX, an application has to know what its doing when calling any of the pthread init functions anyway, and re-initializing the object is just as well as undefined behaviour as is returning EBUSY on already initialized objects. * thread.cc (pthread_attr_init): Drop check for already initialized object. (pthread_condattr_init): Ditto. (pthread_rwlockattr_init): Ditto. (pthread_mutexattr_init): Ditto. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-04-20Provide in_port_t via <sys/types.h>Sebastian Huber
Provide in_port_t via <sys/types.h> if __BSD_VISIBLE for BSD compatibility. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
2016-04-19Provide in_addr_t via <sys/types.h>Sebastian Huber
Provide in_addr_t via <sys/types.h> if __BSD_VISIBLE for BSD compatibility. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
2016-04-19Introduce __sa_family_t for BSD compatibiliySebastian Huber
Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
2016-04-19Introduce __socklen_t for BSD compatibilitySebastian Huber
Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
2016-04-19BSD compatibility for <machine/endian.h>Sebastian Huber
Introduce <machine/_endian.h> to let target based customization of <machine/endian.h> via * _LITTLE_ENDIAN, * _BIG_ENDIAN, * _PDP_ENDIAN, and * _BYTE_ORDER. defines. Add definitions expected by FreeBSD to <machine/endian.h> like * _QUAD_HIGHWORD, * _QUAD_LOWWORD, * __bswap16(), * __bswap32(), * __bswap64(), * __htonl(), * __htons(), * __ntohl(), and * __ntohs(). Also, if __BSD_VISIBLE * LITTLE_ENDIAN, * BIG_ENDIAN, * PDP_ENDIAN, and * BYTE_ORDER. Targets that define __machine_host_to_from_network_defined in <machine/_endian.h> must provide their own implementation of * __htonl(), * __htons(), * __ntohl(), and * __ntohs(), otherwise a default implementation is provided by <machine/endian.h>. In case of GCC defines to builtins are used. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
2016-04-19Disallow S_ISGID on directories without default ACL entriesCorinna Vinschen
We can't handle the S_ISGID bit if the child didn't inherit a NULL SID ACE with the S_ISGID bit set. On directories without default ACL entries we would have to add an inheritable NULL SID ACE and nothing else. This in turn results in permission problems when calling set_file_sd from set_created_file_access. That's fixable, but it would only work for files created from Cygwin while files created from native Windows tools end up with really ugly permissions. This patch only makes sure that the S_ISGID bit is reset for a directory if it has no inheritable ACEs. Still having the 's' bit shown in ls or getfacl output would be misleading. So, calling `setfacl -k' on a dir also removes the S_ISGID bit now. * sec_acl.cc (set_posix_access): Drop S_ISGID bit on directories without inheritable ACEs. Explain why. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-04-18Handle permissions a bit closer to POSIX 1003.1eCorinna Vinschen
So far we tweaked ACL_GROUP_OBJ and ACL_MASK values the same way when creating a file. We now do what POSIX requires, namely just change ACL_MASK if it's present, otherwise ACL_GROUP_OBJ. Note that we only do this at creation time. Chmod still tweaks both to create less surprising results for the unsuspecting user. Additionally make sure to take umask only into account if no ACL_MASK value is present. That has been missed so far. * sec_acl.cc (set_posix_access): Perform check for non-existant default ACEs earlier. Ignore umask also if ACL_MASK is present. Only set owner_eq_group if we're actually handling a user entry. Mention chmod in a comment. * security.cc (set_created_file_access): Perform group/mask permission setting as required by POSIX 1003.1e. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-04-18Also create NULL SID ACE if special POSIX bits are setCorinna Vinschen
Commit e2ea143 forgot to take special POSIX bits into account. * sec_acl.cc (set_posix_access): Make sure to create NULL SID ACE if any special POSIX permission bits are set. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-04-18Add release message for commit e2ea143Corinna Vinschen
2016-04-18Fix attempt to create ACLs without NULL SIDCorinna Vinschen
Commit f75114fc was supposed to drop NULL SIDs in case the permissions are simple enough not to require mask values or special POSIX bits (S_ISVTX, etc). The check was incorrect. This patch is supposed to fix the problem. * sec_acl.cc (set_posix_access): Fix condition under which we write a NULL SID. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-04-15Cygwin: Drop definition and usage of _mode_t in favor of __mode_tCorinna Vinschen
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-04-15Provide POSIX defined fsblkcnt_t and fsfilcnt_tSebastian Huber
Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>