]> sourceware.org Git - newlib-cygwin.git/log
newlib-cygwin.git
8 years ago* sec_acl.cc (get_posix_access): Fix class_perm in !new_style case.
Corinna Vinschen [Mon, 31 Aug 2015 14:56:14 +0000 (16:56 +0200)]
* sec_acl.cc (get_posix_access): Fix class_perm in !new_style case.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoReapply POSIX ACL changes.
Corinna Vinschen [Wed, 24 Jun 2015 09:52:29 +0000 (11:52 +0200)]
Reapply POSIX ACL changes.

  - 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>
8 years agoBump Cygwin DLL version to 2.4.0
Corinna Vinschen [Wed, 18 Nov 2015 21:11:54 +0000 (22:11 +0100)]
Bump Cygwin DLL version to 2.4.0

* 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>
8 years agoAdd missing ChangeLog entry for previous commit
Corinna Vinschen [Wed, 18 Nov 2015 21:05:21 +0000 (22:05 +0100)]
Add missing ChangeLog entry for previous commit

8 years agoUpdate Cygwin's fnmatch to latest from FreeBSD.
Corinna Vinschen [Wed, 18 Nov 2015 19:51:12 +0000 (20:51 +0100)]
Update Cygwin's fnmatch to latest from FreeBSD.

        * 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>
8 years agoDon't generate Windows native symlinks targeting Cygwin-only targets
Corinna Vinschen [Wed, 18 Nov 2015 18:12:37 +0000 (19:12 +0100)]
Don't generate Windows native symlinks targeting Cygwin-only targets

* 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>
8 years agoRegenerate Cygwin locale message info
Corinna Vinschen [Wed, 18 Nov 2015 18:09:30 +0000 (19:09 +0100)]
Regenerate Cygwin locale message info

* lc_msg.h: Regenerate.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agocygwin: export rpmatch(3)
Yaakov Selkowitz [Tue, 17 Nov 2015 18:23:33 +0000 (12:23 -0600)]
cygwin: export rpmatch(3)

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>
8 years agoAdd rpmatch(3)
Yaakov Selkowitz [Tue, 17 Nov 2015 17:53:00 +0000 (11:53 -0600)]
Add rpmatch(3)

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.

8 years ago[ARM] Factor out the thumb1 -Os implementation. cygwin-2_3_1-relase cygwin-2_3_1-release
Marcus Shawcroft [Tue, 10 Nov 2015 15:12:30 +0000 (15:12 +0000)]
[ARM] Factor out the thumb1 -Os implementation.

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

8 years ago[ARM] Adding strlen.S
Marcus Shawcroft [Tue, 10 Nov 2015 14:08:42 +0000 (14:08 +0000)]
[ARM] Adding strlen.S

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

8 years ago[ARM] Rename strlen to strlen-stub.c
Marcus Shawcroft [Tue, 10 Nov 2015 14:04:54 +0000 (14:04 +0000)]
[ARM] Rename strlen to strlen-stub.c

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

8 years ago[ARM] Reorganize strlen selection.
Marcus Shawcroft [Mon, 9 Nov 2015 23:25:36 +0000 (23:25 +0000)]
[ARM] Reorganize strlen selection.

Remove automake and autoconf selection of strchr implementation in
favour of conditional compilation in strlen.c.

8 years ago[ARM] Refactor strlen.c #if nesting.
Marcus Shawcroft [Mon, 9 Nov 2015 15:01:31 +0000 (15:01 +0000)]
[ARM] Refactor strlen.c #if nesting.

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

8 years agoAdd Synopsys license for newlib and libgloss
Anton Kolesov [Fri, 23 Oct 2015 18:24:57 +0000 (21:24 +0300)]
Add Synopsys license for newlib and libgloss

ChangeLog:
2015-11-12  Anton Kolesov  <Anton.Kolesov@synopsys.com>

* COPYING.LIBGLOSS: Add Synopsys license.
* COPYING.NEWLIB: Likewise.

8 years agoAdd support for ARC to newlib
Anton Kolesov [Fri, 23 Oct 2015 18:24:50 +0000 (21:24 +0300)]
Add support for ARC to newlib

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.

8 years agoAdd support for ARC to libgloss
Anton Kolesov [Fri, 23 Oct 2015 18:24:06 +0000 (21:24 +0300)]
Add support for ARC to libgloss

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.

8 years agoRemove obsolete ARC system
Anton Kolesov [Fri, 23 Oct 2015 18:23:40 +0000 (21:23 +0300)]
Remove obsolete ARC system

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.

8 years agoFix multilib libgloss selection.
Marcus Shawcroft [Fri, 6 Nov 2015 14:41:33 +0000 (14:41 +0000)]
Fix multilib libgloss selection.

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.

