summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Handle multibyte decimapl point in strtold.Corinna Vinschen2015-11-212-1/+13
| | | | | | | * libc/stdlib/strtodg.c: Define USE_LOCALE. (_strtodg_r): Handle multibyte decimal point. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Mention strtold patch in Cygwin 2.4.0 release messageCorinna Vinschen2015-11-201-0/+4
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Import correctly working strtold from David M. Gay.Corinna Vinschen2015-11-2014-19/+1369
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libc/stdlib/Makefile.am (GENERAL_SOURCES): Add strtodg.c and strtorx.c. * libc/stdlib/Makefile.in: Regenerate. * libc/stdlib/strtodg.c: New file implementing generic string to long double conversion. * libc/stdlib/strtorx.c: New file, implementing IEEE format string to long double conversion. * libc/stdlib/mprec.h (_strtodg_r): Declare. (_strtorx_r): Declare. * libc/stdlib/gdtoa.h (__UShort): Define. * libc/stdlib/strtold.c (__flt_rounds): Define for i386 and x86_64 target. (FLT_ROUNDS): Define, as 0 on platforms missing a __flt_rounds function. (_strtold_r): Converted from strtold. Call _strtorx_r on targets supporting distinct long doubles. (strtold): Just call _strtold_r. * libc/include/stdlib.h (_strtold_r): Declare. * libc/stdlib/ldtoa.c (_strtold): Comment out. Explain why. * libc/stdio/vfscanf.c (__SVFSCANF_R): Call _strtold_r instead of _strtold. * libc/machine/powerpc/vfscanf.c (__svfscanf_r): Ditto. * common.din (strtold): Drop redirection to _strtold. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Make match function globally available to stdlib functions.Corinna Vinschen2015-11-204-21/+26
| | | | | | | | * libc/stdlib/strtod.c (match): Move from here... * libc/stdlib/gdtoa-hexnan.c (match): ...to here. * libc/stdlib/mprec.h (match): Declare and add __match define. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Drop unused declaration from wcstold.cCorinna Vinschen2015-11-202-2/+4
| | | | | | * libc/stdlib/wcstold.c (_strtold): Drop unused declaration. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix typo in rpmatch doc referenceYaakov Selkowitz2015-11-192-1/+5
| | | | | | * libc/stdlib/stdlib.tex: Fix typo in rpmatch reference. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
* ldtoa.c: Reindent to GNU styleCorinna Vinschen2015-11-192-2317/+2408
| | | | | | | * libc/stdlib/ldtoa.c: Convert to GNU style so as not to get crazy reading the code. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix rpmatch build problemCorinna Vinschen2015-11-192-0/+5
| | | | | | * libc/stdlib/rpmatch.c: Include sys/types.h to make GCC happy. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Simplify the markup for sprintf and swprintf documentationJon Turney2015-11-193-64/+76
| | | | | | | | | | | | - move the description of the alternative form produced with the # flag from a nested table to an additional table 2015-11-12 Jon Turney <jon.turney@dronecode.org.uk> * libc/stdio/sprintf.c: Simplify documentation markup. * libc/stdio/swprintf.c: Ditto. Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
* Improve markup of sscanf and swscanf documentationJon Turney2015-11-193-114/+242
| | | | | | | | | | | | | | | | | | | - use bullet points to separate width, size and type sections, rather than using rows in an enormous table, for consistency with sprintf and swprintf. - use code markup for size bullet point for consistency - use a texinfo multitable for description of the size flags, rather than some preformatted text - tidy up some whitespace so type flags are all aligned 2015-11-12 Jon Turney <jon.turney@dronecode.org.uk> * libc/stdio/sscanf.c: Improve documentation markup. * libc/stdio/swscanf.c: Ditto. Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
* Document new ACL codeCorinna Vinschen2015-11-183-0/+63
| | | | | | * new-features.xml (ov-new2.4): Add new ACL changes. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* get_posix_access: Skip merging permissions if user can't get more permissionsCorinna Vinschen2015-11-182-2/+17
| | | | | | | | * sec_acl.cc (get_posix_access): Skip merging permissions if current user has rwx permissions anywa, or if the sum of all group and other permissions is less than or equal to the user's permissions. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* get_posix_access: Fix computation of effective user permissionsCorinna Vinschen2015-11-182-2/+7
| | | | | | | * sec_acl.cc (get_posix_access): Fix computation of effective user permissions to handle current user, not only the file owner. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix file type mode bit handling on object security.Corinna Vinschen2015-11-183-12/+24
| | | | | | | | | | | | | | | * fhandler_tty.cc (fhandler_pty_slave::open): Add S_IFCHR flag in call to create_object_sd_from_attribute. (fhandler_pty_slave::fstat): Ditto in call to get_object_attribute. (fhandler_pty_slave::fchmod): Add an orig_mode flag and ditto for both calls. (fhandler_pty_master::setup): Ditto in call to create_object_sd_from_attribute. * security.cc (get_object_attribute): Never add S_IFCHR to mode here. Let the caller decide. (create_object_sd_from_attribute): Ditto. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* setfacl: Allow to combine -b and -k optionsCorinna Vinschen2015-11-185-129/+156
| | | | | | | | | | | | | | | * setfacl.c (action_t): Rename DeleteAll to DeleteExt. Add DeleteAll. Rearrange for bit-wise testing later in the code. (delallacl): Handle -b -k combination. (setfacl): Handle DeleteExt/DeleteAll. (usage): Fix -b/-k output. Rearrange output to better fill 80 columns. (main): Allow to combine -b and -k. * utils.xml (setfacl): Accommodate -b/-k change. * new-features.xml (ov-new2.3): Add setfacl -b/-k change. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix permission evaluation for !new_style ACLsCorinna Vinschen2015-11-184-54/+72
| | | | | | | | | | | | | * security.h (authz_get_user_attribute): Declare bool. * sec_helper.cc (authz_ctx::get_user_attribute): Make bool method. Set S_IxOTH bits in returned attributes rather than S_IxUSR bits. (authz_get_user_attribute): Make bool function. * sec_acl.cc (get_posix_access): Introduce cygsid array to keep track of all SIDs in the ACL. Move AuthZ calls into !new_style permission post processing. When not using AuthZ, use CheckTokenMembership to collect group permissions. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix up POSIX permission handlingCorinna Vinschen2015-11-183-9/+67
| | | | | | | | | | | | | | * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Disable deviation from POSIX 1003.1e in terms of GROUP_OBJ/CLASS_OBJ permissions. Follow POSIX 1003.1e again. Keep old code in for future reference. * sec_acl.cc: Accommodate changes in ACE creation in leading comment. (set_posix_access): Fix user deny ACE creation. Split group deny ACE creation into two steps, one to reflect CLASS_OBJ, the other to reflect OTHER_OBJ. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Use Authz to fetch correct user permissions.Corinna Vinschen2015-11-182-2/+28
| | | | | | * sec_acl.cc (getacl): Use Authz to fetch correct user permissions. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add Authz class to compute exact POSIX user perms in a security descriptorCorinna Vinschen2015-11-185-25/+194
| | | | | | | | | | | | | | | | | | * autoload.cc (AuthzAccessCheck): Import. (AuthzFreeContext): Import. (AuthzInitializeContextFromSid): Import. (AuthzInitializeContextFromToken): Import. (AuthzInitializeResourceManager): Import. * sec_helper.cc (get_sids_info): Remove. (class authz_ctx_cache_entry): New class. (class authz_ctx_cache): New class. (class authz_ctx): New class. (authz_get_user_attribute): New function. * security.h (get_sids_info): Drop prototype. (authz_get_user_attribute): Add prototype. * winlean.h (_AUTHZ_): Define. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* * sec_acl.cc (get_posix_access): Fix class_perm in !new_style case.Corinna Vinschen2015-11-182-1/+6
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Reapply POSIX ACL changes.Corinna Vinschen2015-11-1818-1359/+1819
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - New, unified implementation of POSIX permission and ACL handling. The new ACLs now store the POSIX ACL MASK/CLASS_OBJ permission mask, and they allow to inherit the S_ISGID bit. ACL inheritance now really works as desired, in a limited, but theoretically equivalent fashion even for non-Cygwin processes. To accommodate Windows default ACLs, the new code ignores SYSTEM and Administrators group permissions when computing the MASK/CLASS_OBJ permission mask on old ACLs, and it doesn't deny access to SYSTEM and Administrators group based on the value of MASK/CLASS_OBJ when creating the new ACLs. The new code now handles the S_ISGID bit on directories as on Linux: Setting S_ISGID on a directory causes new files and subdirs created within to inherit its group, rather than the primary group of the user who created the file. This only works for files and directories created by Cygwin processes. 2015-05-29 Corinna Vinschen <corinna@vinschen.de> Reapply POSIX ACL changes. * utils.xml (setfacl): Show new option output. (getfacl): Show new option output. * sec_acl.cc (get_posix_access): Check for Cygwin "standard" ACL. Apply umask, if so. Align comments. * security.cc (set_created_file_access): Fix permission masking by incoming requested file mode. * sec_acl.cc (set_posix_access): Apply mask only in terms of execute bit for SYSTEM and Admins group. * sec_acl.cc (set_posix_access): Don't create DENY ACEs for USER and GROUP entries if they are the same as USER_OBJ or GROUP_OBJ. * fhandler.h (fhandler_pty_slave::facl): Add prototype. * fhandler_tty.cc (fhandler_pty_slave::facl): New method. (fhandler_pty_slave::fchown): Fix uid/gid handling. * sec_acl.cc (set_posix_access): Drop superfluous class_idx variable. Simplify and move around code in a few places. To improve ACL readability, add r/w permissions to Admins ACE appended to pty ACL. Add comment to explain Windows ACE Mask filtering being in the way of creating a real CLASS_OBJ. (get_posix_access): Fake CLASS_OBJ for ptys. Explain why. * security.cc (get_object_attribute): Add S_IFCHR flag to attributes when calling get_posix_access. * sec_acl.cc (set_posix_access): Move merging group perms into owner perms in case of owner == group after mask has been computed. Take mask into account when doing so to avoid unnecessary ACCESS_DENIED_ACE. * sec_acl.cc (get_posix_access): Only set saw_group_obj flag if we saw the ACCESS_ALLOWED_ACE. * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Deliberatly set GROUP_OBJ and CLASS_OBJ perms to new group perms. Add comment to explain why. * security.cc (set_created_file_access): Ditto. * sec_acl.cc (set_posix_access): Replace previous patch. Return EINVAL if uid and/or guid is invalid and not backed by an actual Windows account. * sec_acl.cc (set_posix_access): Workaround owner/group SIDs being NULL. * sec_acl.cc (set_posix_access): Handle files with owner == group. Rephrase switch statement checking against unfiltered a_type value. (get_posix_access): Handle files with owner == group. * sec_acl.cc (get_posix_access): Don't use GROUP_OBJ access to fix up CLASS_OBJ mask on old-style ACLs. Fix a comment. * sec_acl.cc (set_posix_access): Always make sure Admins have WRITE_DAC and WRITE_OWNER permissions. * security.h (create_object_sd_from_attribute): Drop handle parameter from prototype. * security.cc (create_object_sd_from_attribute): Drop handle parameter. Just create the standard POSIXy security descriptor. (set_object_attribute): Accommodate dropped paramter in call to create_object_sd_from_attribute. * fhandler_tty.cc: Ditto, throughout. * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Fix typo in mask computation. * fhandler.cc (fhandler_base::open_with_arch): Call open with mode not umasked. (fhandler_base::open): Explicitely umask mode on NFS here. Call new set_created_file_access rather than set_file_attribute. * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Reimplement setting permissions on filesystems supporting ACLs using the new set_posix_access call. (fhandler_disk_file::fchown): Ditto. (fhandler_disk_file::mkdir): Call new set_created_file_access rather than set_file_attribute. * fhandler_socket.cc (fhandler_socket::bind): Don't umask here. Add WRITE_OWNER access to allow writing group in case of SGID bit set. Call new set_created_file_access rather than set_file_attribute. * path.cc (symlink_worker): Call new set_created_file_access rather than set_file_attribute. * sec_acl.cc (searchace): Un-staticize. (set_posix_access): New, complementary functionality to get_posix_access. (setacl): Implement in terms of get_posix_access/set_posix_access. (get_posix_access): Add handling for just created files requiring their first Cygwin ACL. Fix new_style recognition. Handle SGID bit. For old-style ACLs, ignore SYSTEM and Administrators when computing the {DEF_}CLASS_OBJ perms. * security.cc (get_file_sd): Revamp comment. Change and (hopefully) speed up inheritance processing for just created files. (alloc_sd): Remove. (set_security_attribute): Call set_posix_access instead of alloc_sd. (get_object_attribute): Fix return value. (create_object_sd_from_attribute): Call set_posix_access instead of alloc_sd. (set_file_attribute): Remove. (set_created_file_access): New function implemented in terms of get_posix_access/set_posix_access. * security.h (set_file_attribute): Remove prototype. (set_created_file_access): Add prototype. (searchace): Ditto. (set_posix_access): Ditto. * syscalls.cc (open): Call open_with_arch with mode not umasked. * sec_acl.cc: Change preceeding comment explaining new-style ACLs. Describe how to generate deny ACEs in more detail. Accommodate the fact that a NULL deny ACE is used for {DEF_}CLASS_OBJ, rather than a special Cygwin ACE. Improve further comments. (CYG_ACE_NEW_STYLE): Define. (get_posix_access): Change from Cygwin ACE to NULL deny ACE. Fix CLASS_OBJ handling to generate CLASS_OBJ and DEF_CLASS_OBJ from a single NULL deny ACE if the inheritance flags say so. * sec_helper.cc (well_known_cygwin_sid): Remove. * security.h (well_known_cygwin_sid): Drop declaration. * sec_acl.cc (CYG_ACE_ISBITS_TO_WIN): Fix typo. (get_posix_access): Rename index variable from i to idx. Define only once at top level. * security.cc (add_access_allowed_ace): Drop unused parameter "offset". Accommodate throughout. (add_access_denied_ace): Ditto. * sec_acl.cc: Accommodate above change throughout. * security.h (add_access_allowed_ace): Adjust prototype to above change. (add_access_denied_ace): Ditto. * sec_acl.cc (get_posix_access): Handle multiple ACEs for the owner and primary group of the file. Handle the default primary group ACE as DEF_GROUP_OBJ entry if the directory has the S_ISGID bit set. Add comments. Minor code rearrangements. Preliminary read side implementation of new permission handling. * acl.h (MAX_ACL_ENTRIES): Raise to 2730. Add comment to explain. * sec_acl.cc: Add leading comment to explain new ACL style. Add definitions and macros to use for bits in new Cygwin ACL. (DENY_RWX): New mask value for all temporary deny bits. (getace): Add bool parameter to decide when leaving all bits intact, rather than filtering them per the already set bits. (get_posix_access): New function, taking over functionality to read POSIX ACL from SECURITY_DESCRIPTOR. (getacl): Just call get_posix_access. * sec_helper.cc (well_known_cygwin_sid): Define. * security.cc (get_attribute_from_acl): Remove. (get_info_from_sd): Remove. (get_reg_sd): Call get_posix_access instead of get_info_from_sd. (get_file_attribute): Ditto. (get_object_attribute): Ditto. * security.h (well_known_cygwin_sid): Declare. (get_posix_access): Add prototype. * Throughout, use simpler ACE macros from Windows' accctrl.h. * getfacl.c (main): Special-case SYSTEM and Admins group. Add comments. * setfacl.c: Align more to Linux tool. (delacl): New function to delete acl entries only. (modacl): Drop delete functionality. Add handling of recomputing the mask and default mask values. (delallacl): Rename from delacl. (setfacl): Call delacl in Delete case. Call delallacl in DeleteAll and DeleteDef case. (usage): Accommodate new options. Rearrange and rephrase slightly. (longopts): Emit 'x' in --delete case. Add --no-mask and --mask options. (opts): Add -x and -n options. (main): Handle -d and -x the same. Handle -n and --mask options. Drop handling for -r option. * getfacl.c (usage): Align more closely to Linux version. Add new options -c, -e, -E. Change formatting to accommodate longer options. (longopts): Rename --noname to --numeric. Keep --noname for backward compatibility. Add --omit-header, --all-effective and --no-effective options. (opts): Add -c, -e and -E option. (main): Handle new -c, -e, and -E options. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Bump Cygwin DLL version to 2.4.0Corinna Vinschen2015-11-182-2/+7
| | | | | | | * include/cygwin/version.h (CYGWIN_VERSION_DLL_MAJOR): Bump to 2004. (CYGWIN_VERSION_API_MINOR): Reset to 0. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add missing ChangeLog entry for previous commitCorinna Vinschen2015-11-181-0/+6
|
* Update Cygwin's fnmatch to latest from FreeBSD.Corinna Vinschen2015-11-183-55/+87
| | | | | | | | * collate.h (__collate_load_error): Convert to extern declaration. * globals.cc (__collate_load_error): Define and initialize here. * libc/fnmatch.c: Update to latest from FreeBSD. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Don't generate Windows native symlinks targeting Cygwin-only targetsCorinna Vinschen2015-11-182-2/+15
| | | | | | | | | * path.cc (symlink_native): Don't generate native symlink targeting Cygwin special file. Inform the caller. (symlink_worker): Don;t bail out in WSYM_nativestrict case if the target is a Cygwin special file. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Regenerate Cygwin locale message infoCorinna Vinschen2015-11-182-29/+46
| | | | | | * lc_msg.h: Regenerate. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* cygwin: export rpmatch(3)Yaakov Selkowitz2015-11-176-1/+26
| | | | | | | | | | | | winsup/cygwin/ * common.din (rpmatch): Export. * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. winsup/doc/ * new-features.xml (ov-new2.4): New section. Document rpmatch. * posix.xml (std-bsd): Add rpmatch. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
* Add rpmatch(3)Yaakov Selkowitz2015-11-176-2/+113
| | | | | | | | | | | 2015-11-17 Yaakov Selkowitz <yselkowi@redhat.com> * libc/include/stdlib.h (rpmatch): Declare. * libc/stdlib/Makefile.am (ELIX_4_SOURCES): Add rpmatch.c. (CHEWOUT_FILES): Add rpmatch.def. * libc/stdlib/Makefile.in: Regenerate. * libc/stdlib/rpmatch.c: New file. * libc/stdlib/stdlib.tex: Add references to rpmatch.
* [ARM] Factor out the thumb1 -Os implementation.cygwin-2_3_1-releasecygwin-2_3_1-relaseMarcus Shawcroft2015-11-134-15/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The patch moves the inline ASM thumb1 -O2 implementation out into its own .S file. Tested by building newlib and comparing libc.a binaries before and after for all permutations of: Architectures: armv4 armv4t armv5 armv5t armv5te armv6 armv6j armv6k armv6z armv6kz armv6t2 armv6-m armv6s-m armv7 armv7-a armv7ve armv7-r armv7-m armv7e-m armv8-a iwmmxt iwmmxt2 ISAs: thumb arm Optimization Levels: Os O2 Excluding: armv6s-m -mthumb armv6-m -mthumb armv6zk -mthumb armv6z -mthumb armv6k -mthumb armv6j -mthumb
* [ARM] Adding strlen.SMarcus Shawcroft2015-11-136-29/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The patch adds strlen.S to contain the complementary preprocessor logic to strlen-stub.c intended to provide #inclusion of alternative .S implementations. Initially we just include the existing strlen-armv7.S implementation. We rewrite _ISA_ARMV7 in both strlen.S and strlen-stub.c to use the underlying existing underlying defintion from arm_asm.h in order to avoide including that file, this is in effect the first step towards a move to ACLE predefines only. Tested by building newlib and comparing libc.a binaries before and after for all permutations of: Architectures: armv4 armv4t armv5 armv5t armv5te armv6 armv6j armv6k armv6z armv6kz armv6t2 armv6-m armv6s-m armv7 armv7-a armv7ve armv7-r armv7-m armv7e-m armv8-a iwmmxt iwmmxt2 ISAs: thumb arm Optimization Levels: Os O2 Excluding: armv6s-m -mthumb armv6-m -mthumb armv6zk -mthumb armv6z -mthumb armv6k -mthumb armv6j -mthumb
* [ARM] Rename strlen to strlen-stub.cMarcus Shawcroft2015-11-134-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to maintain consistency both within machine/arm and between machine/arm and machine/aarch64, rename the 'c' stub to -stub.c. Tested by building newlib and comparing libc.a binaries before and after for all permutations of: Architectures: armv4 armv4t armv5 armv5t armv5te armv6 armv6j armv6k armv6z armv6kz armv6t2 armv6-m armv6s-m armv7 armv7-a armv7ve armv7-r armv7-m armv7e-m armv8-a iwmmxt iwmmxt2 ISAs: thumb arm Optimization Levels: Os O2 Excluding: armv6s-m -mthumb armv6-m -mthumb armv6zk -mthumb armv6z -mthumb armv6k -mthumb armv6j -mthumb
* [ARM] Reorganize strlen selection.Marcus Shawcroft2015-11-136-190/+25
| | | | | Remove automake and autoconf selection of strchr implementation in favour of conditional compilation in strlen.c.
* [ARM] Refactor strlen.c #if nesting.Marcus Shawcroft2015-11-132-26/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch flattens the condition code selection used in strlen in an attempt to make the guarding condition for each alternative implementation clearer and to structure the logic in a manner that makes it easier to maintain complementary logic between the alternative 'C' and assembler implementations. Tested by building newlib and comparing libc.a binaries before and after for all permutations of: Architectures: armv4 armv4t armv5 armv5t armv5te armv6 armv6j armv6k armv6z armv6kz armv6t2 armv6-m armv6s-m armv7 armv7-a armv7ve armv7-r armv7-m armv7e-m armv8-a iwmmxt iwmmxt2 ISAs: thumb arm Optimization Levels: Os O2 Excluding: armv6s-m -mthumb armv6-m -mthumb armv6zk -mthumb armv6z -mthumb armv6k -mthumb armv6j -mthumb
* Add Synopsys license for newlib and libglossAnton Kolesov2015-11-123-0/+65
| | | | | | | | ChangeLog: 2015-11-12 Anton Kolesov <Anton.Kolesov@synopsys.com> * COPYING.LIBGLOSS: Add Synopsys license. * COPYING.NEWLIB: Likewise.
* Add support for ARC to newlibAnton Kolesov2015-11-1241-6/+10054
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | newlib/ChangeLog: 2015-11-12 Anton Kolesov <Anton.Kolesov@synopsys.com> * configure.host: Add ARC support. * libc/include/machine/setjmp.h: Likewise. * libc/machine/configure: Likewise. * libc/machine/configure.in: Likewise. * libc/machine/arc/Makefile.am: Likewise. * libc/machine/arc/Makefile.in: Likewise. * libc/machine/arc/aclocal.m4: Likewise. * libc/machine/arc/asm.h: Likewise. * libc/machine/arc/configure: Likewise. * libc/machine/arc/configure.in: Likewise. * libc/machine/arc/memcmp-bs-norm.S: Likewise. * libc/machine/arc/memcmp-stub.c: Likewise. * libc/machine/arc/memcmp.S: Likewise. * libc/machine/arc/memcpy-archs.S: Likewise. * libc/machine/arc/memcpy-bs.S: Likewise. * libc/machine/arc/memcpy-stub.c: Likewise. * libc/machine/arc/memcpy.S: Likewise. * libc/machine/arc/memset-archs.S: Likewise. * libc/machine/arc/memset-bs.S: Likewise. * libc/machine/arc/memset-stub.c: Likewise. * libc/machine/arc/memset.S: Likewise. * libc/machine/arc/setjmp.S: Likewise. * libc/machine/arc/strchr-bs-norm.S: Likewise. * libc/machine/arc/strchr-bs.S: Likewise. * libc/machine/arc/strchr-stub.c: Likewise. * libc/machine/arc/strchr.S: Likewise. * libc/machine/arc/strcmp-archs.S: Likewise. * libc/machine/arc/strcmp-stub.c: Likewise. * libc/machine/arc/strcmp.S: Likewise. * libc/machine/arc/strcpy-bs-arc600.S: Likewise. * libc/machine/arc/strcpy-bs.S: Likewise. * libc/machine/arc/strcpy-stub.c: Likewise. * libc/machine/arc/strcpy.S: Likewise. * libc/machine/arc/strlen-bs-norm.S: Likewise. * libc/machine/arc/strlen-bs.S: Likewise. * libc/machine/arc/strlen-stub.c: Likewise. * libc/machine/arc/strlen.S: Likewise. * libc/machine/arc/strncpy-bs.S: Likewise. * libc/machine/arc/strncpy-stub.c: Likewise. * libc/machine/arc/strncpy.S: Likewise.
* Add support for ARC to libglossAnton Kolesov2015-11-1216-6/+5568
| | | | | | | | | | | | | | | | | | | | | | | | ChangeLog: 2015-11-12 Anton Kolesov <Anton.Kolesov@synopsys.com> * configure.in: Add ARC support to libgloss. * configure: Regenerate. libgloss/ChangeLog: 2015-11-12 Anton Kolesov <Anton.Kolesov@synopsys.com> * configure: Add ARC support. * configure.in: Likewise. * arc/Makefile.in: Likewise. * arc/aclocal.m4: Likewise. * arc/configure: Likewise. * arc/configure.in: Likewise. * arc/crt0.S: Likewise. * arc/libcfunc.c: Likewise. * arc/nsim-syscall.h: Likewise. * arc/nsim-syscalls.c: Likewise. * arc/nsim.specs: Likewise. * arc/sbrk.c: Likewise.
* Remove obsolete ARC systemAnton Kolesov2015-11-1216-6618/+20
| | | | | | | | | | | | | | | | | | | | | | | | | ARC architecture specific files has been added ages ago in newlib/libc/sys, but with invention of libgloss those files should be moved from newlib to libgloss. newlib/ChangeLog: 2015-11-12 Anton Kolesov <Anton.Kolesov@synopsys.com> * configure.host: Remove ARC system. * libc/sys/configure: Likewise. * libc/sys/configure.in: Likewise. * libc/sys/arc/Makefile.am: Likewise. * libc/sys/arc/Makefile.in: Likewise. * libc/sys/arc/aclocal.m4: Likewise. * libc/sys/arc/configure: Likewise. * libc/sys/arc/configure.in: Likewise. * libc/sys/arc/crt0.S: Likewise. * libc/sys/arc/dummy.S: Likewise. * libc/sys/arc/isatty.c: Likewise. * libc/sys/arc/mem-layout.c: Likewise. * libc/sys/arc/sbrk.c: Likewise. * libc/sys/arc/sys/syscall.h: Likewise. * libc/sys/arc/syscalls.c: Likewise.
* Fix multilib libgloss selection.Marcus Shawcroft2015-11-122-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Regression testing newlib in conjunction with libgloss and --enable-multilib can result in incompatible multilib versions of newlib and libgloss being used during link. This manifests on ARM target when newlib regression is run using a GCC configured using --with-multilib-list=aprofile With this configuration many of the multilib variants built are mutually incompatible. The issue is that the newlib dejagnu foo iterates each multilib variant and correctly chooses the appropriate newlib variant but always chooses the root/base libgloss variant. The implementation of newlib/testsuite/lib/flags.exp contains the following fragment: set target_build_path "$objdir/$multibuildtop.." The effect of this fragment is to explicitly select the root version of libgloss, irrespective of the current multilib. Digging around in VC it appears that the original implementation of multlib magic came into the tree back in 2002 with: 6e9d950a (Thomas Fitzsimmons 2002-05-01 17:06:25 +0000 39) In this initial version of multilib support, newlib was multilib capable, but libgloss was not multilib capable, hence the necessity to explicitly select the root libgloss version. Subsequently flags.exp was modified to support out of tree testing: cec1d3b4 (Jeff Johnston 2005-07-05 00:11:50 +0000 25) This change is orthogonal to this issue, its effect is to exit early in none multilib configurations. Subsequently libgloss gained --enable-multilib support, the relevant change is: https://sourceware.org/ml/newlib/2006/msg00440.html commit 00a4b31ad08aef361c5d74125ece410b4c285975 Author: Jeff Johnston <jjohnstn@redhat.com> Date: Wed May 10 20:51:41 2006 +0000 This change enabled multilib support throughout libgloss, but ommitted to adjust the flag.exp behaviour which anchors the libgloss multilib selection to the base version. The attached patch adjusts flags.exp to select the current multilib variant of libgloss. 2015-11-06 Marcus Shawcroft <marcus.shawcroft@arm.com> * testsuite/lib/flags.exp (libgloss_link_flags): Drop multilibtop from target_build_path.
* makedoc: Don't interpret license text as a commandJon Turney2015-11-122-8/+16
| | | | | | | | | | | | | | | | | | | | | | | | Align makedoc's iscommand() with it's documentation, and don't allow commands to contain a space. A command is a line containing only a sequence of capital letters or '_', followed by optional spaces. This prevents "IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE" (the only line in the license text which consists of only capitals and spaces, without any punctuation) from being interepreted as a makedoc command, leading to: "Can't find IMPLIED" "warning, IMPLIED is not recognised" being emitted by makedoc, (which is normally un-noticed because makedoc's stderr is redirected to a .ref file) 2015-11-06 Jon Turney <jon.turney@dronecode.org.uk> * doc/makedoc.c (iscommand): Only allow commands to have trailing spaces, not space separated words. Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
* doc: Fix some inconsistent QUICKREF linesJon Turney2015-11-126-5/+18
| | | | | | | | | | | | | | | | | | | | | | makedoc defines a command as 'all upper case, and alone on a line'. A few QUICKREF lines currently violate this by having some additional text after the QUICKREF. So, currently, these lines are treated as an unknown command. This is benign as QUICKREF currently does nothing but produce some ignored output on stderr. I'm not sure what the intent of QUICKREF is. 2015-11-06 Jon Turney <jon.turney@dronecode.org.uk> * libm/mathfp/s_acos.c: Fix QUICKREF. * libm/mathfp/e_acosh.c: Ditto. * libm/math/w_asin.c: Ditto. * libm/mathfp/e_acosh.c: Ditto. * libm/mathfp/s_acos.c: Ditto. Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
* makedoc: Fix INTERNAL(|DEFINITION|FUNCTION) command definitionsJon Turney2015-11-122-4/+9
| | | | | | | | | | | | | | | | | | | | | The unused INTERNAL_DEFINITION, INTERNAL_FUNCTION and INTERNAL commands are defined in terms of the non-existent built-in 'func' This causes every single invocation of makedoc to output "Can't find func" three times, as it parses doc.str. This is normally un-noticed because makedoc's stderr is redirected to a .ref file. Fix these unused command definitions to something with equivalent lack of effect, but without generating an error. 2015-11-06 Jon Turney <jon.turney@dronecode.org.uk> * doc/doc.str: Fix INTERNAL_DEFINITION, INTERNAL_FUNCTION and INTERNAL. Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
* AArch64: Tune memcpyWilco Dijkstra2015-11-122-24/+37
| | | | | * newlib/libc/machine/aarch64/memcpy.S (memcpy): Further tuning for performance.
* flock: Fix hang in object collision caseCorinna Vinschen2015-11-123-2/+12
| | | | | | | * flock.cc (lockf_t::create_lock_obj): Correctly recreate lock object attributes anew in each loop. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Avoid .eh_frame in ARM newlib.Joseph Myers2015-11-128-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | ARM newlib has various strcmp implementations that use .cfi_* directives to generate unwind information. The effect of this is that the generated objects contain .eh_frame sections. However, ARM uses its own unwind info format, not .eh_frame, which is generated by ARM-specific directives, not .cfi_*. The .eh_frame sections are useless, but also not removed by strip and may be loaded into memory at runtime. This patch fixes this by using .cfi_sections .debug_frame (as in glibc) so that the directives generate .debug_frame instead. .debug_frame is useful for the debugger, can be removed by strip, and is not loaded into memory at runtime. * libc/machine/arm/strcmp-arm-tiny.S: Use .cfi_sections .debug_frame. * libc/machine/arm/strcmp-armv4.S: Likewise. * libc/machine/arm/strcmp-armv4t.S: Likewise. * libc/machine/arm/strcmp-armv6.S: Likewise. * libc/machine/arm/strcmp-armv6m.S: Likewise. * libc/machine/arm/strcmp-armv7.S: Likewise. * libc/machine/arm/strcmp-armv7m.S: Likewise.
* Add comment to explain previous patchCorinna Vinschen2015-11-121-0/+2
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix crash at process init on 64 bit XP/2003 under WOW64Corinna Vinschen2015-11-123-3/+26
| | | | | | | | * init.cc (munge_threadfunc): Don't call NtQueryInformationThread with ThreadQuerySetWin32StartAddress info class on XP 64 and Server 2003 64. It crashes. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Bump Cygwin DLL minor numberCorinna Vinschen2015-11-092-1/+5
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Reorganize memchr selection.cygwin-2_3_0-releaseMarcus Shawcroft2015-11-067-124/+117
| | | | | | | | | | | | | | | | | | | | | The patch cleans up the auto configury mechanism used to select different implementations of memchr for various architecture versions. The approach here is to remove the selection of memchr within automake and instead use complimentary logic in memchr-stub.c and memchr.S to choose between the gerneric memchr.c implementation or one of the architecture specific implementations. This patch also changes the selection criteria inline with the previous proposal here: https://sourceware.org/ml/newlib/2015/msg00752.html but using the ACLE predefines. Regressed for armv7-a armv5 armv8-a, correct selection of memcpy implementation by manual inspection of a test program built for these three architectures.
* Reorganize memcpy selection.Marcus Shawcroft2015-11-067-296/+92
| | | | | | | | | | | | | | | | | | | This patch cleans up the auto configury mechanism used to select different implementations of memcpy for various architecture versions. The approach here is to remove the selection of memcpy within automake and instead use complimentary logic in memcpy-stub.c and memcpy.S to choose between the generic memcpy.c implemenation or one of the architecture specific memcpy*.S implemenations. Regressed for armv7-a armv5 armv8-a, correct selection of memcpy implementation by manual inspection of a test program built for these three architectures. This revised patch flips the remaining preprocessor logic in memcpy-stub.c to use ACLE defines as requested in the previous review and removes the now disused HAVE_ARMV7A and HAVE_ARMV8A configure.in support.
* Replace __attribute((__warning__())) by __attribute__((deprecated()))Olivier Martin2015-11-062-2/+7
| | | | | | | | | | Clang raises the warning message: warning: unknown attribute '__warning__' ignored [-Wunknown-attributes] * libc/include/stdlib.h (mktemp): Change attribute to deprecated. (_mktemp_r): Ditto. Signed-off-by: Olivier Martin <olivier@labapart.com>