Corinna Vinschen
22465796ed
Preliminary infrastructure to implement alternate stack
...
* 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>
2015-06-19 16:12:45 +02:00
Freddie Chopin
325926031b
gmtime_r: Use faster algorithm by Howard Hinnant
...
* 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>
2015-06-15 12:00:59 +02:00
Hale Wang
24e054c8c8
Update the assembler code to support old ARM architectures.
...
* 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>
2015-06-01 12:49:37 +02:00
David Stacey
8fe35bd15f
Correct argz_replace behaviour when memory is exhausted.
...
* libc/argz/argz_replace.c (argz_replace): Correct behaviour when memory
is exhausted.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-06-01 10:09:04 +02:00
Corinna Vinschen
1aeda8a95f
Fix comment in sys/wait.h
...
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-05-28 16:40:43 +02:00
David Stacey
ca632c9015
Fix potential memory leak in argz_replace
...
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-05-27 13:30:20 +02:00
Corinna Vinschen
a7a784c774
Revert to exposing sys/select.h from sys/time.h on Cygwin
...
* libc/include/sys/time.h: Include sys/select.h on Cygwin. Explain why.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-05-02 15:09:03 +02:00
Corinna Vinschen
6109eadff5
Improve check for int32_t being long or int
...
* 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>
2015-04-29 13:07:17 +02:00
Corinna Vinschen
97a5dda2b0
Fix basename prototype collision string.h vs libgen.h
...
* 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>
2015-04-23 22:03:45 +02:00
Nick Clifton
cd0d459135
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-23 21:57:13 +02:00
Corinna Vinschen
50adb19f03
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-23 21:57:11 +02:00
Sebastian Huber
897d3a3cc4
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-23 21:57:10 +02:00
Jon TURNEY
38a8d3e216
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-23 21:57:10 +02:00
Corinna Vinschen
9b42474f29
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-23 21:57:09 +02:00
Corinna Vinschen
b3a09ae34b
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-04-23 21:57:08 +02:00
Corinna Vinschen
c117793326
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-04-23 21:57:08 +02:00
Craig Howland
382fa90fe1
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-04-23 21:57:08 +02:00
Yaakov Selkowitz
95a4fc8726
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-04-23 21:57:08 +02:00
Yaakov Selkowitz
d67052321e
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-04-23 21:57:07 +02:00
Sebastian Huber
4f3f09ad72
Import <sys/tree.h> from FreeBSD
...
* libc/include/sys/tree.h: New file.
2015-04-23 21:57:06 +02:00
Joel Sherrill
380c00f175
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-04-23 21:57:06 +02:00
Steve Ellcey
05b71d1408
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-04-23 21:57:05 +02: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