8 years agomakedoc: Don't interpret license text as a command
Jon Turney [Fri, 6 Nov 2015 14:40:23 +0000 (14:40 +0000)]
makedoc: Don't interpret license text as a command

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>
8 years agodoc: Fix some inconsistent QUICKREF lines
Jon Turney [Sun, 25 Oct 2015 13:15:07 +0000 (13:15 +0000)]
doc: Fix some inconsistent QUICKREF lines

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>
8 years agomakedoc: Fix INTERNAL(|DEFINITION|FUNCTION) command definitions
Jon Turney [Sun, 25 Oct 2015 15:25:00 +0000 (15:25 +0000)]
makedoc: Fix INTERNAL(|DEFINITION|FUNCTION) command definitions

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>
8 years agoAArch64: Tune memcpy
Wilco Dijkstra [Fri, 6 Nov 2015 14:09:20 +0000 (14:09 +0000)]
AArch64: Tune memcpy

  * newlib/libc/machine/aarch64/memcpy.S (memcpy):
  Further tuning for performance.

8 years agoflock: Fix hang in object collision case
Corinna Vinschen [Thu, 12 Nov 2015 12:14:08 +0000 (13:14 +0100)]
flock: Fix hang in object collision case

* flock.cc (lockf_t::create_lock_obj): Correctly recreate lock object
attributes anew in each loop.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoAvoid .eh_frame in ARM newlib.
Joseph Myers [Thu, 12 Nov 2015 12:09:24 +0000 (12:09 +0000)]
Avoid .eh_frame in ARM newlib.

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.

8 years agoAdd comment to explain previous patch
Corinna Vinschen [Thu, 12 Nov 2015 10:52:02 +0000 (11:52 +0100)]
Add comment to explain previous patch

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoFix crash at process init on 64 bit XP/2003 under WOW64
Corinna Vinschen [Thu, 12 Nov 2015 10:48:30 +0000 (11:48 +0100)]
Fix crash at process init on 64 bit XP/2003 under WOW64

* 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>
8 years agoBump Cygwin DLL minor number
Corinna Vinschen [Mon, 9 Nov 2015 09:12:48 +0000 (10:12 +0100)]
Bump Cygwin DLL minor number

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoReorganize memchr selection. cygwin-2_3_0-release
Marcus Shawcroft [Tue, 3 Nov 2015 14:17:56 +0000 (14:17 +0000)]
Reorganize memchr selection.

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.

8 years agoReorganize memcpy selection.
Marcus Shawcroft [Fri, 30 Oct 2015 15:14:53 +0000 (15:14 +0000)]
Reorganize memcpy selection.

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.

8 years agoReplace __attribute((__warning__())) by __attribute__((deprecated()))
Olivier Martin [Fri, 6 Nov 2015 10:05:09 +0000 (10:05 +0000)]
Replace __attribute((__warning__())) by __attribute__((deprecated()))

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>
8 years agoFake volume serial number on filesystems not providing it
Corinna Vinschen [Thu, 5 Nov 2015 17:34:34 +0000 (18:34 +0100)]
Fake volume serial number on filesystems not providing it

* mount.cc (fs_info::update): Fake a serial number on filesystems not
providing one.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoAvoid deadlock in flock(2)
Corinna Vinschen [Thu, 5 Nov 2015 17:31:36 +0000 (18:31 +0100)]
Avoid deadlock in flock(2)

* fcntl.cc (fcntl64): Don't lock fd table when performing locking.
* flock.cc (flock): Ditto.
(lockf): Ditto.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoFix iterating over pending signals if a signal doesn't have to be cleared
Corinna Vinschen [Thu, 5 Nov 2015 09:09:08 +0000 (10:09 +0100)]
Fix iterating over pending signals if a signal doesn't have to be cleared

* sigproc.cc (pending_signals::clear): Yet another fix to fix the fix.
Actually iterate over the list of pending signals even if there's a
signal which doesn't have to be cleared.  Other than that, revert loop
to it's former self as a while loop.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoAccommodate trailing NUL in PrlSF filesystem name.
Corinna Vinschen [Wed, 4 Nov 2015 13:47:25 +0000 (14:47 +0100)]
Accommodate trailing NUL in PrlSF filesystem name.

* globals.cc (ro_u_prlfs): Add trailing NUL.  Explain why.
* mount.cc (fs_info::update): Add a comment to explain PrlSF.
* path.h (path_conv::fs_is_prlfs): Add for symmetry.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoAdd missing release message for 68b4238f4a1276a1f6f18430580b62dfa0420ffd
Corinna Vinschen [Wed, 4 Nov 2015 09:09:12 +0000 (10:09 +0100)]
Add missing release message for 68b4238f4a1276a1f6f18430580b62dfa0420ffd

8 years agoFix potential endless loop in pending_signals::clear
Corinna Vinschen [Tue, 3 Nov 2015 17:25:23 +0000 (18:25 +0100)]
Fix potential endless loop in pending_signals::clear

* sigproc.cc (pending_signals::clear): Fix previous fix resulting in
yet another endless loop.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years ago[ARM] Select appropriate memcpy implementation for ARMv8-a.
Marcus Shawcroft [Tue, 3 Nov 2015 11:02:15 +0000 (11:02 +0000)]
[ARM] Select appropriate memcpy implementation for ARMv8-a.

The newlib configury logic that detects architecture version and
chooses an appropriate memcpy implementation does not consider
ARMv8-a.

