Nick Clifton
ab8bc7614c
For the RX port, avoid using string instructions when __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.
2015-04-09 09:20:47 +01:00
Corinna Vinschen
d41baf3578
Add parens around MIN/MAX values in stdint.h.
...
* libc/include/stdint.h: Throughout add parens around MIN/MAX values.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-04-01 20:40:43 +02:00
Sebastian Huber
b574832830
Add <sys/_stdint.h> for FreeBSD compatibility
...
* 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>
2015-04-01 20:35:38 +02:00
Jon TURNEY
f992ae6f4d
Make stack_t typedef generally available
...
* libc/include/sys/signal.h (stack_t): Make typedef generally
available.
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-04-01 19:09:19 +01:00
Corinna Vinschen
829c8f6c2d
Fix UTF-16 surrogate handling in wctomb and friends.
...
* libc/stdlib/wctomb_r.c (__utf8_wctomb): Fix check for handling a
lone high surrogate.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-04-01 15:31:18 +02:00
Corinna Vinschen
70399a721c
Avoid excessive locking and calling tzset in time functions.
...
* 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>
2015-03-31 11:22:50 +02:00
Corinna Vinschen
5f4e1e895c
Add _tzset_unlocked and _tzset_unlocked_r
...
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>
2015-03-31 11:14:22 +02:00
Craig Howland
792ecd7c34
Move tzset calls to time functions.
...
* 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>
2015-03-31 10:26:49 +02:00
Yaakov Selkowitz
84304a44b1
strftime: use tzname if TM_ZONE is NULL
...
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.
2015-03-30 16:06:48 -05:00
Yaakov Selkowitz
779ddb0b48
string: add GNU basename(3)
...
* 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.
2015-03-30 13:10:40 -05:00
Sebastian Huber
d70f57112f
Import <sys/tree.h> from FreeBSD
...
* libc/include/sys/tree.h: New file.
2015-03-24 10:52:44 +01:00
Joel Sherrill
5799260aed
Change from configure time to compile time probe for intptr_t definition.
...
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.
2015-03-23 09:16:37 -05:00
Steve Ellcey
5b1cff7932
Replace uint32_t/uint64_t type usage with __uint32_t/__uint64_t.
...
* libc/include/sys/time.h: Replace uint32_t and uint64_t
with __uint32_t and __uint64_t.
2015-03-19 10:05:07 -07:00
Jon TURNEY
44e5c14e08
Fix newlib texinfo source so 'info libc' and 'info libm' work
...
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>
2015-03-16 15:02:22 +00:00
Corinna Vinschen
e6af944145
Drop including cygwin/sys_time.h on Cygwin.
...
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-03-13 13:19:14 +01:00
Sebastian Huber
bb01594897
Merge parts of <sys/time.h> from FreeBSD
...
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-03-13 13:17:34 +01:00
Sebastian Huber
c93d44add9
Import libc/sys/rtems/include/semaphore.h from FreeBSD.
...
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-03-12 16:03:42 +01:00
Sebastian Huber
b161b155c8
Add and use latest <sys/timespec.h> from FreeBSD
...
* 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>
2015-03-11 15:45:38 +01:00
Corinna Vinschen
5a97e28f6a
* libc/include/stdio.h (FILE): Protect typedef from redefinition.
...
* libc/include/wchar.h: Ditto.
2015-03-05 17:15:24 +00:00
Joel Sherrill
2387583ee2
2015-02-25 Gedare Bloom <gedare@rtems.org>
...
* libc/include/machine/time.h (_CLOCKS_PER_SEC_): redefine for RTEMS.
2015-03-03 21:53:55 +00:00
Steve Ellcey
bc860c9894
* libc/machine/mips/memset.S: Add support for mips32r6/mips64r6.
2015-03-03 19:49:00 +00:00
Steve Ellcey
b8cd02f65a
* libc/machine/mips/memcpy.S: Add support for mips32r6/mips64r6.
2015-03-03 17:46:27 +00:00
Steve Ellcey
d2f9dbb3ee
2015-02-26 Steve Ellcey <sellcey@imgtec.com>
...
* libc/machine/mips/memcpy.S: Fix macro indentation and typos in
comments.
2015-02-26 23:36:56 +00:00
Jon TURNEY
67d150ca14
* libc/include/sys/cdefs.h (_GNU_SOURCE): Move check so it has an
...
effect when _XOPEN_SOURCE is also defined.
2015-02-25 15:58:41 +00:00
Corinna Vinschen
72ba8b107a
* libc/machine/arm/aeabi_memclr.c: New file to support
...
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.
2015-02-17 09:26:54 +00:00
Corinna Vinschen
554f33c48d
* libc/machine/arm/aeabi_memmove.c: New file to support
...
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.
2015-02-17 09:06:51 +00:00
Nick Clifton
b9e7cd9a84
* libc/include/complex.h (cabsl): Add prototype.
...
(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.
2015-02-06 16:14:04 +00:00
Corinna Vinschen
f2eb8ca8bf
* libc/include/wchar.h (wcstold): Drop _LDBL_EQ_DBL requirement for
...
declaration.
2015-02-04 11:02:36 +00:00
Nick Clifton
1f3dd90552
* libc/stdlib/wcstold.c (wcstold): Add implementation for when
...
long double is not the same as double.
2015-01-29 08:37:26 +00:00
Corinna Vinschen
3e4183d15b
* libc/include/sys/time.h: #include <sys/cdefs.h> for __BSD_VISIBLE.
2015-01-28 21:03:41 +00:00
Corinna Vinschen
2ee3908b45
Complete action from 2001-12-18:
...
* libc/machine/i386/f_*: Remove duplicate files.
2015-01-23 10:16:00 +00:00
Yaakov Selkowitz
128e9e0be5
* libc/sys/sparc64/sys/time.h: #include <sys/types.h> for time_t.
2015-01-22 17:34:47 +00:00
Corinna Vinschen
bdc1799556
* libc/sys/or1k/mlock.c: Fix dependency on libgloss.
2015-01-22 15:32:51 +00:00
Eric Botcazou
bf8f43ae8a
* COPYING.LIBGLOSS: Add Controls and Data Services copyright.
...
* 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.
2015-01-21 18:27:47 +00:00
Corinna Vinschen
43f80ffb7d
Fix typo in entry header
2015-01-20 12:27:30 +00:00
Corinna Vinschen
086cd00d24
* libc/machine/aarch64/strlen.S (strlen): Improve performance.
2015-01-20 10:11:56 +00:00
Jeff Johnston
89b6034299
2015-01-14 Joel Sherrill <joel.sherrill@oarcorp.com>
...
* libc/include/sys/unistd.h [__BSD_VISIBLE]: Add issetugid() prototype.
2015-01-14 21:19:26 +00:00
Corinna Vinschen
29193dd04c
* configure.host: Add extra system for OpenRISC baremetal
...
* 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
2015-01-14 09:25:16 +00:00
Corinna Vinschen
808fde520f
* libc/time/strftime.c (__strftime): Utilize __TM_GMTOFF and __TM_ZONE
...
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.
2015-01-08 09:51:34 +00:00
Richard Earnshaw
6a35dbf342
* libc/machine/aarch64/strcpy.S (strcpy): Further performance
...
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.
2015-01-06 09:57:55 +00:00
Jeff Johnston
f0e3a51e9f
2014-12-26 Freddie Chopin <freddie_chopin@op.pl>
...
* libc/include/sys/features.h: update newlib version and copyright year
2015-01-05 17:31:28 +00:00
Jeff Johnston
0615b4bb5f
2014-12-18 Jeff Johnston <jjohnstn@redhat.com>
...
* 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
2014-12-18 20:30:11 +00:00
Yaakov Selkowitz
968738f9b1
Implement BSD/GNU unlocked stdio extensions.
...
* 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.
2014-12-18 14:55:21 +00:00
Corinna Vinschen
2a06c6dcc4
* stdio.tex: Add menu entries for __fsetlocking and stdio_ext.
...
* stdio_ext.c: Add "stdio_ext" to synopsis.
2014-12-18 10:08:09 +00:00
DJ Delorie
ae4a2bd820
* libc/stdlib/nano-mallocr.c (ALIGN_TO): Do not assume that
...
integers are as big as pointers.
2014-12-16 20:46:25 +00:00
Richard Earnshaw
52edca9f86
* libc/machine/aarch64/strcpy.S: Improve handling of short strings.
2014-12-16 15:48:58 +00:00
Corinna Vinschen
32c96ddd14
* libc/include/stdlib.h (__itoa): Declare prototype.
...
(__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-16 10:55:17 +00:00
Jeff Johnston
705cda717e
2014-12-15 Jonathan Roelofs <jonathan@codesourcery.com>
...
* 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
2014-12-15 20:50:23 +00:00
Yaakov Selkowitz
6485fc66f2
* libc/include/stdio.h (__SNLK): Define.
...
* 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.
2014-12-15 18:22:56 +00:00
Corinna Vinschen
f5ce72dffc
* newlib/libc/include/machine/setjmp.h: Add FPU support.
...
* newlib/libc/machine/nds32/setjmp.S: Add FPU support.
2014-12-15 13:32:17 +00:00