summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add __ssize_t to <sys/_types.h>Sebastian Huber2016-04-191-0/+2
| | | | | | Add __ssize_t to <sys/_types.h> for BSD compatibility. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Add RTEMS-specific types for BSD compatibilitySebastian Huber2016-04-191-0/+6
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Provide in_port_t via <sys/types.h>Sebastian Huber2016-04-192-1/+9
| | | | | | | Provide in_port_t via <sys/types.h> if __BSD_VISIBLE for BSD compatibility. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Provide in_addr_t via <sys/types.h>Sebastian Huber2016-04-192-1/+10
| | | | | | | Provide in_addr_t via <sys/types.h> if __BSD_VISIBLE for BSD compatibility. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Introduce __sa_family_t for BSD compatibiliySebastian Huber2016-04-193-1/+8
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Introduce __socklen_t for BSD compatibilitySebastian Huber2016-04-193-5/+11
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* BSD compatibility for <machine/endian.h>Sebastian Huber2016-04-196-48/+161
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Disallow S_ISGID on directories without default ACL entriesCorinna Vinschen2016-04-191-1/+13
| | | | | | | | | | | | | | | | | | | | 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>
* Handle permissions a bit closer to POSIX 1003.1eCorinna Vinschen2016-04-182-10/+10
| | | | | | | | | | | | | | | | | | | | 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>
* Also create NULL SID ACE if special POSIX bits are setCorinna Vinschen2016-04-181-0/+1
| | | | | | | | | 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>
* Fix definition of __size_tSebastian Huber2016-04-181-2/+2
| | | | | | Fix definition of __size_t in case __SIZE_TYPE__ is not defined. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Add release message for commit e2ea143Corinna Vinschen2016-04-181-0/+4
|
* Fix attempt to create ACLs without NULL SIDCorinna Vinschen2016-04-181-3/+6
| | | | | | | | | | | | 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>
* libc/sys/rtems/crt0.c: Add <sys/lock.h> symbols required to link autoconf probesJoel Sherrill2016-04-151-1/+32
| | | | | | | The dummy crt0.c provided by the RTEMS target provides stubs of symbols which would normally be provided by RTEMS. This patch adds stubs for posix_memalign() as well as the synchronization methods prototyped in <sys/lock.h>.
* Cygwin: Drop definition and usage of _mode_t in favor of __mode_tCorinna Vinschen2016-04-152-4/+3
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Provide FNONBLOCK for BSD compatiblitySebastian Huber2016-04-151-0/+4
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Provide __size_t via <sys/_types.h>Sebastian Huber2016-04-152-2/+17
| | | | | | | | | | | | | | | | | | | | | Various FreeBSD source and header files need a typedef __size_t via <sys/_types.h>. Unfortunately the GCC provided <stddef.h> uses #if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) \ || defined(__DragonFly__) \ || defined(__FreeBSD_kernel__) /* __size_t is a typedef on FreeBSD 5, must not trash it. */ #elif defined (__VMS__) /* __size_t is also a typedef on VMS. */ #else #define __size_t #endif and therefore defines __size_t on Newlib targets which would trash a __size_t typedef. Include <stddef.h> before <sys/_types.h> in <sys/types.h> and undefine __size_t in <sys/_types.h> as a workaround. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Include <machine/endian.h> in <sys/types.h>Sebastian Huber2016-04-151-0/+1
| | | | | | | Include <machine/endian.h> in <sys/types.h> if __BSD_VISIBLE for BSD compatibility. This is in line with glibc <sys/types.h>. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Add __va_list to <sys/_types.h>Sebastian Huber2016-04-151-0/+6
| | | | | | | | Add __va_list to <sys/_types.h> for BSD compatibility. In FreeBSD this typedef is provided by the various architecture-specific <machine/_types.h> in a copy and paste manner. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Add BSD guards for fixed-size integer typesChristian Mauderer2016-04-151-4/+35
| | | | Signed-off-by: Christian Mauderer <christian.mauderer@embedded-brains.de>
* Add BSD guard for useconds_tSebastian Huber2016-04-152-1/+5
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Add BSD guard for nlink_tSebastian Huber2016-04-152-1/+5
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Provide POSIX defined fsblkcnt_t and fsfilcnt_tSebastian Huber2016-04-154-12/+22
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Provide POSIX defined blksize_t in <sys/types.h>Sebastian Huber2016-04-156-8/+16
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Provide POSIX defined blkcnt_t in <sys/types.h>Sebastian Huber2016-04-156-8/+17
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Add BSD guard for timer_tSebastian Huber2016-04-152-4/+6
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Add BSD guard for clockid_tSebastian Huber2016-04-152-4/+7
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Add BSD guard for time_tSebastian Huber2016-04-156-12/+19
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Add BSD guard for clock_tSebastian Huber2016-04-153-7/+11
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Define mode_t via __mode_tSebastian Huber2016-04-154-49/+23
| | | | | | Use __uint32_t to avoid the use of GCC-specific _ST_INT32. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Add BSD guard for ino_t in <sys/types.h>Sebastian Huber2016-04-155-15/+19
| | | | | | Introduce internal type __ino_t. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Provide POSIX defined id_t in <sys/types.h>Sebastian Huber2016-04-153-6/+9
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Use __machine_*_t_defined for internal typesSebastian Huber2016-04-156-49/+49
| | | | | | | | | | | | | | | | | | | | | | Newlib defines defaults for internal types via <sys/_types.h> and uses <machine/_types.h> to let targets define their own type if necessary. Previously for example #ifndef __dev_t_defined typedef short __dev_t; #endif However, the __*_t_defined pattern conflicts with the glibc type guard pattern for user types, e.g. dev_t in this example. Introduce a __machine_*_t_defined pattern for internal types (defined by <machine/_types.h>, used by <sys/_types.h>). For example #ifndef __machine_dev_t_defined typedef short __dev_t; #endif Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Feature test macros overhaul: string.h and strings.h overlapsYaakov Selkowitz2016-04-132-7/+12
| | | | | | | | | | | strings.h is the header mandated for these functions in POSIX.1 prior to 2008 (when most of these were removed). The declarations in string.h are only for BSD compatibility. But when both headers are included, avoid duplicate declarations. Also, mark stpcpy and stpncpy as POSIX.1-2008. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
* Get rid of some special cases for Cygwin in sys/types.hCorinna Vinschen2016-04-135-35/+34
| | | | | | | | | Remove off_t typedef from cygwin/types.h thus relying on sys/types.h. Introduce winsup/cygwin/machine/_types.h and move some types shared with newlib into it. Get rid of their definition in cygwin/types.h. Add same handling for __key_t/key_t as for the other types. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add BSD guards for off_t, dev_t, uid_t, and gid_tSebastian Huber2016-04-131-4/+16
| | | | | | | Copy definitions of off_t, dev_t, uid_t, and gid_t verbatim from latest FreeBSD <sys/types.h>. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Eliminate use of Newlib-specific <machine/types.h>Sebastian Huber2016-04-1314-46/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change solves a glibc/BSD compatibility problem. glibc and BSD use double underscore types for internal types. The Linux port of Newlib uses some glibc provided internal type definitions which are not protected by guard defines, e.g. __off_t. To avoid a conflict Newlib uses single underscore types for some internal types, e.g. _off_t. However, for BSD compatibility we have to define the internal types with double underscore names in <sys/_types.h>. The header file <machine/types.h> is Newlib-specific. It was used instead of <sys/_types.h> to provide the internal type definitions _CLOCK_T, _TIME_T_, _CLOCKID_T_, _TIMER_T_, and __suseconds_t. Move these definitions to <sys/_types.h> (there exist two instances of this file, one for Linux and one for all other targets). This makes the _HAVE_SYSTYPES configuration define obsolete (could possibly break the __RDOS__ target). Use the standard <sys/_types.h> include throughout. Move __loff_t defintion to default (non-Linux) <sys/_types.h>. Define it via _off64_t to avoid a dependency on the compiler. Provide the __off_t definition via default (non-Linux) <sys/_types.h> based on _off_t for all systems except Cygwin. For Cygwin use _off64_t. Define off_t via __off_t. Provide the __pid_t definition via default (non-Linux) <sys/_types.h>. This prevents a potential __pid_t and pid_t incompatibility. Add BSD guard defines for pid_t. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Add Cygwin 2.5.1 release message fileCorinna Vinschen2016-04-121-0/+14
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Reformat comments in Cygwin's version.h, remove very outdated infoCorinna Vinschen2016-04-121-475/+434
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Bump Cygwin DLL version to 2.5.1.Corinna Vinschen2016-04-121-1/+1
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* strxfrm/wcsxfrm: Always return length of the transformed stringCorinna Vinschen2016-04-121-12/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | Cygwin's strxfrm/wcsfrm treated a too short output buffer as an error condition and always returned the size value provided as third parameter. This is not as it's documented in POSIX.1-2008. Rather, the only error condition is an invalid input string(*). Other than that, the functions are supposed to return the length of the resulting sort key, even if the output buffer is too small. In the latter case the content of the output array is unspecified, but it's the job of the application to check that the return value is greater or equal to the provided buffer size. (*) We have to make an exception in Cygwin: strxfrm has to call the UNICODE function LCMapStringW for reasons outlined in a source comment. If the incoming multibyte string is so large that we fail to malloc the space required to convert it to a wchar_t string, we have to ser errno as well since we have nothing to call LCMapStringW with. * nlsfuncs.cc (wcsxfrm): Fix expression computing offset of trailing wchar_t NUL. Compute correct return value even if output buffer is too small. (strxfrm): Handle failing malloc. Compute correct return value even if output buffer is too small. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Move kernel dependent parts of <sys/time.h>cygwin-2_5_0-releaseSebastian Huber2016-04-083-149/+204
| | | | | | | | Move the kernel dependent parts of <sys/time.h> to new system-specific header file <machine/_time.h>. Provide an empty default implementation. Add a specialized implementation for RTEMS. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* math: fix isinf/isnan on SPU after move to math.hYaakov Selkowitz2016-04-072-0/+4
| | | | Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
* Drop <unistd.h> include from RTEMS <sys/param.h>Sebastian Huber2016-04-071-2/+0
| | | | | | | | This include is not present in default Newlib, glibc and FreeBSD <sys/param.h>. With it there is now a conflict with <sys/libkern.h> introduced by ecf453f9635fb278cff4d4bae21a1e249313b817. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Fix typo in the name of the MSP430 attribute section of example MSP430 ↵Nick Clifton2016-04-072-2/+2
| | | | linker scripts.
* Be truthful about reporting whether readahead is availableJohannes Schindelin2016-04-051-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In 7346568 (Make requested console reports work, 2016-03-16), code was introduced to report the current cursor position. It works by using a pointer that either points to the next byte in the readahead buffer, or to a NUL byte if the buffer is depleted, or the pointer is NULL. These conditions are heeded in the fhandler_console::read() method, but the condition that the pointer can point at the end of the readahead buffer was not handled properly in the get_cons_readahead_valid() method. This poses a problem e.g. in Git for Windows (which uses a slightly modified MSYS2 runtime which is in turn a slightly modified Cygwin runtime) when vim queries the cursor position and immediately goes on to read console input, erroneously thinking that the readahead buffer is valid when it is already depleted instead. This condition results in an apparent freeze that can be helped only by pressing keys repeatedly. The full Git for Windows bug report is here: https://github.com/git-for-windows/git/issues/711 Let's just teach the get_cons_readahead_valid() method to handle a depleted readahead buffer correctly. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* math: update isinf/isnan function comments after move to math.hYaakov Selkowitz2016-04-057-19/+19
| | | | Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
* Add latest changes to release messageCorinna Vinschen2016-04-052-0/+18
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Revert "Refactor to avoid nonnull checks on "this" pointer."Corinna Vinschen2016-04-059-75/+38
| | | | | | | | | This reverts commit 0008bdea02b690ab19ffe997499cb9a96ee5a66d. This patch introduced a regression. Calling FOO=$(...) in zsh hangs indefinitely and has to be killed forcefully. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* math: guard BSD finite/isinf/isnan functions properly in math.hYaakov Selkowitz2016-04-042-19/+19
| | | | | | | | | | | | | | | | | | | | | | | Now that we have properly functioning feature test macros, the BSD floating-point classification functions can go into math.h instead of the non-standard ieeefp.h, and not under the C99 guard: http://man7.org/linux/man-pages/man3/finite.3.html The isnan function was in earlier versions of SUS but removed starting with POSIX.1-2001, compare: http://pubs.opengroup.org/onlinepubs/007908799/xsh/math.h.html http://pubs.opengroup.org/onlinepubs/009695399/basedefs/math.h.html Note that the isinf and isnan functions (but not the variants) conflict with functions by the same name in C++11, hence they (and only they) need to be hidden: https://sourceware.org/git/?p=glibc.git;a=commit;h=d9b965fa56350d6eea9f7f438a0714c7ffbb183f https://sourceware.org/git/?p=glibc.git;a=commit;h=3c47c83a9730c20e602694505b9278c25637b0d0 Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>