This patch adds configury logic to detect ARMv8-a along with the
associated changes in Makefile.am and memcpy.

8 years agoMove duplicated documentation rules to Makefile.shared
Jeff Johnston [Mon, 2 Nov 2015 23:00:28 +0000 (18:00 -0500)]
Move duplicated documentation rules to Makefile.shared

- Also, harmonize libm to use CHEWOUT_FILES like libc, rather than chobj.
  Update documentation appropriately.

        * HOWTO: Update.
        * Makefile.shared: Move documentation rules to here...
        * libc/argz/Makefile.am: ... from here ...
        * libc/ctype/Makefile.am: ... and here.
        * libc/errno/Makefile.am: Ditto.
        * libc/iconv/Makefile.am: Ditto.
        * libc/iconv/ccs/Makefile.am : Ditto.
        * libc/iconv/ces/Makefile.am: Ditto.
        * libc/iconv/lib/Makefile.am: Ditto.
        * libc/locale/Makefile.am: Ditto.
        * libc/misc/Makefile.am: Ditto.
        * libc/posix/Makefile.am: Ditto.
        * libc/reent/Makefile.am: Ditto.
        * libc/search/Makefile.am: Ditto.
        * libc/stdio/Makefile.am: Ditto.
        * libc/stdio64/Makefile.am: Ditto.
        * libc/stdlib/Makefile.am : Ditto.
        * libc/string/Makefile.am: Ditto.
        * libc/syscalls/Makefile.am: Ditto.
        * libc/time/Makefile.am : Ditto.
        * libc/unix/Makefile.am: Ditto.
        * libc/xdr/Makefile.am: Ditto.
        * libm/common/Makefile.am: Ditto.
        * libm/complex/Makefile.am: Ditto.
        * libm/math/Makefile.am: Ditto.
        * libm/mathfp/Makefile.am: Ditto.

8 years agoConsistently use an em-dash in math functions.
Jeff Johnston [Mon, 2 Nov 2015 21:38:30 +0000 (16:38 -0500)]
Consistently use an em-dash in math functions.

- also move previous ChangeLog entry to newlib instead of top-level

        * libc/time/wcsftime.c: Consistently use an em-dash in FUNCTION
summary.
        * libm/common/isgreater.c: Ditto.
        * libm/common/s_fdim.c: Ditto.
        * libm/common/s_fma.c: Ditto.
        * libm/common/s_fmax.c: Ditto.
        * libm/common/s_fmin.c: Ditto.
        * libm/common/s_infinity.c: Ditto.
        * libm/common/s_isnan.c: Ditto.
        * libm/common/s_log2.c: Ditto.
        * libm/common/s_logb.c: Ditto.
        * libm/common/s_lrint.c: Ditto.
        * libm/common/s_lround.c: Ditto.
        * libm/common/s_nearbyint.c: Ditto.
        * libm/common/s_remquo.c: Ditto.
        * libm/common/s_rint.c: Ditto.
        * libm/common/s_round.c: Ditto.
        * libm/common/s_scalbn.c: Ditto.
        * libm/common/s_signbit.c: Ditto.
        * libm/common/s_trunc.c: Ditto.
        * libm/math/w_exp2.c: Ditto.
        * libm/math/w_gamma.c: Ditto.

8 years agoAdd missing semicolons to prototypes.
Jeff Johnston [Mon, 2 Nov 2015 21:34:49 +0000 (16:34 -0500)]
Add missing semicolons to prototypes.

        * libc/stdio/fseek.c: Add missing semicolons to prototypes in
        SYNOPSIS.
        * libc/stdio/fwide.c: Ditto.
        * libc/stdio64/fseeko64.c: Ditto.
        * libc/string/strtok.c: Ditto.
        * libc/string/wcstok.c: Ditto.
        * libm/math/w_cosh.c: Ditto.
        * libm/math/w_fmod.c:  Ditto.
        * libm/mathfp/s_cosh.c: Ditto.
        * libm/mathfp/s_fmod.c: Ditto.

8 years ago Improve performance of MIPS memcpy.
Steve Ellcey [Mon, 2 Nov 2015 21:30:19 +0000 (13:30 -0800)]
Improve performance of MIPS memcpy.

* libc/machine/mips/memcpy.S (memcpy): Add word copies for small
aligned data.

8 years agoDefine MAX_IPOPTLEN
Corinna Vinschen [Mon, 2 Nov 2015 14:42:30 +0000 (15:42 +0100)]
Define MAX_IPOPTLEN

* include/netinet/ip.h (MAX_IPOPTLEN): Define.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoFix incorrect implementation to clear per-thread pending signals
Corinna Vinschen [Mon, 2 Nov 2015 12:53:25 +0000 (13:53 +0100)]
Fix incorrect implementation to clear per-thread pending signals

* sigproc.cc (class pending_signals): Drop sigproc_init friendship.
(pending_signals::clear): Fix implementation to avoid subsequent
endless loop in wait_sig.  Improve comment.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoAdd support for Parallels Desktop FS (prlfs)
Corinna Vinschen [Mon, 2 Nov 2015 11:08:25 +0000 (12:08 +0100)]
Add support for Parallels Desktop FS (prlfs)

