summaryrefslogtreecommitdiffstats
path: root/newlib/libc
Commit message (Collapse)AuthorAgeFilesLines
* sys/signal.h requires sys/cdefs.hCorinna Vinschen2015-06-221-0/+1
| | | | | | * libc/include/sys/signal.h: Include forgotten sys/cdefs.h. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Use MINSIGSTKSZ and SIGSTKSZ from newlib for Cygwin as wellCorinna Vinschen2015-06-201-14/+14
| | | | | | | | | | * libc/include/sys/signal.h: Move altstack macros completely outside of rtems block. * include/cygwin/signal.h: Remove definitions of MINSIGSTKSZ and SIGSTKSZ here. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Preliminary infrastructure to implement alternate stackCorinna Vinschen2015-06-191-6/+7
| | | | | | | | | | | | | | | | | | | | | | | * libc/include/sys/signal.h: Define SS_ONSTACK and SS_DISABLE unconditionally. (sigaltstack): Enable prototype on Cygwin. * common.din (sigaltstack): Export. * cygtls.cc (_cygtls::init_thread): Initialize altstack. * cygtls.h (__tlsstack_t): Rename from __stack_t to distinguish more clearly from stack_t. Accommodate throughout. (_cygtls): Add altstack member. * exceptions.cc (exception::handle): Set SIGSEGV handler to SIG_DFL if we encounter a stack overflow, and no alternate stack has been defined. * include/cygwin/signal.h (MINSIGSTKSZ): Define (SIGSTKSZ): Define. (SA_ONSTACK): Define. * signal.cc (sigaltstack): New function. * tlsoffset.h: Regenerate. * tlsoffset64.h: Ditto. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* gmtime_r: Use faster algorithm by Howard HinnantFreddie Chopin2015-06-151-71/+35
| | | | | | | * libc/time/gmtime_r.c (gmtime_r): use faster algorithm from civil_from_days() by Howard Hinnant Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Update the assembler code to support old ARM architectures.Hale Wang2015-06-016-183/+179
| | | | | | | | | | | | * libc/machine/arm/aeabi_memmove-arm.S (__aeabi_memmove): Update the assembler implementation. * libc/machine/arm/aeabi_memmove-thumb.S (__aeabi_memmove): Ditto. * libc/machine/arm/aeabi_memmove-thumb2.S (__aeabi_memmove): Ditto. * libc/machine/arm/aeabi_memset-arm.S (__aeabi_memset): Ditto. * libc/machine/arm/aeabi_memset-thumb.S (__aeabi_memset): Ditto. * libc/machine/arm/aeabi_memset-thumb2.S (__aeabi_memset): Ditto. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Correct argz_replace behaviour when memory is exhausted.David Stacey2015-06-011-2/+5
| | | | | | | * libc/argz/argz_replace.c (argz_replace): Correct behaviour when memory is exhausted. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix comment in sys/wait.hCorinna Vinschen2015-05-281-1/+1
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix potential memory leak in argz_replaceDavid Stacey2015-05-271-1/+4
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Revert to exposing sys/select.h from sys/time.h on CygwinCorinna Vinschen2015-05-021-0/+6
| | | | | | * libc/include/sys/time.h: Include sys/select.h on Cygwin. Explain why. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Improve check for int32_t being long or intCorinna Vinschen2015-04-294-32/+41
| | | | | | | | | | | | | | * libc/include/sys/config.h: Move evaluation of _UINTPTR_EQ_ULONG and _UINTPTR_EQ_ULONGLONG from here... * libc/include/sys/_intsup.h: ...to here. Rename to _INTPTR_EQ_LONG and _INTPTR_EQ_LONGLONG to refer to signed base type. Add test for base type of int32_t and set _INT32_EQ_LONG accordingly. * libc/include/stdint.h: Change checks for __have_long32 to checks for _INT32_EQ_LONG. * libc/include/inttypes.h: Ditto. Accommodate aforementioned name change. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix basename prototype collision string.h vs libgen.hCorinna Vinschen2015-04-232-12/+26
| | | | | | | | | | * libc/include/libgen.h (basename): Drop defining _BASENAME_DEFINED. Always define macro basename. Add comment to explain why. * libc/include/string.h (basename): Check for basename instead of _BASENAME_DEFINED. Drop __GNUC__ branch, always use basename macro. Change comment to explain why. Add nonnull function attribute. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* For the RX port, avoid using string instructions when ↵Nick Clifton2015-04-2312-0/+235
| | | | | | | | | | | | | | | | | | | __RX_DISALLOW_STRING_INSNS__ is defined. * rx/crt0.S (_start): If string instructions are not allowed, avoid using SMOVF. * libc/machine/rx/memchr.S: Add non-string insn using version. * libc/machine/rx/memcpy.S: Likewise. * libc/machine/rx/memmove.S: Likewise. * libc/machine/rx/mempcpy.S: Likewise. * libc/machine/rx/strcat.S: Likewise. * libc/machine/rx/strcmp.S: Likewise. * libc/machine/rx/strcpy.S: Likewise. * libc/machine/rx/strlen.S: Likewise. * libc/machine/rx/strncat.S: Likewise. * libc/machine/rx/strncmp.S: Likewise. * libc/machine/rx/strncpy.S: Likewise.
* Add parens around MIN/MAX values in stdint.h.Corinna Vinschen2015-04-231-71/+71
| | | | | | * libc/include/stdint.h: Throughout add parens around MIN/MAX values. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add <sys/_stdint.h> for FreeBSD compatibilitySebastian Huber2015-04-235-46/+69
| | | | | | | | | | | | | | | | | | | | * libc/include/sys/_stdint.h: New file. * libc/include/stdint.h (int8_t): Move to <sys/_stdint.h>. (uint8_t): Likewise. (int16_t): Likewise. (uint16_t): Likewise. (int32_t): Likewise. (uint32_t): Likewise. (int64_t): Likewise. (uint64_t): Likewise. (intptr_t): Likewise. (uintptr_t): Likewise. * libc/include/sys/types.h: Include <sys/_stdint.h>. * libc/sys/rtems/machine/_types.h: Remove <stdint.h> include. * libc/sys/time.h>: Replace __uint32_t with uint32_t and __uint64_t with uint64_t. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Make stack_t typedef generally availableJon TURNEY2015-04-231-9/+9
| | | | | | | * libc/include/sys/signal.h (stack_t): Make typedef generally available. Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
* Fix UTF-16 surrogate handling in wctomb and friends.Corinna Vinschen2015-04-231-1/+1
| | | | | | | * libc/stdlib/wctomb_r.c (__utf8_wctomb): Fix check for handling a lone high surrogate. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Avoid excessive locking and calling tzset in time functions.Corinna Vinschen2015-04-233-5/+17
| | | | | | | | | | * libc/time/lcltime_r.c (localtime_r): Call _tzset_unlocked inside TZ lock. * libc/time/mktime.c (mktime): Ditto. * libc/time/strftime.c (strftime, wcsftime): Ditto. Guard against calling _tzset_unlocked more than once (baring recursion). Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add _tzset_unlocked and _tzset_unlocked_rCorinna Vinschen2015-04-233-23/+24
| | | | | | | | | | | | | | | | | | | newlib: * libc/time/local.h (_tzset_unlocked_r): Add prototype. (_tzset_unlocked): Ditto. * libc/time/tzset.c (_tzset_unlocked): New function, call _tzset_unlocked_r. (tzset): Lock and call _tzset_unlocked_r. * libc/time/tzset_r (_tzset_unlocked_r): Remove locking and rename from _tzset_r. (_tzset_r): Lock and call _tzset_unlocked_r. cygwin: * localtime.cc (tzset_unlocked): Export as _tzset_unlocked. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Move tzset calls to time functions.Craig Howland2015-04-234-7/+5
| | | | | | | | | | * libc/stdlib/setenv_r.c (_setenv_r): Remove tzset() call for TZ definition. * libc/time/lcltime_r.c (localtime_r): Add tzset() call * libc/time/mktime.c (mktime): Ditto. * libc/time/strftime.c (strftime, wcsftime): Ditto. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* strftime: use tzname if TM_ZONE is NULLYaakov Selkowitz2015-04-231-3/+3
| | | | | | | This avoids a strlen(NULL) crash a few lines later. * libc/time/strftime.c (strftime) <%Z>: Initialize tznam to NULL. Use _tzname as fallback if TM_ZONE is NULL.
* string: add GNU basename(3)Yaakov Selkowitz2015-04-235-2/+53
| | | | | | | | * libc/include/libgen.h (_BASENAME_DEFINED): Define. * libc/include/string.h (basename): Declare. * libc/string/Makefile.am (ELIX_4_SOURCES): Add gnu_basename.c. * libc/string/Makefile.in: Regenerate. * libc/string/gnu_basename.c: New file.
* Import <sys/tree.h> from FreeBSDSebastian Huber2015-04-231-0/+801
| | | | * libc/include/sys/tree.h: New file.
* Change from configure time to compile time probe for intptr_t definition.Joel Sherrill2015-04-232-0/+27
| | | | | | | | | | | 2015-03-23 Joel Sherrill <joel.sherrill@oarcorp.com * configure.in: Delete logic to determine _UINTPTR_EQ_ULONGLONG and _UINTPTR_EQ_ULONG at configuration time. *libc/include/sys/config.h: Add logic to determine _UINTPTR_EQ_ULONGLONG and _UINTPTR_EQ_ULONG at compilation time. * libc/include/inttypes.h: Add include of <sys/config.h>. * configure: Regenerated.
* Replace uint32_t/uint64_t type usage with __uint32_t/__uint64_t.Steve Ellcey2015-04-231-18/+18
| | | | | * libc/include/sys/time.h: Replace uint32_t and uint64_t with __uint32_t and __uint64_t.
* Fix newlib texinfo source so 'info libc' and 'info libm' workJon TURNEY2015-03-161-3/+4
| | | | | | | | | | | | | | | | | | | | | | | If the newlib .info files are installed using install-info, 'info libc' and 'info libm' don't work. This seems to be due to the formatting of the directory entry line not being quite right, so fix that. Also use @direntry texinfo command, rather than writing .info directory entry literally. Also use @dircategory texinfo command to place into 'Newlib' category, rather than ending up in 'Miscellaneous' newlib/ChangeLog: 2015-03-13 Jon TURNEY <jon.turney@dronecode.org.uk> * libc/libc.texinfo: Fix directory entry. * libm/libm.texinfo: Ditto. Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
* Drop including cygwin/sys_time.h on Cygwin.Corinna Vinschen2015-03-131-4/+0
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Merge parts of <sys/time.h> from FreeBSDSebastian Huber2015-03-134-65/+513
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Import libc/sys/rtems/include/semaphore.h from FreeBSD.Sebastian Huber2015-03-121-0/+56
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add and use latest <sys/timespec.h> from FreeBSDSebastian Huber2015-03-118-16/+118
| | | | | | | | | | | | | | * libc/include/sys/_timespec.h: Import from FreeBSD. * libc/include/sys/timespec.h: Likewise. * libc/include/time.h: Include <sys/timespec.h>. * libc/include/sys/types.h (timespec): Delete. (itimerspec): Likewise. * libc/include/machine/time.h: Include <sys/_timespec.h>. * libc/include/sys/sched.h: Likewise. * libc/include/sys/signal.h: Likewise. * libc/include/sys/stat.h: Likewise. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* * libc/include/stdio.h (FILE): Protect typedef from redefinition.Corinna Vinschen2015-03-052-0/+6
| | | | * libc/include/wchar.h: Ditto.
* 2015-02-25 Gedare Bloom <gedare@rtems.org>Joel Sherrill2015-03-031-4/+2
| | | | * libc/include/machine/time.h (_CLOCKS_PER_SEC_): redefine for RTEMS.
* * libc/machine/mips/memset.S: Add support for mips32r6/mips64r6.Steve Ellcey2015-03-031-0/+58
|
* * libc/machine/mips/memcpy.S: Add support for mips32r6/mips64r6.Steve Ellcey2015-03-031-14/+165
|
* 2015-02-26 Steve Ellcey <sellcey@imgtec.com>Steve Ellcey2015-02-261-108/+108
| | | | | * libc/machine/mips/memcpy.S: Fix macro indentation and typos in comments.
* * libc/include/sys/cdefs.h (_GNU_SOURCE): Move check so it has anJon TURNEY2015-02-251-6/+8
| | | | effect when _XOPEN_SOURCE is also defined.
* * libc/machine/arm/aeabi_memclr.c: New file to supportCorinna Vinschen2015-02-178-5/+542
| | | | | | | | | | | | aeabi_memclr. * libc/machine/arm/aeabi_memset.c: New file to support aeabi_memset. * libc/machine/arm/aeabi_memset-soft.S: Ditto. * libc/machine/arm/aeabi_memset-arm.S: Ditto. * libc/machine/arm/aeabi_memset-thumb.S: Ditto. * libc/machine/arm/aeabi_memset-thumb2.S: Ditto. * libc/machine/arm/Makefile.am: Add dependencies. * libc/machine/arm/Makefile.in: Regenerated.
* * libc/machine/arm/aeabi_memmove.c: New file to supportCorinna Vinschen2015-02-177-3/+340
| | | | | | | | | | aeabi_memmove. * libc/machine/arm/aeabi_memmove-soft.S: Ditto. * libc/machine/arm/aeabi_memmove-arm.S: Ditto. * libc/machine/arm/aeabi_memmove-thumb.S: Ditto. * libc/machine/arm/aeabi_memmove-thumb2.S: Ditto. * libc/machine/arm/Makefile.am: Add dependencies. * libc/machine/arm/Makefile.in: Regenerated.
* * libc/include/complex.h (cabsl): Add prototype.Nick Clifton2015-02-065-11/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (cimagl): Add prototype. (creall): Add prototype. * libc/include/ieeefp.h: Include float.h. (EXT_EXPBITS, EXT_FRACHBITS, EXT_FRACLBITS) (EXT_EXP_INFNAN. EXT_EXP_BIAS, EXT_FRACBITS): Define. (struct ieee_ext, union ieee_ext_u): New types for long double support. * libc/include/math.h (finitel): Add prototype. (hypotl): Add prototype. (sqrtl): Add prototype. * libm/common/Makefile.am (lsrc): Add sl_finite.c. * libm/common/Makefile.in: Regenerate. * libm/common/fdlibm.h (__ieee754_hypotl): Add prototype. * libm/common/hypotl.c (hypotl): Add implementation for when long double is larger than double. * libm/common/sqrtl.c (sqrtl): Likewise. * libm/common/sl_finite.c: New file. Adds implementation of the finitel function. * libm/complex/Makefile.am (lsrc): Define. (libcomplex_la_SOURCES): Add lsrc. (lib_a_SOURCES): Add lsrc. * libm/complex/Makefile.in: Regenerate. * libm/complex/cabs.c: Add documentation of cabsl function. * libm/complex/cimag.c: Add documentation of cimagl function. * libm/complex/creall.c: Add documentation of creall function. * libm/complex/cabsl.c: New file. Adds implementation of the cabsl function. * libm/complex/cimagl.c: New file. Adds implementation of the cimagl function. * libm/complex/creall.c: New file. Adds implementation of the creall function. * libm/math/Makefile.am (lsrc): Define. (libmath_la_SOURCES): Add lsrc. (lib_a_SOURCES): Add lsrc. * libm/math/Makefile.in: Regenerate. * libm/math/el_hypot.c: New file. Adds implementation of the __ieee754_hypotl function.
* * libc/include/wchar.h (wcstold): Drop _LDBL_EQ_DBL requirement forCorinna Vinschen2015-02-041-3/+0
| | | | declaration.
* * libc/stdlib/wcstold.c (wcstold): Add implementation for whenNick Clifton2015-01-291-4/+72
| | | | long double is not the same as double.
* * libc/include/sys/time.h: #include <sys/cdefs.h> for __BSD_VISIBLE.Corinna Vinschen2015-01-281-0/+1
|
* Complete action from 2001-12-18:Corinna Vinschen2015-01-2317-697/+0
| | | | * libc/machine/i386/f_*: Remove duplicate files.
* * libc/sys/sparc64/sys/time.h: #include <sys/types.h> for time_t.Yaakov Selkowitz2015-01-221-0/+2
|
* * libc/sys/or1k/mlock.c: Fix dependency on libgloss.Corinna Vinschen2015-01-221-2/+4
|
* * COPYING.LIBGLOSS: Add Controls and Data Services copyright.Eric Botcazou2015-01-2116-7/+8005
| | | | | | | | | | | | | | | | * COPYING.NEWLIB: Likewise. libgloss/ * configure.in: Add Visium support. * configure: Regenerate. * visium/: New directory. newlib/ * configure.host: Add Visium support. * libc/machine/configure.in: Likewise. * libc/machine/configure: Regenerate. * libc/machine/visium/: New directory. * libc/include/machine/setjmp.h (_JBLEN): Define for Visium. * libc/include/machine/ieeefp.h (__IEEE_BIG_ENDIAN): Likewise. * libc/include/machine/time.h (_CLOCKS_PER_SEC_): Likewise.
* Fix typo in entry headerCorinna Vinschen2015-01-202-2/+6
|
* * libc/machine/aarch64/strlen.S (strlen): Improve performance.Corinna Vinschen2015-01-201-69/+171
|
* 2015-01-14 Joel Sherrill <joel.sherrill@oarcorp.com>Jeff Johnston2015-01-141-0/+3
| | | | * libc/include/sys/unistd.h [__BSD_VISIBLE]: Add issetugid() prototype.
* * configure.host: Add extra system for OpenRISC baremetalCorinna Vinschen2015-01-149-0/+6735
| | | | | | | | | | | | | * libc/include/sys/config.h: Dynamic reentrancy for or1k sys targets * libc/sys/or1k/: New system for or1k baremetal * libc/sys/or1k/Makefile.am: New file * libc/sys/or1k/Makefile.in: New file * libc/sys/or1k/aclocal.m4: New file * libc/sys/or1k/configure.in: New file * libc/sys/or1k/configure: New file * libc/sys/or1k/getreent.S: New file * libc/sys/or1k/mlock.S: New file * libc/sys/or1k/or1k-asm.S: New file
* * libc/time/strftime.c (__strftime): Utilize __TM_GMTOFF and __TM_ZONECorinna Vinschen2015-01-081-6/+32
| | | | | | | on systems where available. On Cygwin, call function to get values. Add comment to explain why. Drop TZ_LOCK/TZ_UNLOCK in 'z' case since it's not necessary. In 'Z' case, add a comment to document a potential codeset problem.