summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Importing imaxdiv inttypes method from FreeBSD.Aditya Upadhyay2017-07-282-0/+49
|
* Importing imaxabs inttypes method from FreeBSD.Aditya Upadhyay2017-07-282-0/+37
|
* cygwin: Set __STDC_ISO_10646__ to Unicode 5.2 valueCorinna Vinschen2017-07-261-4/+3
| | | | | | Now that XP is not supported anymore we can freely do that. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* cygwin: add release notes for reparse point patchesCorinna Vinschen2017-07-241-0/+5
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* cygwin: unify reparse point checking code into single functionCorinna Vinschen2017-07-243-89/+70
| | | | | | | | | | | | | | | | | So far we had two functions checking the content of a reparse point, readdir_check_reparse_point in fhandler_disk_file.cc for the sake of readdir, and symlink_info::check_reparse_point for the sake of generic path checking. * Rename check_reparse_point_target helper to check_reparse_point_string and convert to static function. * Create new check_reparse_point_target helper containing the core reparse point checking code * Just call check_reparse_point_target from readdir_check_reparse_point and symlink_info::check_reparse_point and only perform the unique task in those functions. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* cygwin: fix formatting in check_reparse_point_targetCorinna Vinschen2017-07-241-3/+3
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* cygwin: Fix resource leak in readdir reparse point handlingCorinna Vinschen2017-07-241-1/+1
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* [arm] Fix strcpy for unified syntax on ARMv4t thumb.Richard Earnshaw2017-07-211-1/+1
| | | | | ARMv4t does not support mov between two low registers. Now we use unified syntax mov instructions need converting to movs.
* Previous patch to support nosys.specs accidentally broke validation specs ↵Tamar Christina2017-07-211-1/+1
| | | | | | | | | | | | because ARM_RDI_MONITOR was never passed to the build rule for crt0. This fixed the compile for nosys and validation specs but nosys won't run because of existing limitations to aarch64's syscalls.c, it requires semihosting to get commandline arguments and heap info without having a fallback method as ARM does. Signed-off-by: Tamar Christina <tamar.christina@arm.com>
* MSP430: Define __BUFSIZ__ as 256 to prevent default of 1024 being usednewlib-snapshot-20170720Jozef Lawrynowicz2017-07-201-0/+1
|
* arm: Update strcpy.c to use UAL syntax.Ian Tessier via newlib2017-07-201-6/+7
| | | | | | | | | | | | | With this change the arm platform can now be fully compiled with Clang. Tested by comparing the output with GCC 4.8.2, and Clang 4.0, using a variety of arches, big/little endianness, and arm/thumb mode to verify the generated assembly output matches between GCC vs Clang with UAL, and also GCC with UAL vs GCC with non-UAL, for all preprocessor code blocks. The only difference found is an extra nop at the end of the function when compiled with GCC using armv7-a/thumb/little-endian/-O2 compared to Clang. The nop is not emitted when compiled in big-endian mode.
* cygwin: add fflush fix to release notesCorinna Vinschen2017-07-191-0/+13
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* cygwin: Bump DLL version to 2.8.3Corinna Vinschen2017-07-191-1/+1
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* cygwin: Use errno instead of _impure_ptr->_errnoCorinna Vinschen2017-07-191-2/+1
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Revert "errno: Stop using _impure_ptr->_errno completely"Corinna Vinschen2017-07-193-5/+6
| | | | | | | | This reverts commit 44b1746a41921533d27aca414a9188314cb725b6. Bad idea. _impure_ptr->_errno is used by newlib Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Support building in a different directory than the default output directory ↵Tamar Christina2017-07-171-1/+1
| | | | | | by preserving DESTDIR value in recursive calls. Signed-off-by: Tamar Christina <tamar.christina@arm.com>
* Fix link when nosys.specs is used to linkTamar Christina2017-07-141-0/+2
| | | | | | | | This patch fixes the issue where nosys.specs is used to link. e.g. The use of crt0 without any support for semihosting requested. The AArch64 crt0 was missing an #ifdef for the initialise_monitor_handles which was causing the link to fail. Sorry for missing this before.
* cygwin: 2.8.2: add missing release message textcygwin-2_8_2-releaseCorinna Vinschen2017-07-121-0/+6
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* cygwin: document signal.h fixesYaakov Selkowitz2017-07-121-1/+4
| | | | Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
* Synchronize RTEMS <sys/bitset.h> with FreeBSDSebastian Huber2017-07-121-5/+5
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* cygwin: export fls, flsl, flsllCorinna Vinschen2017-07-114-1/+10
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: fix guard on struct siginfo_tYaakov Selkowitz2017-07-101-2/+4
| | | | | | | Add line breaks to make it clearer that the struct packing applies to more than one struct. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
* Add myself to OS Port Maintainers (RTEMS)Sebastian Huber2017-07-101-0/+1
|
* Synchronize RTEMS <sys/bitset.h> with FreeBSDSebastian Huber2017-07-101-1/+16
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Rename __in and __out in headers to avoid collision with Windows APIsDavid Macek2017-07-072-10/+10
| | | | | * string.h: Local variables in expansion of strdupa and strndupa * sys/wait.h: Fields in anonymous union in expansion of __wait_status_to_int
* fix URL shortcuts launch with cygstart, create shortcuts directly in ↵Brian Inglis2017-07-061-7/+5
| | | | SM/Programs/Cygwin
* Replace the perl character classes with POSIX ones to fix the build when sed ↵Tamar Christina2017-07-061-4/+4
| | | | | | is a BSD sed instead of GNU. Signed-off-by: Tamar Christina <tamar.christina@arm.com>
* fix cygwin-doc postinstall/preremove no SMPrograms/Cygwin dirBrian Inglis2017-07-062-17/+63
|
* Add support for Semihosting v2 support for AArch64 in libgloss.Tamar Christina2017-07-054-47/+186
| | | | | | | | | | Semihosting v2 changes are documented here: https://developer.arm.com/docs/100863/latest/ The biggest change is the addition of an extensions mechanism to add more extensions in the future. Signed-off-by: Tamar Christina <tamar.christina@arm.com>
* Add support for Semihosting v2 support for ARM in libgloss.Tamar Christina2017-07-053-65/+231
| | | | | | | | | | Semihosting v2 changes are documented here: https://developer.arm.com/docs/100863/latest/ The biggest change is the addition of an extensions mechanism to add more extensions in the future. Signed-off-by: Tamar Christina <tamar.christina@arm.com>
* Add the needed build system changes in order to compile and create the new ↵Tamar Christina2017-07-059-17/+147
| | | | | | | | | | | | | | | | | | libraries for Semihosting v2 for ARM. This uses the new recursive build target in multi-build.in The new spec files are: For AArch32/ARM (m for mixed mode): - rdimon-v2m.specs - aprofile-validation-v2m.specs - aprofile-ve-v2m.specs These spec files will be using the new libraries generated by multi-build.in. Signed-off-by: Tamar Christina <tamar.christina@arm.com>
* Adds the needed build system changes in order to compile and create the new ↵Tamar Christina2017-07-054-16/+49
| | | | | | | | | | | libraries for Semihosting v2. This uses the new recursive build target in multi-build.in For AArch64 no new spec files are needed but the makefiles are modified to keep them in sync with the ARM ones. Signed-off-by: Tamar Christina <tamar.christina@arm.com>
* Create a recursive make target that is modeled after the existing multilib ↵Tamar Christina2017-07-051-0/+61
| | | | | | | | | makefile config-ml.in which can be used to build the same files within a target multiple ways. e.g. from the same source file produce multiple libs by varying the options passed to the compiler. Signed-off-by: Tamar Christina <tamar.christina@arm.com>
* Fixed warnings for some long double complex methodsAditya Upadhyay2017-07-051-5/+5
|
* Add ffsl(), ffsll(), fls(), flsl(), flsll()Sebastian Huber2017-07-059-47/+240
| | | | | | | Use compiler builtin for ffs(). Remove duplicate implementation from Cygwin. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Synchronize <strings.h> with latest FreeBSDSebastian Huber2017-07-052-59/+62
| | | | | | | | | | Include <strings.h> in <string.h> if __BSD_VISIBLE like on FreeBSD. Remove redundant declarations from <string.h>. Make ffsl(), ffsll(), strncasecmp(), strcasecmp_l(), and strncasecmp_l() visible via __BSD_VISIBLE instead of __GNU_VISIBLE. Add fls(), flsl(), and flsll() to <strings.h> if __BSD_VISIBLE. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Implement bzero() via memset()Sebastian Huber2017-07-051-8/+5
| | | | | | | Use memset() to implement bzero() to profit from machine-specific memset() optimizations. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Cygwin: fix signal.h with _POSIX_C_SOURCE=1Yaakov Selkowitz2017-07-041-0/+2
| | | | | | | | struct sigaction is POSIX.1-1990 but siginfo_t, which is used by its sa_sigaction member, is POSIX.1b-1993. Therefore it needs to be guarded as well, and as part of a union, the struct size is protected. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
* add scandirat patch to release notesCorinna Vinschen2017-07-041-0/+13
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* cygwin: scandirat: fix path given to scandirCorinna Vinschen2017-07-041-1/+1
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Bump DLL minor versionCorinna Vinschen2017-07-041-1/+1
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Feature test macros overhaul: unistd.h, part 2cygwin-2_8_1-releaseYaakov Selkowitz2017-06-301-4/+17
| | | | | | | This fixes commit f70aad3de4d845f8b720010a2f8817db842d81e8 as well as some other functions which were never properly guarded. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
* Add --enable-newlib-global-stdio-streamsSebastian Huber2017-06-305-2/+52
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Enable _REENT_GLOBAL_STDIO_STREAMS for RTEMSSebastian Huber2017-06-302-1/+2
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Introduce _REENT_GLOBAL_STDIO_STREAMSSebastian Huber2017-06-302-6/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In Newlib, the stdio streams are defined to thread-specific pointers _reent::_stdin, _reent::_stdout and _reent::_stderr. In case _REENT_SMALL is not defined, then these pointers are initialized via _REENT_INIT_PTR() or _REENT_INIT_PTR_ZEROED() to thread-specific FILE objects provided via _reent::__sf[3]. There are two problems with this (at least in case of RTEMS). (1) The thread-specific FILE objects are closed by _reclaim_reent(). This leads to problems with language run-time libraries that provide wrappers to the C/POSIX stdio streams (e.g. C++ and Ada), since they use the thread-specific FILE objects of the initialization thread. In case the initialization thread is deleted, then they use freed memory. (2) Since thread-specific FILE objects are used with a common output device via file descriptors 0, 1 and 2, the locking at FILE object level cannot ensure atomicity of the output, e.g. a call to printf(). Introduce a new Newlib configuration option _REENT_GLOBAL_STDIO_STREAMS to enable the use of global stdio FILE objects. As a side-effect this reduces the size of struct _reent by more than 50%. The _REENT_GLOBAL_STDIO_STREAMS should not be used without _STDIO_CLOSE_PER_REENT_STD_STREAMS. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Add stdin_init(), stdout_init() and stderr_init()Sebastian Huber2017-06-301-17/+33
| | | | | | This simplifies further changes in this area. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Remove superfluous parameter from std()Sebastian Huber2017-06-301-7/+6
| | | | Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
* Optimized memcmpWilco Dijkstra2017-06-291-193/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is an optimized memcmp for AArch64. This is a complete rewrite using a different algorithm. The previous version split into cases where both inputs were aligned, the inputs were mutually aligned and unaligned using a byte loop. The new version combines all these cases, while small inputs of less than 8 bytes are handled separately. This allows the main code to be sped up using unaligned loads since there are now at least 8 bytes to be compared. After the first 8 bytes, align the first input. This ensures each iteration does at most one unaligned access and mutually aligned inputs behave as aligned. After the main loop, process the last 8 bytes using unaligned accesses. This improves performance of (mutually) aligned cases by 25% and unaligned by >500% (yes >6 times faster) on large inputs. ChangeLog: 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com> * newlib/libc/machine/aarch64/memcmp.S (memcmp): Rewrite of optimized memcmp. GLIBC benchtests/bench-memcmp.c performance comparison for Cortex-A53: Length 1, alignment 1/ 1: 153% Length 1, alignment 1/ 1: 119% Length 1, alignment 1/ 1: 154% Length 2, alignment 2/ 2: 121% Length 2, alignment 2/ 2: 140% Length 2, alignment 2/ 2: 121% Length 3, alignment 3/ 3: 105% Length 3, alignment 3/ 3: 105% Length 3, alignment 3/ 3: 105% Length 4, alignment 4/ 4: 155% Length 4, alignment 4/ 4: 154% Length 4, alignment 4/ 4: 161% Length 5, alignment 5/ 5: 173% Length 5, alignment 5/ 5: 173% Length 5, alignment 5/ 5: 173% Length 6, alignment 6/ 6: 145% Length 6, alignment 6/ 6: 145% Length 6, alignment 6/ 6: 145% Length 7, alignment 7/ 7: 125% Length 7, alignment 7/ 7: 125% Length 7, alignment 7/ 7: 125% Length 8, alignment 8/ 8: 111% Length 8, alignment 8/ 8: 130% Length 8, alignment 8/ 8: 124% Length 9, alignment 9/ 9: 160% Length 9, alignment 9/ 9: 160% Length 9, alignment 9/ 9: 150% Length 10, alignment 10/10: 170% Length 10, alignment 10/10: 137% Length 10, alignment 10/10: 150% Length 11, alignment 11/11: 160% Length 11, alignment 11/11: 160% Length 11, alignment 11/11: 160% Length 12, alignment 12/12: 146% Length 12, alignment 12/12: 168% Length 12, alignment 12/12: 156% Length 13, alignment 13/13: 167% Length 13, alignment 13/13: 167% Length 13, alignment 13/13: 173% Length 14, alignment 14/14: 167% Length 14, alignment 14/14: 168% Length 14, alignment 14/14: 168% Length 15, alignment 15/15: 168% Length 15, alignment 15/15: 173% Length 15, alignment 15/15: 173% Length 1, alignment 0/ 0: 134% Length 1, alignment 0/ 0: 127% Length 1, alignment 0/ 0: 119% Length 2, alignment 0/ 0: 94% Length 2, alignment 0/ 0: 94% Length 2, alignment 0/ 0: 106% Length 3, alignment 0/ 0: 82% Length 3, alignment 0/ 0: 87% Length 3, alignment 0/ 0: 82% Length 4, alignment 0/ 0: 115% Length 4, alignment 0/ 0: 115% Length 4, alignment 0/ 0: 122% Length 5, alignment 0/ 0: 127% Length 5, alignment 0/ 0: 119% Length 5, alignment 0/ 0: 127% Length 6, alignment 0/ 0: 103% Length 6, alignment 0/ 0: 100% Length 6, alignment 0/ 0: 100% Length 7, alignment 0/ 0: 82% Length 7, alignment 0/ 0: 91% Length 7, alignment 0/ 0: 87% Length 8, alignment 0/ 0: 111% Length 8, alignment 0/ 0: 124% Length 8, alignment 0/ 0: 124% Length 9, alignment 0/ 0: 136% Length 9, alignment 0/ 0: 136% Length 9, alignment 0/ 0: 136% Length 10, alignment 0/ 0: 136% Length 10, alignment 0/ 0: 135% Length 10, alignment 0/ 0: 136% Length 11, alignment 0/ 0: 136% Length 11, alignment 0/ 0: 136% Length 11, alignment 0/ 0: 135% Length 12, alignment 0/ 0: 136% Length 12, alignment 0/ 0: 136% Length 12, alignment 0/ 0: 136% Length 13, alignment 0/ 0: 135% Length 13, alignment 0/ 0: 136% Length 13, alignment 0/ 0: 136% Length 14, alignment 0/ 0: 136% Length 14, alignment 0/ 0: 136% Length 14, alignment 0/ 0: 136% Length 15, alignment 0/ 0: 136% Length 15, alignment 0/ 0: 136% Length 15, alignment 0/ 0: 136% Length 4, alignment 0/ 0: 115% Length 4, alignment 0/ 0: 115% Length 4, alignment 0/ 0: 115% Length 32, alignment 0/ 0: 127% Length 32, alignment 7/ 2: 395% Length 32, alignment 0/ 0: 127% Length 32, alignment 0/ 0: 127% Length 8, alignment 0/ 0: 111% Length 8, alignment 0/ 0: 124% Length 8, alignment 0/ 0: 124% Length 64, alignment 0/ 0: 128% Length 64, alignment 6/ 4: 475% Length 64, alignment 0/ 0: 131% Length 64, alignment 0/ 0: 134% Length 16, alignment 0/ 0: 128% Length 16, alignment 0/ 0: 119% Length 16, alignment 0/ 0: 128% Length 128, alignment 0/ 0: 129% Length 128, alignment 5/ 6: 475% Length 128, alignment 0/ 0: 130% Length 128, alignment 0/ 0: 129% Length 32, alignment 0/ 0: 126% Length 32, alignment 0/ 0: 126% Length 32, alignment 0/ 0: 126% Length 256, alignment 0/ 0: 127% Length 256, alignment 4/ 8: 545% Length 256, alignment 0/ 0: 126% Length 256, alignment 0/ 0: 128% Length 64, alignment 0/ 0: 171% Length 64, alignment 0/ 0: 171% Length 64, alignment 0/ 0: 174% Length 512, alignment 0/ 0: 126% Length 512, alignment 3/10: 585% Length 512, alignment 0/ 0: 126% Length 512, alignment 0/ 0: 127% Length 128, alignment 0/ 0: 129% Length 128, alignment 0/ 0: 128% Length 128, alignment 0/ 0: 129% Length 1024, alignment 0/ 0: 125% Length 1024, alignment 2/12: 611% Length 1024, alignment 0/ 0: 126% Length 1024, alignment 0/ 0: 126% Length 256, alignment 0/ 0: 128% Length 256, alignment 0/ 0: 127% Length 256, alignment 0/ 0: 128% Length 2048, alignment 0/ 0: 125% Length 2048, alignment 1/14: 625% Length 2048, alignment 0/ 0: 125% Length 2048, alignment 0/ 0: 125% Length 512, alignment 0/ 0: 126% Length 512, alignment 0/ 0: 127% Length 512, alignment 0/ 0: 127% Length 4096, alignment 0/ 0: 125% Length 4096, alignment 0/16: 125% Length 4096, alignment 0/ 0: 125% Length 4096, alignment 0/ 0: 125% Length 1024, alignment 0/ 0: 126% Length 1024, alignment 0/ 0: 126% Length 1024, alignment 0/ 0: 126% Length 8192, alignment 0/ 0: 125% Length 8192, alignment 63/18: 636% Length 8192, alignment 0/ 0: 125% Length 8192, alignment 0/ 0: 125% Length 16, alignment 1/ 2: 317% Length 16, alignment 1/ 2: 317% Length 16, alignment 1/ 2: 317% Length 32, alignment 2/ 4: 395% Length 32, alignment 2/ 4: 395% Length 32, alignment 2/ 4: 398% Length 64, alignment 3/ 6: 475% Length 64, alignment 3/ 6: 475% Length 64, alignment 3/ 6: 477% Length 128, alignment 4/ 8: 479% Length 128, alignment 4/ 8: 479% Length 128, alignment 4/ 8: 479% Length 256, alignment 5/10: 543% Length 256, alignment 5/10: 539% Length 256, alignment 5/10: 543% Length 512, alignment 6/12: 585% Length 512, alignment 6/12: 585% Length 512, alignment 6/12: 585% Length 1024, alignment 7/14: 611% Length 1024, alignment 7/14: 611% Length 1024, alignment 7/14: 611%
* newlib: fix file mode of newly added complex sourcesCorinna Vinschen2017-06-2916-0/+0
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* newlib: libm/complex/Makefile.in: regenerateCorinna Vinschen2017-06-291-22/+161
|