* mount.h (enum fs_info_type): Add prlfs (Parallels Desktop FS).
(class fs_info): Add has_broken_fnoi flag.  Implement prlfs FS flag.
* mount.cc (fs_info::update): Handle PrlFS.  Fill new has_broken_fnoi
flag with life.
(fs_names): Add prlfs.
* globals.cc (ro_u_prlfs): Define.
* path.h (path_conv::has_broken_fnoi): New method.
* path.cc (symlink_info::check): Call file_get_fnoi utilizing new
has_broken_fnoi filesystem flag.
* fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Ditto.

* new-features.xml (ov-new2.3): Document Parallels Desktop FS support.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoAdd missing ChangeLog entry for ce8159d5
Corinna Vinschen [Mon, 2 Nov 2015 09:24:14 +0000 (10:24 +0100)]
Add missing ChangeLog entry for ce8159d5

8 years agoInclude <sched.h> in <pthread.h>
Sebastian Huber [Fri, 30 Oct 2015 14:23:20 +0000 (15:23 +0100)]
Include <sched.h> in <pthread.h>

This is mandated by POSIX.

2015-10-30  Sebastian Huber  <sebastian.huber@embedded-brains.de>

libc/include/pthread.h: Include <sched.h> instead of
<sys/sched.h>.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoWorkaround bug in LocaleNameToLCID on Windows 10
Corinna Vinschen [Fri, 30 Oct 2015 19:13:26 +0000 (20:13 +0100)]
Workaround bug in LocaleNameToLCID on Windows 10

* nlsfuncs.cc (__get_lcid_from_locale): Handle LocaleNameToLCID
returning LOCALE_CUSTOM_UNSPECIFIED instead of failing in case of
an unsupported locale on Windows 10.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoAvoid double unlock of TLS mutex
Corinna Vinschen [Fri, 30 Oct 2015 16:21:30 +0000 (17:21 +0100)]
Avoid double unlock of TLS mutex

* exceptions.cc (sigpacket::process): Avoid potentially double unlocking
the TLS mutex.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoFix sigwait and pthread_kill return values in case of error
Corinna Vinschen [Fri, 30 Oct 2015 15:05:43 +0000 (16:05 +0100)]
Fix sigwait and pthread_kill return values in case of error

* signal.cc (sigwait): Fix return value to reflect errno in case of
error according to POSIX.  Never return EINTR.
* thread.cc (pthread_kill): Return errno if sig_send failed.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoCheck for correct funtion entry address in munge_threadfunc
Qian Hong [Thu, 29 Oct 2015 08:17:46 +0000 (09:17 +0100)]
Check for correct funtion entry address in munge_threadfunc

* init.cc (munge_threadfunc): Check that we're actually replacing
the correct original function address on the stack.
* ntdll.h (enum _THREADINFOCLASS): Add ThreadQuerySetWin32StartAddress.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoRemove spurious execute permissions from some Cygwin source and text files
Jon Turney [Tue, 27 Oct 2015 13:45:08 +0000 (13:45 +0000)]
Remove spurious execute permissions from some Cygwin source and text files

2015-08-21  Jon Turney  <jon.turney@dronecode.org.uk>

* cygwin-cxx.h: Remove execute permissions.
* fenv.cc: Ditto.
* how-startup-shutdown-works.txt: Ditto.
* include/arpa/nameser.h: Ditto.
* include/arpa/nameser_compat.h: Ditto.
* include/fenv.h: Ditto.
* include/resolv.h: Ditto.
* libstdcxx_wrapper.cc: Ditto.

2015-10-27  Jon Turney  <jon.turney@dronecode.org.uk>

* winsup.api/signal-into-win32-api.c: Remove execute permissions.

Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
8 years agostrftime: Add support for %s (seconds since epoch)
Brian Inglis [Tue, 27 Oct 2015 08:41:22 +0000 (09:41 +0100)]
strftime: Add support for %s (seconds since epoch)

* libc/time/strftime.c (__strftime): add support for %s (seconds from
Unix epoch).  Fix whitespaces.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoClear pending signals targeting exiting thread newlib-snapshot-20151023
Corinna Vinschen [Fri, 23 Oct 2015 12:30:40 +0000 (14:30 +0200)]
Clear pending signals targeting exiting thread

* cygtls.cc (_cygtls::remove): Call remove_pending_sigs.
* cygtls.h (_cygtls::remove_pending_sigs): Declare.
* sigproc.cc (pending_signals::clear): Define new method taking a
_cygtls pointer argument.  Drop pending signals for that thread.
(_cygtls::remove_pending_sigs): Call pending_signals::clear for this
thread.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agowinsup/utils: add CPU cache variables to getconf(1)
Yaakov Selkowitz [Thu, 22 Oct 2015 17:33:37 +0000 (12:33 -0500)]
winsup/utils: add CPU cache variables to getconf(1)

