summaryrefslogtreecommitdiffstats
path: root/newlib/libc
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* * libc/machine/aarch64/strcpy.S (strcpy): Further performanceRichard Earnshaw2015-01-065-125/+250
| | | | | | | | improvements. Adjust to allow building as stpcpy. * libc/machine/aarch64/stpcpy.S: New file. * libc/machine/aarch64/stpcpy-stub.c: New file. * libc/machine/aarch64/Makefile.am (lib_a_SOURCES): Build stpcpy. * libc/machine/aarch64/Makefile.in: Regenerated.
* 2014-12-26 Freddie Chopin <freddie_chopin@op.pl>Jeff Johnston2015-01-051-2/+2
| | | | * libc/include/sys/features.h: update newlib version and copyright year
* 2014-12-18 Jeff Johnston <jjohnstn@redhat.com>Jeff Johnston2014-12-1891-1523/+1236
| | | | | | | | | | | | | | * NEWS: Update with 2.2.0 info. * README: Ditto. * acinclude.m4: Change version number to 2.2.0. * libc/libc.texinfo: Ditto. * libm/libm.texinfo: Ditto. * configure: Regenerated. * Makefile.in: Regenerated. * doc/configure: Ditto. * libc/*/configure: Ditto. * libm/*/configure: Ditto. * libc/sys/linux/shared.ld: Add VERS_2.2
* Implement BSD/GNU unlocked stdio extensions.Yaakov Selkowitz2014-12-1841-77/+1800
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libc/include/stdio.h (clearerr_unlocked, feof_unlocked, ferror_unlocked, fflush_unlocked, fgetc_unlocked, fgets_unlocked, fileno_unlocked, fputc_unlocked, fputs_unlocked, fread_unlocked, fwrite_unlocked): Declare. * libc/include/wchar.h (fgetwc_unlocked, fgetws_unlocked, fputwc_unlocked, fputws_unlocked, getwc_unlocked, getwchar_unlocked, putwc_unlocked, putwchar_unlocked): Declare. * libc/stdio/Makefile.am (ELIX_4_SOURCES): Add clearerr_u.c, feof_u.c, ferror_u.c, fflush_u.c, fgetc_u.c, fgets_u.c, fgetwc_u.c, fgetws_u.c, fileno_u.c, fputc_u.c, fputs_u.c, fputwc_u.c, fputws_u.c, fread_u.c, fwrite_u.c, getwc_u.c, getwchar_u.c, putwc_u.c, putwchar_u.c. Add necessary dependencies. * libc/stdio/Makefile.in: Regenerate. * libc/stdio/clearerr.c: Document unlocked variant. * libc/stdio/clearerr_u.c: New file. * libc/stdio/feof.c: Document unlocked variant. * libc/stdio/feof_u.c: New file. * libc/stdio/ferror.c: Document unlocked variant. * libc/stdio/ferror_u.c: New file. * libc/stdio/fflush.c: Add __IMPL_UNLOCKED__ overrides. Document unlocked variants. * libc/stdio/fflush_u.c: New file. * libc/stdio/fgetc.c: Document unlocked variants. * libc/stdio/fgetc_u.c: New file. * libc/stdio/fgets.c: Add __IMPL_UNLOCKED__ overrides. Document unlocked variants. * libc/stdio/fgets_u.c: New file. * libc/stdio/fgetwc.c: Document unlocked variants. (__fgetwc): Make non-static. * libc/stdio/fgetwc_u.c: New file. * libc/stdio/fgetws.c: Add __IMPL_UNLOCKED__ overrides. Document unlocked variants. * libc/stdio/fgetws_u.c: New file. * libc/stdio/fileno.c: Document unlocked variant. * libc/stdio/fileno_u.c: New file. * libc/stdio/fputc.c: Document unlocked variants. * libc/stdio/fputc_u.c: New file. * libc/stdio/fputs.c: Add __IMPL_UNLOCKED__ overrides. Document unlocked variants. * libc/stdio/fputs_u.c: New file. * libc/stdio/fputwc.c: Document unlocked variants. (__fputwc): Make non-static. * libc/stdio/fputwc_u.c: New file. * libc/stdio/fputws.c: Add __IMPL_UNLOCKED__ overrides. Document unlocked variants. * libc/stdio/fputws_u.c: New file. * libc/stdio/fread.c: Add __IMPL_UNLOCKED__ overrides. Document unlocked variants. * libc/stdio/fread_u.c: New file. * libc/stdio/fwrite.c: Add __IMPL_UNLOCKED__ overrides. Document unlocked variants. * libc/stdio/fwrite_u.c: New file. * libc/stdio/getwc_u.c: New file. * libc/stdio/getwchar.c: Document unlocked variants. * libc/stdio/getwchar_u.c: New file. * libc/stdio/local.h: Define locking macros as empty ifdef __IMPL_UNLOCKED__. (__fgetwc, __fputwc): Declare. * libc/stdio/putwc_u.c: New file. * libc/stdio/putwchar.c: Document unlocked variants. * libc/stdio/putwchar_u.c: New file.
* * stdio.tex: Add menu entries for __fsetlocking and stdio_ext.Corinna Vinschen2014-12-182-1/+3
| | | | * stdio_ext.c: Add "stdio_ext" to synopsis.
* * libc/stdlib/nano-mallocr.c (ALIGN_TO): Do not assume thatDJ Delorie2014-12-161-1/+1
| | | | integers are as big as pointers.
* * libc/machine/aarch64/strcpy.S: Improve handling of short strings.Richard Earnshaw2014-12-161-135/+207
|
* * libc/include/stdlib.h (__itoa): Declare prototype.Corinna Vinschen2014-12-165-22/+192
| | | | | | | | | | (__utoa): Ditto. (itoa): Ditto, non-strict-ANSI only. (utoa): Ditto. * libc/stdlib/Makefile.am: Add itoa.c and utoa.c. * libc/stdlib/Makefile.in: Regenerate. * libc/stdlib/itoa.c: New file. * libc/stdlib/utoa.c: New file.
* 2014-12-15 Jonathan Roelofs <jonathan@codesourcery.com>Jeff Johnston2014-12-151-0/+5
| | | | | | | | | | | | * libc/include/math.h: Add log2l,logbl,nexttowardf, * nexttoward,nexttowardl * libm/common/Makefile.am: Reference new files * libm/common/Makefile.in: Reference new files * libm/common/log2l.c: New File * libm/common/logbl.c: Likewise * libm/common/nexttowardf.c: Likewise * libm/common/nexttoward.c: Likewise * libm/common/nexttowardl.c: Likewise
* * libc/include/stdio.h (__SNLK): Define.Yaakov Selkowitz2014-12-157-8/+135
| | | | | | | | | | | | | | | * libc/include/stdio_ext.h (FSETLOCKING_QUERY, FSETLOCKING_INTERNAL, FSETLOCKING_BYCALLER): Define. (__fsetlocking): Declare. * libc/stdio/Makefile.am: Build fsetlocking.c. * libc/stdio/Makefile.in: Regenerate. * libc/stdio/fsetlocking.c: New file. * libc/stdio/local.h (_newlib_flockfile_start): Make _flockfile call dependent on __SNLK flag. (_newlib_flockfile_exit, _newlib_flockfile_end): Ditto for _funlockfile calls. Define all locking macros as empty if __SINGLE_THREAD__. * libc/stdio/stdio.tex: Include fsetlocking.def.
* * newlib/libc/include/machine/setjmp.h: Add FPU support.Corinna Vinschen2014-12-152-5/+90
| | | | * newlib/libc/machine/nds32/setjmp.S: Add FPU support.
* * libc/include/stdlib.h: Include sys/cdefs.h to avoid undefinedCorinna Vinschen2014-12-151-0/+1
| | | | __ASMNAME.
* 2014-12-12 Stefan Wallentowitz <stefan.wallentowitz@tum.de>Jeff Johnston2014-12-122-2/+21
| | | | | | * configure.host: or1knd support, OpenRISC without delay slot * libc/include/machine/setjmp.h: Add or1knd * libc/machine/or1k/setjmp.S: Optional delay slot
* 2014-12-12 Stefan Wallentowitz <stefan.wallentowitz@tum.de>Jeff Johnston2014-12-121-13/+2
| | | | * libc/machine/or1k/setjmp.S: Remove save/restore of r3-r8
* * libc/include/stdio.h: Fix type signature of __sfeof and __sferrorCorinna Vinschen2014-12-111-2/+2
| | | | (and thus feof and ferror) for C++.
* * libc/include/stdio_ext.h: Rename __fwriteable to __fwritable.Yaakov Selkowitz2014-12-115-2/+142
| | | | | | | | | | [!__GNUC__]: Declare real functions for the macros, and make the macros conditional on !__cplusplus. * libc/stdio/Makefile.am (ELIX_4_SOURCES): Add stdio_ext.c. (CHEWOUT_FILES): Add stdio_ext.def. * libc/stdio/Makefile.in: Regenerate. * libc/stdio/stdio.tex: Include stdio_ext.def. * libc/stdio/stdio_ext.c: New file.