* getconf.c (conf_table): Add LEVEL*_CACHE_* variables.

Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
8 years agoExport aligned_alloc, at_quick_exit, quick_exit.
Corinna Vinschen [Thu, 22 Oct 2015 14:21:17 +0000 (16:21 +0200)]
Export aligned_alloc, at_quick_exit, quick_exit.

* common.din (aligned_alloc): Export.
(at_quick_exit): Export.
(quick_exit): Export.

* posix.xml (std-iso): New section.
(std-deprec): Rearrange title text.
* new-features.xml (ov-new2.3): Document aligned_alloc, at_quick_exit,

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoAvoid SEGV when handling SIDs with 0 subauthorities
Corinna Vinschen [Thu, 22 Oct 2015 13:38:42 +0000 (15:38 +0200)]
Avoid SEGV when handling SIDs with 0 subauthorities

* sec_helper.cc (cygsid::get_sid): Don't reject SIDs with missing
subauthorities.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoAdd release message for previous Cygwin patch
Corinna Vinschen [Thu, 22 Oct 2015 13:35:46 +0000 (15:35 +0200)]
Add release message for previous Cygwin patch

8 years agoFix length returned from sys_cp_wcstombs in case nwc > # of wchars
Corinna Vinschen [Thu, 22 Oct 2015 12:22:07 +0000 (14:22 +0200)]
Fix length returned from sys_cp_wcstombs in case nwc > # of wchars

* strfuncs.cc (sys_cp_wcstombs): Always return number of multibytes
without trailing NUL as the documentation implies.  Throughout Cygwin,
fix usage to align to this pattern.
* fhandler_process.cc (format_process_winexename): Drop trailing NUL
and LF from output.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoFix memory leak in pthread_getattr_np
Corinna Vinschen [Wed, 21 Oct 2015 10:46:32 +0000 (12:46 +0200)]
Fix memory leak in pthread_getattr_np

* thread.cc (pthread_getattr_np): Fix memory leak, remove usage of
malloc for small local buffer.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoFix EIO error accessing certain (OS X SMB?) drives
Corinna Vinschen [Wed, 21 Oct 2015 10:01:11 +0000 (12:01 +0200)]
Fix EIO error accessing certain (OS X SMB?) drives

* path.cc (symlink_info::check_reparse_point): Don't generate an EIO
error if NtFsControlFile returns STATUS_NOT_A_REPARSE_POINT.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years ago* winsup/doc/faq-using.xml (faq.using.same-with-permissions): New entry.
Ken Brown [Tue, 6 Oct 2015 20:31:05 +0000 (16:31 -0400)]
* winsup/doc/faq-using.xml (faq.using.same-with-permissions): New entry.

8 years ago* rl78/crt0.S (_start): Fixed code that clears .bss
DJ Delorie [Wed, 21 Oct 2015 01:37:06 +0000 (21:37 -0400)]
* rl78/crt0.S (_start): Fixed code that clears .bss

8 years agoFix compiler errors/warnings when compiling with -O3
Corinna Vinschen [Tue, 20 Oct 2015 10:33:13 +0000 (12:33 +0200)]
Fix compiler errors/warnings when compiling with -O3

* fhandler_socket.cc (fhandler_socket::wait_for_events): Fix compiler
warning in -O3 case.
(fhandler_socket::connect): Ditto.
* regex/regcomp.c (singleton): Ditto.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoExtend _intsup.h to support 16-bit and 20-bit pointers.
Nick Clifton [Mon, 19 Oct 2015 13:48:30 +0000 (14:48 +0100)]
Extend _intsup.h to support 16-bit and 20-bit pointers.

* libc/include/sys/_intsup.h: Add support for 16-bit and 20-bit
pointers.

8 years agoC11 aligned_alloc() implementation
Sebastian Huber [Wed, 14 Oct 2015 05:39:37 +0000 (07:39 +0200)]
C11 aligned_alloc() implementation

aligned_alloc() is implemented in terms of posix_memalign() which is
only declared in <stdlib.h> but not defined in Newlib in general.  At
least Linux and RTEMS implement this function.

newlib/ChangeLog
2015-10-14  Sebastian Huber  <sebastian.huber@embedded-brains.de>

* libc/stdlib/Makefile.am (GENERAL_SOURCES): Add
alloc_aligned.c.c.
* libc/stdlib/Makefile.in: Regenerate.
* libc/stdlib/aligned_alloc.c: New.

8 years agoC11 aligned_alloc() support for <stdlib.h>
Sebastian Huber [Wed, 14 Oct 2015 05:39:36 +0000 (07:39 +0200)]
C11 aligned_alloc() support for <stdlib.h>

newlib/ChangeLog
2015-10-14  Sebastian Huber  <sebastian.huber@embedded-brains.de>

* libc/include/stdlib.h (alloc_aligned): Declare.

8 years agoC11 quick_exit() support for <stdlib.h>
Sebastian Huber [Wed, 14 Oct 2015 05:39:35 +0000 (07:39 +0200)]
C11 quick_exit() support for <stdlib.h>

Import some <stdlib.h> function declarations from latest FreeBSD and
implement them.  I am not sure if we should call the global reent
cleanup in quick_exit() similar to exit().

newlib/ChangeLog
2015-10-14  Sebastian Huber  <sebastian.huber@embedded-brains.de>

* libc/include/stdlib.h (at_quick_exit): Declare.
(quick_exit): Likewise.
* libc/stdlib/Makefile.am (GENERAL_SOURCES): Add
quick_exit.c.
* libc/stdlib/Makefile.in: Regenerate.
* libc/stdlib/quick_exit.c: New.

8 years agoImport <threads.h> from latest FreeBSD.
Jeff Johnston [Tue, 13 Oct 2015 21:52:34 +0000 (17:52 -0400)]
Import <threads.h> from latest FreeBSD.

- Move types and defines to
  <machine/_threads.h> so that it can be customized per target.

* libc/include/threads.h: New.
* libc/sys/rtems/include/machine/_threads.h: Likewise.

8 years agoSynchronize with FreeBSD.
Jeff Johnston [Tue, 13 Oct 2015 21:50:30 +0000 (17:50 -0400)]
Synchronize with FreeBSD.

        * libc/include/sys/cdefs.h: Synchronize with latest FreeBSD
        version.

8 years agoAdd FreeBSD style changes to sys/cdefs.h
Jeff Johnston [Tue, 13 Oct 2015 21:46:47 +0000 (17:46 -0400)]
Add FreeBSD style changes to sys/cdefs.h

* libc/include/sys/cdefs.h: Add style changes of latest FreeBSD
        version.

8 years agoDefine setjmp buffer length for IA64.
Nick Clifton [Thu, 8 Oct 2015 14:46:34 +0000 (15:46 +0100)]
Define setjmp buffer length for IA64.

8 years agoAdd support for persistent data to the MSP430 linker scripts.
Nick Clifton [Tue, 6 Oct 2015 16:33:16 +0000 (17:33 +0100)]
Add support for persistent data to the MSP430 linker scripts.

* msp430/msp430-sim.ld: Add .persistent section.
Tidy up section layout.
Start RAM above hardware multiply registers.
* msp430/msp430xl-sim.ld: Likewise.

8 years agoMinimize newlib code size for ft32 newlib-snapshot-20150924
Jeff Johnston [Tue, 22 Sep 2015 22:11:01 +0000 (18:11 -0400)]
Minimize newlib code size for ft32

        * configure.host (ft32): minimise newlib code size

8 years agoconfig.{guess,sub}: sync with upstream
Mike Frysinger [Tue, 22 Sep 2015 13:25:18 +0000 (09:25 -0400)]
config.{guess,sub}: sync with upstream

8 years agoCygwin 2.3.0: Add missing release message
Corinna Vinschen [Tue, 8 Sep 2015 20:53:54 +0000 (22:53 +0200)]
Cygwin 2.3.0: Add missing release message

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoflock.cc: Fix stack allocation from callee used in caller
Corinna Vinschen [Tue, 8 Sep 2015 08:57:54 +0000 (10:57 +0200)]
flock.cc: Fix stack allocation from callee used in caller

* flock.cc (lockf_t::create_lock_obj_attr): Add buffer parameter.
Call _everyone_sd with buffer argument from caller rather than
everyone_sd with locally allocated stack buffer.
(lockf_t::create_lock_obj): Call create_lock_obj_attr only once
outside the loop and with additional buffer argument.
(lockf_t::open_lock_obj): Call create_lock_obj_attr with additional
buffer argument.

8 years agofaq-using.xml: Replace makewhatis with mandb
Corinna Vinschen [Mon, 7 Sep 2015 11:55:21 +0000 (13:55 +0200)]
faq-using.xml: Replace makewhatis with mandb

* faq-using.xml (faq.using.man): Replace makewhatis with mandb.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoAdd FTDI license for newlib and libgloss.
Jeff Johnston [Fri, 4 Sep 2015 18:41:45 +0000 (14:41 -0400)]
Add FTDI license for newlib and libgloss.

8 years agoAdd support for ft32 to newlib.
Jeff Johnston [Fri, 4 Sep 2015 17:17:53 +0000 (13:17 -0400)]
Add support for ft32 to newlib.

8 years agoAdd support for FT32 platform.
Jeff Johnston [Fri, 4 Sep 2015 17:07:00 +0000 (13:07 -0400)]
Add support for FT32 platform.

8 years agolibc/machine/cris/sys/signal.h (kill): Declare.
Hans-Peter Nilsson [Wed, 2 Sep 2015 23:59:43 +0000 (01:59 +0200)]
libc/machine/cris/sys/signal.h (kill): Declare.

8 years agocygcheck.cc: Fix missing commas in products array
Corinna Vinschen [Sun, 30 Aug 2015 19:46:58 +0000 (21:46 +0200)]
cygcheck.cc: Fix missing commas in products array

* cygcheck.cc (dump_sysinfo): Fix missing commas in products array.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agocygcheck.cc: Fix debugger problem
Corinna Vinschen [Sun, 30 Aug 2015 19:35:23 +0000 (21:35 +0200)]
cygcheck.cc: Fix debugger problem

        * cygcheck.cc (load_cygwin): Only unload cygwin DLL if not running
        under a debugger.  Explain why.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agocygcheck.cc: Handle W10/2016 sysinfo
Corinna Vinschen [Sun, 30 Aug 2015 19:34:24 +0000 (21:34 +0200)]
cygcheck.cc: Handle W10/2016 sysinfo

        * cygcheck.cc (dump_sysinfo): Correctly handle Windows 10/Server 2016.
        Add missing product types.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agocygcheck.cc: Fix downlevel DLL handling
Corinna Vinschen [Sun, 30 Aug 2015 19:32:56 +0000 (21:32 +0200)]
cygcheck.cc: Fix downlevel DLL handling

        * cygcheck.cc (track_down): Skip error output for "api-ms-win-"
        downlevel DLLs.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agosysconf.cc: Fix compiler warning.
Corinna Vinschen [Sat, 29 Aug 2015 07:32:00 +0000 (09:32 +0200)]
sysconf.cc: Fix compiler warning.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoAllow sysconf to return CPU cache information
Corinna Vinschen [Sat, 29 Aug 2015 07:16:47 +0000 (09:16 +0200)]
Allow sysconf to return CPU cache information

        * include/sys/unistd.h (_SC_LEVEL*): Add cache-related variables as
        on Linux.

        * fhandler_proc.cc (format_proc_cpuinfo): Fetch cache information
        from new cache functions in sysconf.cc, get_cpu_cache_intel and
        get_cpu_cache_amd.
        * sysconf.cc (__nt_query_system): New local helper.
        (get_nproc_values): Utilize __nt_query_system on pre-Windows 7 systems.
        Use GetLogicalProcessorInformationEx otherwise to handle more than
        64 CPUs.  Only handle _SC_NPROCESSORS_CONF and _SC_NPROCESSORS_ONLN.
        (get_phys_pages): New helper to handle _SC_PHYS_PAGES.
        (cpuid2_cache_descriptor): New array to map Intel CPUID 2 descriptor
        values to cache type, cache size, associativity and linesize.
        (cpuid2_cache_desc_compar): Comparision function for bsearch over
        cpuid2_cache_descriptor.
        (get_cpu_cache_intel_cpuid2): New function to fetch cache info from
        Intel CPUID 2.
        (get_cpu_cache_intel_cpuid4): Ditto from Intel CPUID 4.
        (get_cpu_cache_intel): New function as CPU-specific entry point.
        (assoc): New array to map associativity values from AMD CPUID
        0x80000006.
        (get_cpu_cache_amd): New function to fetch cache info from AMD CPUIDs
        0x80000005 and 0x80000006.
        (get_cpu_cache): New function to fetch cache info.
        (sca): Call get_phys_pages if _SC_PHYS_PAGES is requested.  Call
        get_cpu_cache for new _SC_* cache requests.
        (SC_MAX): Set to _SC_LEVEL4_CACHE_LINESIZE.
        (get_phys_pages(void)): Call get_phys_pages(int).
        * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.

        * new-features.xml (ov-new2.3): Document sysconf cache addition.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoImplement POSIX_MADV_WILLNEED/POSIX_MADV_DONTNEED for newer OSes
Corinna Vinschen [Thu, 27 Aug 2015 11:34:10 +0000 (13:34 +0200)]
Implement POSIX_MADV_WILLNEED/POSIX_MADV_DONTNEED for newer OSes

        * autoload.cc (DiscardVirtualMemory): Import.
        (PrefetchVirtualMemory): Import.
        * mmap.cc (posix_madvise): Actually implement POSIX_MADV_WILLNEED
        utilizing PrefetchVirtualMemory and POSIX_MADV_DONTNEED utilizing
        DiscardVirtualMemory on systems supporting them.
        * wincap.h (wincaps::has_broken_prefetchvm): New element.
        * wincap.cc: Implement above element throughout.
        (wincapc::init): Make sure has_broken_prefetchvm is only true on
        W10 under WOW64.
        * include/cygwin/version.h (CYGWIN_VERSION_DLL_MAJOR): Bump to 2003.
        (CYGWIN_VERSION_API_MINOR): Reset to 0.

        * new-features.xml (ov-new2.3): New section, document posix_madvise
        POSIX_MADV_WILLNEED/POSIX_MADV_DONTNEED change.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agostrlen-armv7.S: Fix preprocessor check
Corinna Vinschen [Thu, 27 Aug 2015 10:55:22 +0000 (12:55 +0200)]
strlen-armv7.S: Fix preprocessor check

Hi!

I've got the situation, that the function strlen() occurs twice in libc.a
(building newlib for ARM-V7a and Size-Optimized).

In newlib/libc/machine/arm/strlen.c there are the pre-processor stetements ...
#if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED) || \
  (defined (__thumb__) && !defined (__thumb2__))
/*...*/
#else

#if !(defined(_ISA_ARM_7) || defined(__ARM_ARCH_6T2__))
/*...*/
#endif

and in newlib/libc/machine/arm/strlen-armv7.S the "exclude" begins with

/* NOTE: This ifdef MUST match the ones in arm/strlen.c
   We fallback to the one in arm/strlen.c for size optimised or
   for older architectures. */
#if defined(_ISA_ARM_7) || defined(__ARM_ARCH_6T2__) && \
    !(defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED) || \
      (defined (__thumb__) && !defined (__thumb2__)))

But this is not completely contrary to arm/strlen.c (see above)!

To fix the logical statement in arm/strlen-armv7.S there are parentheses needed

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoFix for pri and scn formats
Andre Simoes Dias Vieira [Thu, 27 Aug 2015 10:50:25 +0000 (11:50 +0100)]
Fix for pri and scn formats

8 years agofhandler_proc.cc: Only request group relation information
Corinna Vinschen [Wed, 26 Aug 2015 16:39:53 +0000 (18:39 +0200)]
fhandler_proc.cc: Only request group relation information

        * fhandler_proc.cc (format_proc_cpuinfo): Only fetch group relations,
        we don't need anything else.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agowinsup.h: Claim Windows 10 support
Corinna Vinschen [Tue, 25 Aug 2015 20:23:01 +0000 (22:23 +0200)]
winsup.h: Claim Windows 10 support

        * winsup.h (_WIN32_WINNT): Set to 0x0a00 for Windows 10.
        (WINVER): Ditto.  Remove outdated comment.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoautoload.cc: Drop using full paths for system DLLs
Corinna Vinschen [Tue, 25 Aug 2015 20:17:03 +0000 (22:17 +0200)]
autoload.cc: Drop using full paths for system DLLs

System DLLs are always first in the DLL search order so
http://www.microsoft.com/technet/security/advisory/2269637.mspx
doesn't apply for them.

        * autoload.cc (std_dll_init): Revert using full paths to system DLLs.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoautload.cc: Avoid clobbering return address in noload on i686
Corinna Vinschen [Tue, 25 Aug 2015 20:15:22 +0000 (22:15 +0200)]
autload.cc: Avoid clobbering return address in noload on i686

This fixes a long-standing problem when GetProcAddress fails
to load a function.  The noload code calls SetLastError on
i686 without saving the edx register.  Starting with Windows 7,
SetLastError apparently uses $edx and the register is set to
0x00000000 on return.  So the subsequent `jmp *$edx' in noload
supposed to return to the caller, actually jumps to address NULL,
which results in a SEGV.

        * autoload.cc (noload): i686 only: Save and restore $edx when calling
        SetLastError to avoid clobbering return address stating with Windows 7.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agommap.cc: Fix some comments
Corinna Vinschen [Tue, 25 Aug 2015 20:02:35 +0000 (22:02 +0200)]
mmap.cc: Fix some comments

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoUpdated copyright notice
Andre Vieira [Fri, 21 Aug 2015 08:24:39 +0000 (09:24 +0100)]
Updated copyright notice

Update the ARM copyright notice to include 2015.

2015-08-20  Andre Vieira  <andre.simoesdiasvieira@arm.com>
         * COPYING.NEWLIB: Updated ARM's copyright notice.

From 913be92b12851bc6285b8ab77d6878fda613f77c Mon Sep 17 00:00:00 2001
From: Andre Simoes Dias Vieira <andsim01@arm.com>
Date: Thu, 20 Aug 2015 14:16:42 +0100
Subject: [PATCH] Updated general Copyright notice

8 years agoAlways declare "kill" in include/sys/signal.h
James Greenhalgh [Tue, 25 Aug 2015 13:31:11 +0000 (14:31 +0100)]
Always declare "kill" in include/sys/signal.h

Hi,

As I mentioned recently [1], newlib is providing a "kill" symbol to link
against, without declaring "kill" in signal.h. This is confusing for the
libgfortran build, which tries to link against kill (which succeeds), then
tries to use it (which triggers -Werror=implicit-function-declaration).

This patch implements my suggestion in that thread - making the declaration
of 'kill' in libc/include/sys/signal.h unconditional.

I've tested this by building a modified libgfortran on AArch64/ARM to see
that the Werror goes away, and the libgfortran build succeeds.

Is something like this OK for newlib? If so, can someone please commit
it on my behalf, as I have no commit access here.

Otherwise, what is your preferred direction for me to take this patch?

Thanks,
James

8 years agoSigproc.cc: Fix copyright. newlib-snapshot-20150824
Corinna Vinschen [Mon, 24 Aug 2015 17:09:16 +0000 (19:09 +0200)]
Sigproc.cc: Fix copyright.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
8 years agoFix hang stracing forking processes but not following child
Corinna Vinschen [Mon, 24 Aug 2015 16:37:53 +0000 (18:37 +0200)]
Fix hang stracing forking processes but not following child

        * ntdll.h (PROCESSINFOCLASS): Define ProcessDebugFlags.
        * sigproc.cc (child_info::child_info): Only propagate _CI_STRACED to
        child if strace is actually tracing child processes.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This page took 0.07579 seconds and 5 git commands to generate.