summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRalf Corsepius <ralf.corsepius@rtems.org>2011-11-16 03:22:10 +0000
committerRalf Corsepius <ralf.corsepius@rtems.org>2011-11-16 03:22:10 +0000
commit9981ef0e6b3168301f0753cd42eea3525e12b93c (patch)
tree103337925dbcdb24f9cfc15be4cca3257b8b826d
parent5c872dee16870ace257d2f704f720d8fb1f0ac72 (diff)
Housekeeping.
-rw-r--r--contrib/crossrpms/patches/newlib-1.18.0-rtems4.10-20110419.diff2799
1 files changed, 0 insertions, 2799 deletions
diff --git a/contrib/crossrpms/patches/newlib-1.18.0-rtems4.10-20110419.diff b/contrib/crossrpms/patches/newlib-1.18.0-rtems4.10-20110419.diff
deleted file mode 100644
index e4b0c90316..0000000000
--- a/contrib/crossrpms/patches/newlib-1.18.0-rtems4.10-20110419.diff
+++ /dev/null
@@ -1,2799 +0,0 @@
-diff -Naur newlib-1.18.0.orig/.gitignore newlib-1.18.0/.gitignore
---- newlib-1.18.0.orig/.gitignore 1970-01-01 01:00:00.000000000 +0100
-+++ newlib-1.18.0/.gitignore 2011-04-19 03:39:58.571184647 +0200
-@@ -0,0 +1,2 @@
-+*/Entries.Log
-+CVS
-diff -Naur newlib-1.18.0.orig/newlib/ChangeLog newlib-1.18.0/newlib/ChangeLog
---- newlib-1.18.0.orig/newlib/ChangeLog 2009-12-17 22:08:04.000000000 +0100
-+++ newlib-1.18.0/newlib/ChangeLog 2011-04-19 03:39:58.577184757 +0200
-@@ -1,3 +1,23 @@
-+2011-04-19 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/include/stdint.h: Rework SIZE_MAX.
-+ * libc/sys/rtems/include/limits.h: Rework SSIZE_MAX.
-+
-+2011-01-31 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/sys/rtems/crt0.c: Add clock_gettime, gettimeofday,
-+ sched_yield.
-+
-+2011-01-12 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libm/math/w_tgamma.c: Only build ifndef _DOUBLE_IS_32BITS.
-+ * libm/math/wf_tgamma.c: Map tgamma to tgammaf, ifdef _DOUBLE_IS_32BITS.
-+
-+2011-01-07 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/sys/rtems/crt0.c: Adjust free() and calloc() to match their
-+ public decls.
-+
- 2009-12-17 Jeff Johnston <jjohnstn@redhat.com>
-
- * NEWS: Update with 1.18.0 info.
-@@ -41,19 +61,19 @@
- * libc/stdlib/atexit.c: Ditto.
- * libc/stdlib/on_exit.c: Ditto.
-
--2009-12-17 Ralf Corsépius <ralf.corsepius@rtems.org>
-+2009-12-17 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/include/machine/ieeefp.h: Rework __IEEE_*_ENDIAN handling.
-- * libc/machine/arm/machine/endian.h: Remove (Conflicts with
-+ * libc/machine/arm/machine/endian.h: Remove (Conflicts with
- libc/include/machine/endian.h)
-
--2009-12-17 Ralf Corsépius <ralf.corsepius@rtems.org>
-+2009-12-17 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/include/machine/setjmp.h: Set up _JBLEN #ifdef __m68k__.
-
--2009-12-17 Ralf Corsepius <ralf.corsepius@rtems.org>
-+2009-12-17 Ralf Corsépius <ralf.corsepius@rtems.org>
-
-- * libc/include/pthread.h: Add pthread_atfork, pthread_rwlock_unlock
-+ * libc/include/pthread.h: Add pthread_atfork, pthread_rwlock_unlock
- * libc/include/sys/stat.h: Use struct timespec st_*tim,
- blksize_t st_blksize, blkcnt_t st_blocks.
- Add st_*time compatibility macros.
-@@ -69,23 +89,23 @@
- and ETOOMANYREFS into general list as they are referenced
- by OpenGroup and needed by RTEMS.
-
--2009-12-16 Ralf Corsépius <ralf.corsepius@rtems.org>
-+2009-12-16 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/search/hcreate.c: Don't include <sys/queue.h> (Unused).
-
--2009-12-16 Ralf Corsépius <ralf.corsepius@rtems.org>
-+2009-12-16 Ralf Corsépius <ralf.corsepius@rtems.org>
-
-- * libc/sys/rtems/machine/_types.h: New (Derived from
-+ * libc/sys/rtems/machine/_types.h: New (Derived from
- machine/_default_types.h).
-- * libc/sys/rtems/crt0.c: Rework. Introduce macro RTEMS_STUB.
-+ * libc/sys/rtems/crt0.c: Rework. Introduce macro RTEMS_STUB.
- * libc/sys/rtems/sys/param.h:
-- Update copyright notice from FreeBSD.
-- Remove HZ.
-- Add #include <sys/priority.h>
-- Remove priority handling (moved to sys/priority.h).
-- Remove CLBYTES (Unused, abandoned in BSD).
-+ Update copyright notice from FreeBSD.
-+ Remove HZ.
-+ Add #include <sys/priority.h>
-+ Remove priority handling (moved to sys/priority.h).
-+ Remove CLBYTES (Unused, abandoned in BSD).
- * libc/sys/rtems/sys/queue.h: Update copyright (from FreeBSD).
-- Remove CIRCLEQ_*.
-+ Remove CIRCLEQ_*.
-
- 2009-12-15 Conny Marco Menebrocker <c-m-m@gmx.de>
-
-@@ -1666,7 +1686,7 @@
-
- * libc/machine/arm/strcpy.c: Add missing comma.
-
--2009-02-26 Ralf Corsepius <ralf.corsepius@rtems.org>
-+2009-02-26 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/machine/lm32/configure.in: Let
- AC_CONFIG_SRCDIR point to setjmp.S instead of setjmp.s
-@@ -1852,24 +1872,24 @@
- * libc/string/wcstrings.tex: Ditto.
- * libc/string/Makefile.in: Regenerated.
-
--2008-12-12 Ralf Corsepius <ralf.corsepius@rtems.org>
-+2008-12-12 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/stdio/fputws.c: Fix documentation.
- * libc/stdio/getwchar.c: Ditto.
- * libc/stdio/putwchar.c: Ditto.
-
--2008-12-12 Ralf Corsepius <ralf.corsepius@rtems.org>
-+2008-12-12 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/include/sys/features.h: Set RTEMS's _POSIX_MONOTONIC_CLOCK to
- 200112L (SUSv3 compliance).
- Comment out RTEMS's _POSIX_SHARED_MEMORY_OBJECTS (Unsupported).
-
--2008-12-12 Ralf Corsepius <ralf.corsepius@rtems.org>
-+2008-12-12 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/sys/rtems/crt0.c: Add stubs for getdents(), nanosleep(),
- _execve(), _exit().
-
--2008-12-12 Ralf Corsepius <ralf.corsepius@rtems.org>
-+2008-12-12 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * configure.host: Let *rtems* default to c99-formats.
-
-@@ -2019,7 +2039,7 @@
- <linux/dirent.h>.
- * libc/sys/linux/io64.c: Add weak alias for _stat64.
-
--2008-11-27 Ralf Corsepius <ralf.corsepius@rtems.org>
-+2008-11-27 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/posix/telldir.c: Use #if !defined() instead of #ifndef
- to fix GCC warning.
-@@ -2191,17 +2211,17 @@
- * libc/unix/collate.c (__collate_err): simplify to remove unnecessary
- strdup() and strlen() calls, also getting rid of a compiler warning.
-
--2008-11-19 Ralf Corsepius <ralf.corsepius@rtems.org>
-+2008-11-19 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/include/sys/config.h: Don't put
- __ATTRIBUTE_IMPURE_PTR__ into .sdata section for mips-rtems.
-
--2008-11-19 Ralf Corsepius <ralf.corsepius@rtems.org>
-+2008-11-19 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/posix/runetype.h: Add include of stddef.h and remove
- defining standard types: size_t and wchar_t.
-
--2008-11-19 Ralf Corsepius <ralf.corsepius@rtems.org>
-+2008-11-19 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/include/pthread.h: Remove prototypes for
- pthread_attr_getcputime and pthread_attr_setcputime which
-@@ -4256,7 +4276,7 @@
- * libc/machine/spu/sprintf.c: Ditto.
- * libc/machine/spu/sscanf.c: Ditto.
-
--2007-08-03 Ralf Corsepius <ralf.corsepius@rtems.org>
-+2007-08-03 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/include/tar.h: New.
-
-@@ -6241,7 +6261,7 @@
- * libc/include/sys/signal.h (sigdelset, sigfillset, sigismember): New macros.
- (sigaddset, sigemptyset): Add return code.
-
--2006-04-13 Ralf Corsepius <ralf.corsepius@rtems.org>
-+2006-04-13 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * acinclude.m4: New _NEWLIB_VERSION.
- * acinclude.m4(NEWLIB_CONFIGURE): AC_REQUIRE(_NEWLIB_VERSION).
-@@ -6730,7 +6750,7 @@
- * libc/sys/linux/sys/stat.h: Change *stat64 prototypes to
- take a pointer to struct stat64 rather than struct stat.
-
--2005-12-16 Ralf Corsepius <ralf.corsepius@rtems.org>
-+2005-12-16 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/include/stdint.h: Prefer long over int for int32_t.
- Use __have_long32 to set up int32_t.
-@@ -6759,7 +6779,7 @@
- * libc/include/sys/types.h: Remove the ifdef armour around
- standard POSIX types.
-
--2005-12-06 Ralf Corsepius <ralf.corsepius@rtems.org>
-+2005-12-06 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/sys/rtems/crt0.c: Add rtems_gxx_key_create,
- rtems_gxx_key_delete, rtems_gxx_getspecific,
-@@ -6838,7 +6858,7 @@
- * libc/sys/linux/sys/unistd.h (readlink, symlink): New
- prototypes.
-
--2005-11-01 Ralf Corsepius <ralf.corsepius@rtems.org>
-+2005-11-01 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/include/stdint.h: Cleanup #if vs. #ifdef.
-
-@@ -7062,11 +7082,11 @@
- * libc/stdlib/mallocr.c (mALLOc, rEALLOCc, mEMALIGn): Set errno
- to ENOMEM on failure.
-
--2005-10-06 Ralf Corsepius <ralf.corsepius@rtems.org>
-+2005-10-06 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/include/stdint.h: Add [u]int_fast<N>_t types.
-
--2005-10-04 Ralf Corsepius <ralf.corsepius@rtems.org>
-+2005-10-04 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/include/stdint.h: Move magic to set __have_long* to the
- beginning. Use #if __have* instead of #if defined(__have*).
-@@ -7082,14 +7102,14 @@
- * libc/sys/linux/include/stdint.h: Include <sys/types.h> and
- incorporate Ralf's change below.
-
--2005-10-03 Ralf Corsepius <ralf.corsepius@rtems.org>
-+2005-10-03 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/include/stdint.h:
- Use __INTMAX_TYPE__ to derive intmax_t.
- Use __UINTMAX_TYPE__ to derive uintmax_t.
- Fix minor typo.
-
--2005-09-27 Ralf Corsepius <ralf.corsepius@rtems.org>
-+2005-09-27 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/include/stdint.h: Correct __STDINT_EXP macro incorrectly
- handling GCC >= 4.
-@@ -7425,16 +7445,16 @@
- * configure.host (newlib_cflags) <cris-*-*, crisv32-*-*>: Add
- -DCOMPACT_CTYPE.
-
--2005-03-06 Ralf Corsepious <ralf.corsepius@rtems.org>
-+2005-03-06 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/sys/rtems/include/inttypes.h: New file.
- * libc/sys/rtems/include/stdint.h: Ditto.
-
--2005-03-06 Ralf Corsepious <ralf.corsepius@rtems.org>
-+2005-03-06 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/string/memcmp.c: Fix to avoid pointer signedness warning.
-
--2005-03-06 Ralf Corsepious <ralf.corsepius@rtems.org>
-+2005-03-06 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/include/machine/_types.h: New file.
- * libc/include/sys/types.h: Do not check for __rtems__
-@@ -7443,7 +7463,7 @@
- * libc/sys/rtems/machine/_types.h: Removed. Replaced with
- shared header file.
-
--2005-02-25 Ralf Corsepious <ralf.corsepius@rtems.org>
-+2005-02-25 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libm/common/fdlibm.h (FLT_UWORD_MAX, FLT_UWORD_HALF_MAX): Add
- L qualifier for these long constants.
-@@ -7459,13 +7479,13 @@
- * libc/time/strftime.c (strftime): Fix '%x' to deal with negative
- years. Fix '%z' to use long, not int.
-
--2005-02-24 Ralf Corsepious <ralf.corsepius@rtems.org>
-+2005-02-24 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libm/common/s_fpclassify.c: Use __uint32_t instead of int to
- manipulate float values in integer form.
- * libm/common/sf_round.c: Ditto.
-
--2005-02-24 Ralf Corsepious <ralf.corsepius@rtems.org>
-+2005-02-24 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/include/sys/types.h [__rtems__]: Include new
- header file machine/_types.h.
-@@ -7829,7 +7849,7 @@
- * libc/stdio/fread.c (fread): Fix return value for unbuffered
- fread.
-
--2004-10-25 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
-+2004-10-25 Ralf Corsépius <corsepiu@faw.uni-ulm.de>
-
- * libc/include/machine/setjmp.h: Add AVR support.
- * libc/sys/rtems/crt0.S [__AVR__]: Add __stack.
-@@ -14061,7 +14081,7 @@
-
- * libc/include/sys/unistd.h: Prototype chroot() for RTEMS.
-
--2001-08-29 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
-+2001-08-29 Ralf Corsépius <corsepiu@faw.uni-ulm.de>
-
- * libc/machine/i386/f_atan2.S, libc/machine/i386/f_atan2f.S,
- libc/machine/i386/f_exp.c, libc/machine/i386/f_expf.c,
-@@ -14738,7 +14758,7 @@
- * libc/sys/linux/sys/utsname.h: Ditto.
- * libc/sys/linux/sys/wait.h: Ditto.
-
--2000-12-08 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
-+2000-12-08 Ralf Corsépius <corsepiu@faw.uni-ulm.de>
-
- * Makefile.am: $(INSTALL), $(INSTALL_DATA), and $(INSTALL_PROGRAM)
- can be a relative path to $(top_srcdir)/install.sh so ensure the
-@@ -15643,7 +15663,7 @@
- * libc/include/stdlib.h: add ptsname, grantpt, unlockpt to cygwin
- section
-
--Sat Oct 2 02:02:00 MEST 1999 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
-+Sat Oct 2 02:02:00 MEST 1999 Ralf Corsépius <corsepiu@faw.uni-ulm.de>
-
- * libc/machine/sh/asm.h: Added __SH4_SINGLE__ to DELAYED_BRANCHES
- * libc/machine/sh/memcpy.S: Fix line wrapping in SL macro
-diff -Naur newlib-1.18.0.orig/newlib/ChangeLog.rtems newlib-1.18.0/newlib/ChangeLog.rtems
---- newlib-1.18.0.orig/newlib/ChangeLog.rtems 1970-01-01 01:00:00.000000000 +0100
-+++ newlib-1.18.0/newlib/ChangeLog.rtems 2011-04-19 03:39:58.578184775 +0200
-@@ -0,0 +1,301 @@
-+2011-01-14 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libm/common/s_ilogb.c, libm/common/s_llround.c,
-+ libm/common/s_log2.c, libm/common/s_lrint.c,
-+ libm/common/s_lround.c, libm/common/s_rint.c,
-+ libm/common/sf_ilogb.c, libm/common/sf_log2.c,
-+ libm/common/sf_rint.c: Import from newlib-cvs.
-+
-+2011-01-14 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libm/common/fdlibm.h:
-+ Add SAFE_LEFT_SHIFT, SAFE_RIGHT_SHIFT from newlib-cvs.
-+
-+2011-01-07 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/stdio/open_memstream.c: Replace 64 * 1024 with 0x10000 to
-+ avoid integer overflow on h8300.
-+
-+2011-01-05 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libm/common/s_llrint.c: Back-port from newlib-cvs.
-+
-+2011-01-05 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/stdio/tmpnam.c: Include <stdint.h>.
-+ Use intptr_t instead of _POINTER_INT for improved portability.
-+ * libc/misc/__dprintf.c: Include <stdint.h>
-+ Use intptr_t instead of _POINTER_INT for improved portability.
-+
-+2011-01-05 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libm/common/s_round.c: Cast const int to __int32_t.
-+
-+2011-01-04 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * doc/makedoc.c: Add cludge to make makedoc 64bit compliant.
-+
-+2011-01-04 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libm/math/e_scalb.c: Include <limits.h>.
-+ Don't rely on 65000 being a valid int.
-+
-+2011-01-04 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/posix/readdir.c: Include <stdint.h>.
-+ Cast to intptr_t instead of int.
-+
-+2011-01-04 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/string/memccpy.c, libc/string/memchr.c,
-+ libc/string/memcmp.c, libc/string/memcpy.c,
-+ libc/string/memmove.c, libc/string/mempcpy.c,
-+ libc/string/memset.c, libc/string/stpcpy.c,
-+ libc/string/stpncpy.c, libc/string/strcpy.c,
-+ libc/string/strlen.c, libc/string/strncat.c,
-+ libc/string/strncpy.c (UNALIGNED):
-+ Include <stdint.h>.
-+ Cast to intptr_t instead of long.
-+
-+2011-01-04 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/stdio/open_memstream.c (internal_open_memstream_r):
-+ Don't limit c->max to 64*1024 on targets with SIZE_MAX < 64*1024.
-+
-+2010-10-05 Eric Blake <eblake@redhat.com>
-+
-+ memmem, strstr, strcasestr: fix bug with long periodic needle
-+ * lib/str-two-way.h (two_way_long_needle): Avoid bug with long
-+ periodic needle having false positive.
-+
-+2010-08-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
-+
-+ * libc/posix/opendir.c: Added missing memory free.
-+
-+2010-08-10 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ PR 1475/newlib:
-+ * libc/include/stdint.h: Fall back to compute SIZE_MAX based on
-+ __SIZEOF_SIZE_T__ and __CHAR_BIT__ if available.
-+
-+2010-08-04 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/string/strcat.c:
-+ Include <stdint.h>. Use uintptr_t instead of long in ALIGNED.
-+ * libc/string/strchr.c, libc/string/strcmp.c, libc/string/strncmp.c:
-+ Include <stdint.h>. Use uintptr_t instead of long in UNALIGNED.
-+ * libc/include/sys/unistd.h: Activate decls for
-+ getsid, setegid, seteuid.
-+
-+2010-07-08 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * configure.host: Add -D_COMPILING_NEWLIB to newlib_cflags.
-+ * libc/string/index.c, libc/string/rindex.c: Include <string.h>.
-+ * libc/stdlib/putenv_r.c: Include <strings.h>
-+
-+2010-07-06 Corinna Vinschen <corinna@vinschen.de>
-+
-+ * libc/posix/rewinddir.c (rewinddir): Remove incorrect cast to off_t.
-+ * libc/sys/rtems/sys/dirent.h (_seekdir): Add prototype.
-+
-+2010-06-17 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/sys/rtems/machine/_types.h: Special case for sparc64.
-+
-+2010-04-23 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/sys/rtems/machine/_types.h: Add _mode_t.
-+ * libc/include/sys/types.h: Derive mode_t from _mode_t.
-+
-+2010-04-02 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/include/sched.h, libc/include/sys/sched.h:
-+ Adopt newlib-cvs's versions.
-+
-+2010-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/include/strings.h: New (split-out from string.h).
-+ * libc/include/string.h: Remove bcmp, bcopy, bzero, ffs, index, rindex,
-+ strcasecmp, strncasecmp (Moved to strings.h).
-+ Remove strcmpi, stricmp, strncmpi, strnicmp.
-+ * libc/misc/ffs.c: Use <strings.h> instead of <string.h>.
-+ * libc/string/bcmp.c: Use <strings.h> instead of <string.h>.
-+ * libc/string/bzero.c: Use <strings.h> instead of <string.h>.
-+ * libc/string/rindex.c: Use <strings.h> instead of <string.h>.
-+ * libc/string/strcasecmp.c: Use <strings.h> instead of <string.h>.
-+ * libc/string/strcasecmp.c: Use <strings.h> instead of <string.h>.
-+
-+2010-03-23 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/sys/rtems/machine/_types.h: Add i386 to 64bit off_t targets.
-+
-+2010-03-10 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/posix/telldir.c: Adopt newlib-cvs's telldir.c
-+
-+2010-02-10 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/sys/rtems/machine/_types.h: Use __int64_t for _off_t, fpos_t for
-+ selected targets.
-+
-+2010-02-05 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/posix/telldir.c: Remove bogus nested prototype of lseek().
-+
-+2010-01-11 Sebastian Huber <sebastian.huber@embedded-brains.de>
-+
-+ * libc/posix/telldir.c (_cleanupdir): Fixed usage of freed memory.
-+
-+2009-12-18 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/search/db_local.h:
-+ Use __uint32_t instead of u_int (prototype mismatches).
-+ * libc/search/extern.h (__buf_init):
-+ Use __uint32_t instead of int (16 bit target portability).
-+ * libc/search/hash_buf.c: Use ptrdiff_t instead of __uint32_t,
-+ use __uint32_t instead of int (16 bit target portability).
-+ * libc/search/hash.h: Use __uint32_it instead of int
-+ (16 bit target portability).
-+ * libm/common/modfl.c: Add cast to (double*) to avoid GCC warning.
-+ * libm/common/sf_llrint.c, libm/common/sf_round.c: Add explicit
-+ casts to __uint32_t to avoid overflows on implicit casts.
-+
-+2009-12-18 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ Merger with newlib-1.18.0.
-+
-+2009-10-29 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/sys/rtems/machine/_types.h: Rework.
-+ * libc/sys/rtems/machine/stdint.h: Remove.
-+ * libc/include/inttypes.h:
-+ Rework logic to determine PRI*PTR.
-+ Prefer long64 over longlong64.
-+ * libc/include/machine/_default_types.h:
-+ Sync logic for __int32 with stdint.h (Prefer long over int).
-+ * libc/include/stdint.h:
-+ Remove __SPU__ hack.
-+ Prefer int for int16_t (sync with _default_types.h).
-+ Rework intptr_t determination.
-+
-+2009-10-28 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/sys/rtems/machine/_types.h: New.
-+ Add custom time for _ssize_t.
-+ * libc/stdlib/assert.c: Sync with newlib-CVS.
-+ * configure.host: Add -DHAVE_ASSERT_FUNC to newlib_cflags.
-+
-+2009-10-27 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/include/sys/pthread.h:
-+ Add pthread_atfork (Mandated by IEEE Std 1003.1-2008).
-+ Add pthread_rwlock_unlock (Formerly missing)
-+
-+2009-10-26 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/include/sys/signal.h: Sync with newlib-CVS.
-+
-+2009-10-09 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/include/sys/signal.h: Use pid_t as 1st arg to kill()
-+ (mandated by POSIX).
-+
-+2009-09-22 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/sys/rtems/sys/queue.h: Update copyright (from FreeBSD).
-+ Remove CIRCLEQ_*.
-+ * libc/search/hcreate.c: Don't include sys/queue.h.
-+
-+2009-09-18 Christopher Faylor <me+cygwin@cgf.cx>
-+
-+ * libc/include/sys/unistd.h: Declare getpagesize as returning
-+ POSIX-mandated int.
-+
-+2009-09-15 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/include/stdlib.h: Add posix_memalign.
-+
-+2009-09-11 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * configure.host (m32c): Remove -D_ABORT_PROVIDED.
-+
-+2009-09-10 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * configure.host: Add -D_NO_POPEN.
-+ * libc/sys/rtems/crt0.c: Don't provide waitpid unless used.
-+
-+2009-09-09 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * configure.host: Add -D_NO_WORDEXP.
-+
-+2009-09-06 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/sys/rtems/crt0.c: Add issetugid.
-+
-+2009-09-02 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/sys/rtems/crt0.c: Rework. Introduce macro RTEMS_STUB.
-+
-+2009-07-27 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/sys/rtems/crt0.c: Add _isatty_r.
-+
-+2009-07-06 Joel Sherrill <joel.sherrill@oarcorp.com>
-+
-+ * libc/include/sys/features.h: Define _UNIX98_THREAD_MUTEX_ATTRIBUTES.
-+
-+2009-05-05 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * configure.host: Remove -DMISSING_SYSCALL_NAMES.
-+
-+2009-03-11 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/stdlib/assert.c: Don't build __assert_func.
-+ * libc/sys/rtems/crt0.c: Add __assert_func.
-+
-+2009-03-09 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/machine/powerpc/times.c: Remove.
-+ * libc/machine/powerpc/Makefile.am: Remove times.c.
-+ * libc/machine/powerpc/Makefile.in: Regenerate.
-+
-+2009-02-24 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/unix/ttyname.c: Sync with newlib-cvs.
-+ * configure.host: Add -DHAVE_BLKSIZE to newlib_cflags.
-+
-+2009-02-22 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/sys/rtems/machine/stdint.h: Add __lm32__.
-+ * libc/machine/lm32/configure.in: Set AC_CONFIG_SRC to setjmp.S.
-+ * libc/machine/lm32/configure: Regenerate.
-+
-+2009-02-20 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/unix/Makefile.in: Regenerate.
-+
-+2009-02-20 Craig Howland <howland@LGSInnovations.com> on behalf of
-+ Sebastian Huber <sebastian.huber@embedded-brains.de>
-+
-+ * libc/unix/ttyname.c: Remove ttyname_r() (to a new file to avoid
-+ coupling ttyname_r() and ttyname() due to the latter's large buffer).
-+ * libc/unix/ttyname_r.c: New file to hold ttyname_r(), previously in
-+ ttyname.c.
-+ * libc/unix/ttyname.h: New file (common size definition for the 2
-+ ttyname*c files that are now split).
-+ * libc/unix/Makefile.am (ELIX_2_SOURCES): Add ttyname_r.c.
-+
-+2009-02-16 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/sys/rtems/sys/param.h:
-+ Update copyright notice from FreeBSD.
-+ Remove HZ.
-+ Add #include <sys/priority.h>
-+ Remove priority handling (moved to sys/priority.h).
-+ Remove CLBYTES (Unused, abandoned in BSD).
-+
-+2009-02-06 Ralf Corsépius <ralf.corsepius@rtems.org>
-+
-+ * libc/include/sched.h:
-+ Remove (collides with RTEMS's schedul.h).
-+
-diff -Naur newlib-1.18.0.orig/newlib/configure.host newlib-1.18.0/newlib/configure.host
---- newlib-1.18.0.orig/newlib/configure.host 2009-12-10 18:12:11.000000000 +0100
-+++ newlib-1.18.0/newlib/configure.host 2011-04-19 03:39:58.579184794 +0200
-@@ -556,6 +556,7 @@
- *-*-rtems*)
- default_newlib_io_long_long="yes"
- default_newlib_io_c99_formats="yes"
-+ newlib_cflags="${newlib_cflags} -D_COMPILING_NEWLIB"
- newlib_cflags="${newlib_cflags} -DMALLOC_PROVIDED -DEXIT_PROVIDED -DSIGNAL_PROVIDED -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_NANOSLEEP -DHAVE_BLKSIZE -DHAVE_FCNTL -DHAVE_ASSERT_FUNC"
- # turn off unsupported items in posix directory
- newlib_cflags="${newlib_cflags} -D_NO_GETLOGIN -D_NO_GETPWENT -D_NO_GETUT -D_NO_GETPASS -D_NO_SIGSET -D_NO_WORDEXP -D_NO_POPEN"
-diff -Naur newlib-1.18.0.orig/newlib/doc/makedoc.c newlib-1.18.0/newlib/doc/makedoc.c
---- newlib-1.18.0.orig/newlib/doc/makedoc.c 2009-03-25 22:16:04.000000000 +0100
-+++ newlib-1.18.0/newlib/doc/makedoc.c 2011-04-19 03:39:58.579184794 +0200
-@@ -57,7 +57,7 @@
- {
- char *ptr;
- unsigned int write_idx;
-- unsigned int size;
-+ size_t size;
- } string_type;
-
-
-@@ -68,7 +68,7 @@
-
- static void DEFUN(init_string_with_size,(buffer, size),
- string_type *buffer AND
-- unsigned int size )
-+ size_t size )
- {
- buffer->write_idx = 0;
- buffer->size = size;
-@@ -219,8 +219,8 @@
- stinst_type *pc;
- stinst_type sstack[STACK];
- stinst_type *ssp = &sstack[0];
--int istack[STACK];
--int *isp = &istack[0];
-+long istack[STACK];
-+long *isp = &istack[0];
-
- typedef int *word_type;
-
-@@ -270,7 +270,7 @@
- {
- isp++;
- pc++;
-- *isp = (int)(*pc);
-+ *isp = (long)(*pc);
- pc++;
-
- }
-diff -Naur newlib-1.18.0.orig/newlib/libc/include/inttypes.h newlib-1.18.0/newlib/libc/include/inttypes.h
---- newlib-1.18.0.orig/newlib/libc/include/inttypes.h 2009-01-19 23:02:06.000000000 +0100
-+++ newlib-1.18.0/newlib/libc/include/inttypes.h 2011-04-19 03:39:58.579184794 +0200
-@@ -242,15 +242,17 @@
- #define SCNxMAX __SCNMAX(x)
-
- /* ptr types */
--#if __have_long64
--#define __PRIPTR(x) __STRINGIFY(l##x)
--#define __SCNPTR(x) __STRINGIFY(l##x)
--#elif __have_longlong64
--#define __PRIPTR(x) __STRINGIFY(ll##x)
--#define __SCNPTR(x) __STRINGIFY(ll##x)
-+#if INTPTR_MAX == INT64_MAX
-+#define __PRIPTR(x) __PRI64(x)
-+#define __SCNPTR(x) __SCN64(x)
-+#elif INTPTR_MAX == INT32_MAX
-+#define __PRIPTR(x) __PRI32(x)
-+#define __SCNPTR(x) __SCN32(x)
-+#elif INTPTR_MAX == INT16_MAX
-+#define __PRIPTR(x) __PRI16(x)
-+#define __SCNPTR(x) __SCN16(x)
- #else
--#define __PRIPTR(x) __STRINGIFY(x)
--#define __SCNPTR(x) __STRINGIFY(x)
-+#error cannot determine PRI*PTR
- #endif
-
- #define PRIdPTR __PRIPTR(d)
-diff -Naur newlib-1.18.0.orig/newlib/libc/include/machine/_default_types.h newlib-1.18.0/newlib/libc/include/machine/_default_types.h
---- newlib-1.18.0.orig/newlib/libc/include/machine/_default_types.h 2008-06-12 00:14:54.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/include/machine/_default_types.h 2011-04-19 03:39:58.580184813 +0200
-@@ -54,14 +54,14 @@
- #endif
- #endif
-
--#if __EXP(INT_MAX) == 0x7fffffffL
--typedef signed int __int32_t;
--typedef unsigned int __uint32_t;
--#define ___int32_t_defined 1
--#elif __EXP(LONG_MAX) == 0x7fffffffL
-+#if __EXP(LONG_MAX) == 0x7fffffffL
- typedef signed long __int32_t;
- typedef unsigned long __uint32_t;
- #define ___int32_t_defined 1
-+#elif __EXP(INT_MAX) == 0x7fffffffL
-+typedef signed int __int32_t;
-+typedef unsigned int __uint32_t;
-+#define ___int32_t_defined 1
- #elif __EXP(SHRT_MAX) == 0x7fffffffL
- typedef signed short __int32_t;
- typedef unsigned short __uint32_t;
-diff -Naur newlib-1.18.0.orig/newlib/libc/include/sched.h newlib-1.18.0/newlib/libc/include/sched.h
---- newlib-1.18.0.orig/newlib/libc/include/sched.h 2007-09-21 23:02:15.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/include/sched.h 2011-04-19 03:39:58.580184813 +0200
-@@ -1,11 +1,94 @@
-+/*
-+ * Written by Joel Sherrill <joel@OARcorp.com>.
-+ *
-+ * COPYRIGHT (c) 1989-2010.
-+ * On-Line Applications Research Corporation (OAR).
-+ *
-+ * Permission to use, copy, modify, and distribute this software for any
-+ * purpose without fee is hereby granted, provided that this entire notice
-+ * is included in all copies of any software which is or includes a copy
-+ * or modification of this software.
-+ *
-+ * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
-+ * WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION
-+ * OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS
-+ * SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
-+ *
-+ * $Id$
-+ */
-+
- #ifndef _SCHED_H_
- #define _SCHED_H_
-
-+#include <sys/types.h>
-+#include <sys/sched.h>
-+
- #ifdef __cplusplus
- extern "C" {
- #endif
-
--#include <sys/sched.h>
-+#if defined(_POSIX_PRIORITY_SCHEDULING)
-+/*
-+ * XBD 13 - Set Scheduling Parameters, P1003.1b-2008, p. 1803
-+ */
-+int sched_setparam(
-+ pid_t __pid,
-+ const struct sched_param *__param
-+);
-+
-+/*
-+ * XBD 13 - Set Scheduling Parameters, P1003.1b-2008, p. 1800
-+ */
-+int sched_getparam(
-+ pid_t __pid,
-+ struct sched_param *__param
-+);
-+
-+/*
-+ * XBD 13 - Set Scheduling Policy and Scheduling Parameters,
-+ * P1003.1b-2008, p. 1805
-+ */
-+int sched_setscheduler(
-+ pid_t __pid,
-+ int __policy,
-+ const struct sched_param *__param
-+);
-+
-+/*
-+ * XBD 13 - Get Scheduling Policy, P1003.1b-2008, p. 1801
-+ */
-+int sched_getscheduler(
-+ pid_t __pid
-+);
-+
-+/*
-+ * XBD 13 - Get Scheduling Parameter Limits, P1003.1b-2008, p. 1799
-+ */
-+int sched_get_priority_max(
-+ int __policy
-+);
-+
-+int sched_get_priority_min(
-+ int __policy
-+);
-+
-+/*
-+ * XBD 13 - Get Scheduling Parameter Limits, P1003.1b-2008, p. 1802
-+ */
-+int sched_rr_get_interval(
-+ pid_t __pid,
-+ struct timespec *__interval
-+);
-+#endif /* _POSIX_PRIORITY_SCHEDULING */
-+
-+#if defined(_POSIX_THREADS) || defined(_POSIX_PRIORITY_SCHEDULING)
-+
-+/*
-+ * XBD 13 - Yield Processor, P1003.1b-2008, p. 1807
-+ */
-+int sched_yield( void );
-+
-+#endif /* _POSIX_THREADS or _POSIX_PRIORITY_SCHEDULING */
-
- #ifdef __cplusplus
- }
-diff -Naur newlib-1.18.0.orig/newlib/libc/include/stdint.h newlib-1.18.0/newlib/libc/include/stdint.h
---- newlib-1.18.0.orig/newlib/libc/include/stdint.h 2009-04-24 23:55:07.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/include/stdint.h 2011-04-19 03:39:58.580184813 +0200
-@@ -33,7 +33,7 @@
- /* Check if "long" is 64bit or 32bit wide */
- #if __STDINT_EXP(LONG_MAX) > 0x7fffffff
- #define __have_long64 1
--#elif __STDINT_EXP(LONG_MAX) == 0x7fffffff && !defined(__SPU__)
-+#elif __STDINT_EXP(LONG_MAX) == 0x7fffffff
- #define __have_long32 1
- #endif
-
-@@ -49,14 +49,14 @@
- #define __int_least8_t_defined 1
- #endif
-
--#if __STDINT_EXP(SHRT_MAX) == 0x7fff
--typedef signed short int16_t;
--typedef unsigned short uint16_t;
--#define __int16_t_defined 1
--#elif __STDINT_EXP(INT_MAX) == 0x7fff
-+#if __STDINT_EXP(INT_MAX) == 0x7fff
- typedef signed int int16_t;
- typedef unsigned int uint16_t;
- #define __int16_t_defined 1
-+#elif __STDINT_EXP(SHRT_MAX) == 0x7fff
-+typedef signed short int16_t;
-+typedef unsigned short uint16_t;
-+#define __int16_t_defined 1
- #elif __STDINT_EXP(SCHAR_MAX) == 0x7fff
- typedef signed char int16_t;
- typedef unsigned char uint16_t;
-@@ -239,6 +239,29 @@
- * GCC doesn't provide an appropriate macro for [u]intptr_t
- * For now, use __PTRDIFF_TYPE__
- */
-+#if defined(__SIZEOF_POINTER__)
-+#if __SIZEOF_POINTER__ == 8
-+ typedef int64_t intptr_t;
-+ typedef uint64_t uintptr_t;
-+#define INTPTR_MAX INT64_MAX
-+#define INTPTR_MIN INT64_MIN
-+#define UINTPTR_MAX UINT64_MAX
-+#elif __SIZEOF_POINTER__ == 4
-+ typedef int32_t intptr_t;
-+ typedef uint32_t uintptr_t;
-+#define INTPTR_MAX INT32_MAX
-+#define INTPTR_MIN INT32_MIN
-+#define UINTPTR_MAX UINT32_MAX
-+#elif __SIZEOF_POINTER__ == 2
-+ typedef int16_t intptr_t;
-+ typedef uint16_t uintptr_t;
-+#define INTPTR_MAX INT16_MAX
-+#define INTPTR_MIN INT16_MIN
-+#define UINTPTR_MAX UINT16_MAX
-+#else
-+#error cannot determine intptr_t
-+#endif
-+#else
- #if defined(__PTRDIFF_TYPE__)
- typedef signed __PTRDIFF_TYPE__ intptr_t;
- typedef unsigned __PTRDIFF_TYPE__ uintptr_t;
-@@ -260,6 +283,7 @@
- #define INTPTR_MIN (-__STDINT_EXP(LONG_MAX) - 1)
- #define UINTPTR_MAX (__STDINT_EXP(LONG_MAX) * 2UL + 1)
- #endif
-+#endif
-
- /* Limits of Specified-Width Integer Types */
-
-@@ -408,6 +432,8 @@
- /* This must match size_t in stddef.h, currently long unsigned int */
- #ifdef __SIZE_MAX__
- #define SIZE_MAX __SIZE_MAX__
-+#elif defined(__SIZEOF_SIZE_T__) && defined(__CHAR_BIT__)
-+#define SIZE_MAX (((1UL << (__SIZEOF_SIZE_T__ * __CHAR_BIT__ - 1)) - 1) * 2 + 1)
- #else
- #define SIZE_MAX (__STDINT_EXP(LONG_MAX) * 2UL + 1)
- #endif
-diff -Naur newlib-1.18.0.orig/newlib/libc/include/string.h newlib-1.18.0/newlib/libc/include/string.h
---- newlib-1.18.0.orig/newlib/libc/include/string.h 2008-06-18 17:27:27.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/include/string.h 2011-04-19 03:39:58.580184813 +0200
-@@ -49,18 +49,11 @@
- #ifndef __STRICT_ANSI__
- char *_EXFUN(strtok_r,(char *, const char *, char **));
-
--int _EXFUN(bcmp,(const void *, const void *, size_t));
--void _EXFUN(bcopy,(const void *, void *, size_t));
--void _EXFUN(bzero,(void *, size_t));
--int _EXFUN(ffs,(int));
--char *_EXFUN(index,(const char *, int));
- _PTR _EXFUN(memccpy,(_PTR, const _PTR, int, size_t));
- _PTR _EXFUN(mempcpy,(_PTR, const _PTR, size_t));
- _PTR _EXFUN(memmem, (const _PTR, size_t, const _PTR, size_t));
--char *_EXFUN(rindex,(const char *, int));
- char *_EXFUN(stpcpy,(char *, const char *));
- char *_EXFUN(stpncpy,(char *, const char *, size_t));
--int _EXFUN(strcasecmp,(const char *, const char *));
- char *_EXFUN(strcasestr,(const char *, const char *));
- char *_EXFUN(strdup,(const char *));
- char *_EXFUN(_strdup_r,(struct _reent *, const char *));
-@@ -69,7 +62,6 @@
- char *_EXFUN(strerror_r,(int, char *, size_t));
- size_t _EXFUN(strlcat,(char *, const char *, size_t));
- size_t _EXFUN(strlcpy,(char *, const char *, size_t));
--int _EXFUN(strncasecmp,(const char *, const char *, size_t));
- size_t _EXFUN(strnlen,(const char *, size_t));
- char *_EXFUN(strsep,(char **, const char *));
- char *_EXFUN(strlwr,(char *));
-@@ -81,20 +73,6 @@
- int _EXFUN(strtosigno, (const char *__name));
- #endif
-
--/* These function names are used on Windows and perhaps other systems. */
--#ifndef strcmpi
--#define strcmpi strcasecmp
--#endif
--#ifndef stricmp
--#define stricmp strcasecmp
--#endif
--#ifndef strncmpi
--#define strncmpi strncasecmp
--#endif
--#ifndef strnicmp
--#define strnicmp strncasecmp
--#endif
--
- #endif /* ! __STRICT_ANSI__ */
-
- #include <sys/string.h>
-diff -Naur newlib-1.18.0.orig/newlib/libc/include/strings.h newlib-1.18.0/newlib/libc/include/strings.h
---- newlib-1.18.0.orig/newlib/libc/include/strings.h 1970-01-01 01:00:00.000000000 +0100
-+++ newlib-1.18.0/newlib/libc/include/strings.h 2011-04-19 03:39:58.580184813 +0200
-@@ -0,0 +1,44 @@
-+/*
-+ * strings.h
-+ *
-+ * Definitions for string operations.
-+ */
-+
-+#ifndef _STRINGS_H_
-+#define _STRINGS_H_
-+
-+#include "_ansi.h"
-+#include <sys/reent.h>
-+
-+#include <sys/types.h> /* for size_t */
-+#include <locale.h> /* for locale_t */
-+
-+_BEGIN_STD_C
-+
-+#ifndef __STRICT_ANSI__
-+/*
-+ * Marked LEGACY in Open Group Base Specifications Issue 6/IEEE Std 1003.1-2004
-+ * Removed from Open Group Base Specifications Issue 7/IEEE Std 1003.1-2008
-+ */
-+int _EXFUN(bcmp,(const void *, const void *, size_t));
-+void _EXFUN(bcopy,(const void *, void *, size_t));
-+void _EXFUN(bzero,(void *, size_t));
-+char *_EXFUN(index,(const char *, int));
-+char *_EXFUN(rindex,(const char *, int));
-+#endif /* ! __STRICT_ANSI__ */
-+
-+int _EXFUN(ffs,(int));
-+int _EXFUN(strcasecmp,(const char *, const char *));
-+#if 0
-+/* Not implemented */
-+int _EXFUN(strcasecmp_l,(const char *, const char *, locale_t));
-+#endif
-+int _EXFUN(strncasecmp,(const char *, const char *, size_t));
-+#if 0
-+/* Not implemented */
-+int _EXFUN(strncasecmp_l,(const char *, const char *, size_t, locale_t));
-+#endif
-+
-+_END_STD_C
-+
-+#endif /* _STRINGS_H_ */
-diff -Naur newlib-1.18.0.orig/newlib/libc/include/sys/features.h newlib-1.18.0/newlib/libc/include/sys/features.h
---- newlib-1.18.0.orig/newlib/libc/include/sys/features.h 2009-07-06 20:59:04.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/include/sys/features.h 2011-04-19 03:39:58.580184813 +0200
-@@ -33,7 +33,7 @@
- #define _POSIX_VERSION 199309L
- #define _POSIX_ASYNCHRONOUS_IO 1
- #define _POSIX_FSYNC 1
--#define _POSIX_MAPPED_FILES 1
-+/* #define _POSIX_MAPPED_FILES 1 */
- #define _POSIX_MEMLOCK 1
- #define _POSIX_MEMLOCK_RANGE 1
- #define _POSIX_MEMORY_PROTECTION 1
-diff -Naur newlib-1.18.0.orig/newlib/libc/include/sys/sched.h newlib-1.18.0/newlib/libc/include/sys/sched.h
---- newlib-1.18.0.orig/newlib/libc/include/sys/sched.h 2002-06-20 21:51:24.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/include/sys/sched.h 2011-04-19 03:39:58.581184832 +0200
-@@ -1,7 +1,7 @@
- /*
- * Written by Joel Sherrill <joel@OARcorp.com>.
- *
-- * COPYRIGHT (c) 1989-2000.
-+ * COPYRIGHT (c) 1989-2010.
- * On-Line Applications Research Corporation (OAR).
- *
- * Permission to use, copy, modify, and distribute this software for any
-@@ -14,51 +14,53 @@
- * OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS
- * SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
- *
-- * $Id$
-+ * $Id$
- */
-
-
--#ifndef __POSIX_SYS_SCHEDULING_h
--#define __POSIX_SYS_SCHEDULING_h
-+#ifndef _SYS_SCHED_H_
-+#define _SYS_SCHED_H_
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
--#include <sys/unistd.h>
--
--#include <sys/types.h>
--#include <sys/time.h>
--
--/* Scheduling Policies, P1003.1b-1993, p. 250
-- NOTE: SCHED_SPORADIC added by P1003.4b/D8, p. 34. */
--
-+/* Scheduling Policies */
-+/* Open Group Specifications Issue 6 */
-+#if defined(__CYGWIN__)
-+#define SCHED_OTHER 3
-+#else
- #define SCHED_OTHER 0
-+#endif
-+
- #define SCHED_FIFO 1
- #define SCHED_RR 2
-
- #if defined(_POSIX_SPORADIC_SERVER)
--#define SCHED_SPORADIC 3
-+#define SCHED_SPORADIC 4
- #endif
-
--/* Scheduling Parameters, P1003.1b-1993, p. 249
-- NOTE: Fields whose name begins with "ss_" added by P1003.4b/D8, p. 33. */
-+/* Scheduling Parameters */
-+/* Open Group Specifications Issue 6 */
-
- struct sched_param {
- int sched_priority; /* Process execution scheduling priority */
-
--#if defined(_POSIX_SPORADIC_SERVER)
-- int ss_low_priority; /* Low scheduling priority for sporadic */
-+#if defined(_POSIX_SPORADIC_SERVER) || defined(_POSIX_THREAD_SPORADIC_SERVER)
-+ int sched_ss_low_priority; /* Low scheduling priority for sporadic */
- /* server */
-- struct timespec ss_replenish_period;
-+ struct timespec sched_ss_repl_period;
- /* Replenishment period for sporadic server */
-- struct timespec ss_initial_budget; /* Initial budget for sporadic server */
-+ struct timespec sched_ss_init_budget;
-+ /* Initial budget for sporadic server */
-+ int sched_ss_max_repl; /* Maximum pending replenishments for */
-+ /* sporadic server */
- #endif
- };
-
- #ifdef __cplusplus
- }
--#endif
-+#endif
-
- #endif
- /* end of include file */
-diff -Naur newlib-1.18.0.orig/newlib/libc/include/sys/types.h newlib-1.18.0/newlib/libc/include/sys/types.h
---- newlib-1.18.0.orig/newlib/libc/include/sys/types.h 2009-09-28 18:42:21.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/include/sys/types.h 2011-04-19 03:39:58.581184832 +0200
-@@ -176,7 +176,11 @@
- #endif
- typedef _ssize_t ssize_t;
-
--#ifndef __CYGWIN__
-+#if defined(__rtems__)
-+typedef _mode_t mode_t;
-+#endif
-+
-+#if !defined(__CYGWIN__) && !defined(__rtems__)
- #ifdef __MS_types__
- typedef char * addr_t;
- typedef int mode_t;
-diff -Naur newlib-1.18.0.orig/newlib/libc/machine/powerpc/Makefile.am newlib-1.18.0/newlib/libc/machine/powerpc/Makefile.am
---- newlib-1.18.0.orig/newlib/libc/machine/powerpc/Makefile.am 2007-05-24 19:33:35.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/machine/powerpc/Makefile.am 2011-04-19 03:39:58.581184832 +0200
-@@ -10,7 +10,7 @@
-
- AM_CFLAGS = -I $(srcdir)/../../stdio -I $(srcdir)/../../stdlib
-
--lib_a_SOURCES = setjmp.S times.c
-+lib_a_SOURCES = setjmp.S
- lib_a_CCASFLAGS=$(AM_CCASFLAGS)
- lib_a_CFLAGS=$(AM_CFLAGS)
- lib_a_LIBADD = @extra_objs@
-diff -Naur newlib-1.18.0.orig/newlib/libc/machine/powerpc/Makefile.in newlib-1.18.0/newlib/libc/machine/powerpc/Makefile.in
---- newlib-1.18.0.orig/newlib/libc/machine/powerpc/Makefile.in 2009-10-21 00:44:03.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/machine/powerpc/Makefile.in 2011-04-19 03:39:58.581184832 +0200
-@@ -51,7 +51,7 @@
- LIBRARIES = $(noinst_LIBRARIES)
- ARFLAGS = cru
- lib_a_AR = $(AR) $(ARFLAGS)
--am_lib_a_OBJECTS = lib_a-setjmp.$(OBJEXT) lib_a-times.$(OBJEXT)
-+am_lib_a_OBJECTS = lib_a-setjmp.$(OBJEXT)
- lib_a_OBJECTS = $(am_lib_a_OBJECTS)
- DEFAULT_INCLUDES = -I.@am__isrc@
- depcomp =
-@@ -173,7 +173,7 @@
- AM_CCASFLAGS = $(INCLUDES)
- noinst_LIBRARIES = lib.a
- AM_CFLAGS = -I $(srcdir)/../../stdio -I $(srcdir)/../../stdlib
--lib_a_SOURCES = setjmp.S times.c
-+lib_a_SOURCES = setjmp.S
- lib_a_CCASFLAGS = $(AM_CCASFLAGS)
- lib_a_CFLAGS = $(AM_CFLAGS)
- lib_a_LIBADD = @extra_objs@
-@@ -184,7 +184,7 @@
- all: all-am
-
- .SUFFIXES:
--.SUFFIXES: .S .c .o .obj
-+.SUFFIXES: .S .o .obj
- am--refresh:
- @:
- $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
-@@ -245,18 +245,6 @@
- lib_a-setjmp.obj: setjmp.S
- $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-setjmp.obj `if test -f 'setjmp.S'; then $(CYGPATH_W) 'setjmp.S'; else $(CYGPATH_W) '$(srcdir)/setjmp.S'; fi`
-
--.c.o:
-- $(COMPILE) -c $<
--
--.c.obj:
-- $(COMPILE) -c `$(CYGPATH_W) '$<'`
--
--lib_a-times.o: times.c
-- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-times.o `test -f 'times.c' || echo '$(srcdir)/'`times.c
--
--lib_a-times.obj: times.c
-- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-times.obj `if test -f 'times.c'; then $(CYGPATH_W) 'times.c'; else $(CYGPATH_W) '$(srcdir)/times.c'; fi`
--
- ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
-diff -Naur newlib-1.18.0.orig/newlib/libc/machine/powerpc/times.c newlib-1.18.0/newlib/libc/machine/powerpc/times.c
---- newlib-1.18.0.orig/newlib/libc/machine/powerpc/times.c 2002-07-22 22:26:51.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/machine/powerpc/times.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,36 +0,0 @@
--/* Time support routines for PowerPC.
-- *
-- * Written by Aldy Hernandez.
-- */
--
--#include <_ansi.h>
--#include <reent.h>
--#include <sys/time.h>
--#include <sys/times.h>
--#include <sys/resource.h>
--
--clock_t
--times (struct tms *tp)
--{
-- struct rusage usage;
-- union {
-- struct rusage r;
-- /* Newlib's rusage has only 2 fields. We need to make room for
-- when we call the system's rusage. This should be enough. */
-- int filler[32];
-- } host_ru;
--
-- getrusage (RUSAGE_SELF, (void *)&host_ru);
--
-- if (tp)
-- {
-- tp->tms_utime = host_ru.r.ru_utime.tv_sec * 1000
-- + host_ru.r.ru_utime.tv_usec;
-- tp->tms_stime = host_ru.r.ru_stime.tv_sec * 1000
-- + host_ru.r.ru_stime.tv_usec;
-- tp->tms_cutime = 0; /* user time, children */
-- tp->tms_cstime = 0; /* system time, children */
-- }
--
-- return tp->tms_utime;
--}
-diff -Naur newlib-1.18.0.orig/newlib/libc/misc/__dprintf.c newlib-1.18.0/newlib/libc/misc/__dprintf.c
---- newlib-1.18.0.orig/newlib/libc/misc/__dprintf.c 2008-12-11 18:27:55.000000000 +0100
-+++ newlib-1.18.0/newlib/libc/misc/__dprintf.c 2011-04-19 03:39:58.585184904 +0200
-@@ -5,6 +5,7 @@
- */
-
- #include <_ansi.h>
-+#include <stdint.h>
- #include "ctype.h"
- #include "reent.h"
- #include "string.h"
-@@ -131,7 +132,7 @@
- write_string (unctrl (c));
- break;
- case 'p' :
-- l = (_POINTER_INT) va_arg (args, char *);
-+ l = (intptr_t) va_arg (args, char *);
- print_number (16, 1, l);
- break;
- case 'd' :
-diff -Naur newlib-1.18.0.orig/newlib/libc/misc/ffs.c newlib-1.18.0/newlib/libc/misc/ffs.c
---- newlib-1.18.0.orig/newlib/libc/misc/ffs.c 2003-06-06 21:57:51.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/misc/ffs.c 2011-04-19 03:39:58.585184904 +0200
-@@ -24,7 +24,7 @@
-
- No supporting OS subroutines are required. */
-
--#include <_ansi.h>
-+#include <strings.h>
-
- int
- _DEFUN(ffs, (word),
-diff -Naur newlib-1.18.0.orig/newlib/libc/posix/opendir.c newlib-1.18.0/newlib/libc/posix/opendir.c
---- newlib-1.18.0.orig/newlib/libc/posix/opendir.c 2003-06-06 21:57:51.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/posix/opendir.c 2011-04-19 03:39:58.585184904 +0200
-@@ -74,6 +74,7 @@
- dirp->dd_len = 512;
-
- if (dirp->dd_buf == NULL) {
-+ free(dirp);
- close (fd);
- return NULL;
- }
-diff -Naur newlib-1.18.0.orig/newlib/libc/posix/readdir.c newlib-1.18.0/newlib/libc/posix/readdir.c
---- newlib-1.18.0.orig/newlib/libc/posix/readdir.c 2003-06-06 21:57:51.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/posix/readdir.c 2011-04-19 03:39:58.585184904 +0200
-@@ -37,6 +37,7 @@
- static char sccsid[] = "@(#)readdir.c 5.7 (Berkeley) 6/1/90";
- #endif /* LIBC_SCCS and not lint */
-
-+#include <stdint.h>
- #include <dirent.h>
-
- extern int getdents (int fd, void *dp, int count);
-@@ -75,7 +76,7 @@
- continue;
- }
- dp = (struct dirent *)(dirp->dd_buf + dirp->dd_loc);
-- if ((int)dp & 03) { /* bogus pointer check */
-+ if ((intptr_t)dp & 03) { /* bogus pointer check */
- #ifdef HAVE_DD_LOCK
- __lock_release_recursive(dirp->dd_lock);
- #endif
-diff -Naur newlib-1.18.0.orig/newlib/libc/posix/rewinddir.c newlib-1.18.0/newlib/libc/posix/rewinddir.c
---- newlib-1.18.0.orig/newlib/libc/posix/rewinddir.c 2003-06-06 21:57:51.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/posix/rewinddir.c 2011-04-19 03:39:58.585184904 +0200
-@@ -48,7 +48,7 @@
- #ifdef HAVE_DD_LOCK
- __lock_acquire_recursive(dirp->dd_lock);
- #endif
-- _seekdir((dirp), (off_t)0);
-+ _seekdir((dirp), 0L);
- #ifdef HAVE_DD_LOCK
- __lock_release_recursive(dirp->dd_lock);
- #endif
-diff -Naur newlib-1.18.0.orig/newlib/libc/posix/telldir.c newlib-1.18.0/newlib/libc/posix/telldir.c
---- newlib-1.18.0.orig/newlib/libc/posix/telldir.c 2008-11-27 22:01:40.000000000 +0100
-+++ newlib-1.18.0/newlib/libc/posix/telldir.c 2011-04-19 03:39:58.586184923 +0200
-@@ -67,7 +67,7 @@
- #define NDIRHASH 32 /* Num of hash lists, must be a power of 2 */
- #define LOCHASH(i) ((i)&(NDIRHASH-1))
-
--static long dd_loccnt; /* Index of entry for sequential readdir's */
-+static long dd_loccnt = 1; /* Index of entry for sequential readdir's */
- static struct ddloc *dd_hash[NDIRHASH]; /* Hash list heads for ddlocs */
- __LOCK_INIT(static, dd_hash_lock);
-
-@@ -119,40 +119,46 @@
- register struct ddloc *lp;
- register struct ddloc **prevlp;
- struct dirent *dp;
-- extern long lseek();
-
- #ifdef HAVE_DD_LOCK
- __lock_acquire(dd_hash_lock);
- #endif
-- prevlp = &dd_hash[LOCHASH(loc)];
-- lp = *prevlp;
-- while (lp != NULL) {
-- if (lp->loc_index == loc)
-- break;
-- prevlp = &lp->loc_next;
-- lp = lp->loc_next;
-- }
-- if (lp == NULL) {
-+ if (loc != 0) {
-+ prevlp = &dd_hash[LOCHASH(loc)];
-+ lp = *prevlp;
-+ while (lp != NULL) {
-+ if (lp->loc_index == loc)
-+ break;
-+ prevlp = &lp->loc_next;
-+ lp = lp->loc_next;
-+ }
-+ if (lp == NULL) {
- #ifdef HAVE_DD_LOCK
-- __lock_release(dd_hash_lock);
-+ __lock_release(dd_hash_lock);
- #endif
-- return;
-- }
-- if (lp->loc_loc == dirp->dd_loc && lp->loc_seek == dirp->dd_seek)
-- goto found;
-- (void) lseek(dirp->dd_fd, lp->loc_seek, 0);
-- dirp->dd_seek = lp->loc_seek;
-- dirp->dd_loc = 0;
-- while (dirp->dd_loc < lp->loc_loc) {
-- dp = readdir(dirp);
-- if (dp == NULL)
-- break;
-- }
-+ return;
-+ }
-+ if (lp->loc_loc == dirp->dd_loc && lp->loc_seek == dirp->dd_seek)
-+ goto found;
-+ (void) lseek(dirp->dd_fd, lp->loc_seek, 0);
-+ dirp->dd_seek = lp->loc_seek;
-+ dirp->dd_loc = 0;
-+ while (dirp->dd_loc < lp->loc_loc) {
-+ dp = readdir(dirp);
-+ if (dp == NULL)
-+ break;
-+ }
- found:
- #ifdef SINGLEUSE
-- *prevlp = lp->loc_next;
-- free((caddr_t)lp);
-+ *prevlp = lp->loc_next;
-+ free((caddr_t)lp);
- #endif
-+ } else {
-+ // loc 0 means rewinding
-+ (void) lseek(dirp->dd_fd, 0, 0);
-+ dirp->dd_seek = 0;
-+ dirp->dd_loc = 0;
-+ }
- #ifdef HAVE_DD_LOCK
- __lock_release(dd_hash_lock);
- #endif
-@@ -169,26 +175,26 @@
- __lock_acquire(dd_hash_lock);
- #endif
- for (i = 0; i < NDIRHASH; ++i) {
-+ struct ddloc head;
- register struct ddloc *lp;
- register struct ddloc *prevlp;
-+
- lp = dd_hash[i];
-- while (lp != NULL && lp->loc_dirp == dirp) {
-- dd_hash[i] = lp->loc_next;
-- prevlp = lp;
-- free((caddr_t)lp);
-- lp = prevlp->loc_next;
-- }
-- prevlp = lp;
-+ head.loc_next = lp;
-+ prevlp = &head;
- while (lp != NULL) {
-- lp = lp->loc_next;
-- if (lp != NULL && lp->loc_dirp == dirp) {
-- prevlp->loc_next = lp->loc_next;
-+ struct ddloc *nextlp;
-+
-+ nextlp = lp->loc_next;
-+ if (lp->loc_dirp == dirp) {
-+ prevlp->loc_next = nextlp;
- free((caddr_t)lp);
-- lp = prevlp;
- }
- else
- prevlp = lp;
-+ lp = nextlp;
- }
-+ dd_hash[i] = head.loc_next;
- }
- #ifdef HAVE_DD_LOCK
- __lock_release(dd_hash_lock);
-diff -Naur newlib-1.18.0.orig/newlib/libc/search/db_local.h newlib-1.18.0/newlib/libc/search/db_local.h
---- newlib-1.18.0.orig/newlib/libc/search/db_local.h 2002-06-25 01:05:08.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/search/db_local.h 2011-04-19 03:39:58.586184923 +0200
-@@ -102,11 +102,11 @@
- typedef struct __db {
- DBTYPE type; /* Underlying db type. */
- int (*close)(struct __db *);
-- int (*del)(const struct __db *, const DBT *, u_int);
-- int (*get)(const struct __db *, const DBT *, DBT *, u_int);
-- int (*put)(const struct __db *, DBT *, const DBT *, u_int);
-- int (*seq)(const struct __db *, DBT *, DBT *, u_int);
-- int (*sync)(const struct __db *, u_int);
-+ int (*del)(const struct __db *, const DBT *, __uint32_t);
-+ int (*get)(const struct __db *, const DBT *, DBT *, __uint32_t);
-+ int (*put)(const struct __db *, DBT *, const DBT *, __uint32_t);
-+ int (*seq)(const struct __db *, DBT *, DBT *, __uint32_t);
-+ int (*sync)(const struct __db *, __uint32_t);
- void *internal; /* Access method private. */
- int (*fd)(const struct __db *);
- } DB;
-diff -Naur newlib-1.18.0.orig/newlib/libc/search/extern.h newlib-1.18.0/newlib/libc/search/extern.h
---- newlib-1.18.0.orig/newlib/libc/search/extern.h 2002-06-20 21:51:31.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/search/extern.h 2011-04-19 03:39:58.586184923 +0200
-@@ -43,7 +43,7 @@
- int __big_split(HTAB *, BUFHEAD *, BUFHEAD *, BUFHEAD *,
- int, __uint32_t, SPLIT_RETURN *);
- int __buf_free(HTAB *, int, int);
--void __buf_init(HTAB *, int);
-+void __buf_init(HTAB *, __uint32_t);
- __uint32_t __call_hash(HTAB *, char *, int);
- int __delpair(HTAB *, BUFHEAD *, int);
- int __expand_table(HTAB *);
-diff -Naur newlib-1.18.0.orig/newlib/libc/search/hash_buf.c newlib-1.18.0/newlib/libc/search/hash_buf.c
---- newlib-1.18.0.orig/newlib/libc/search/hash_buf.c 2004-05-26 19:57:10.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/search/hash_buf.c 2011-04-19 03:39:58.586184923 +0200
-@@ -118,7 +118,7 @@
- int newpage; /* If prev_bp set, indicates a new overflow page. */
- {
- BUFHEAD *bp;
-- __uint32_t is_disk_mask;
-+ ptrdiff_t is_disk_mask;
- int is_disk, segment_ndx;
- SEGMENT segp;
-
-@@ -298,7 +298,7 @@
- extern void
- __buf_init(hashp, nbytes)
- HTAB *hashp;
-- int nbytes;
-+ __uint32_t nbytes;
- {
- BUFHEAD *bfp;
- int npages;
-diff -Naur newlib-1.18.0.orig/newlib/libc/search/hash.h newlib-1.18.0/newlib/libc/search/hash.h
---- newlib-1.18.0.orig/newlib/libc/search/hash.h 2008-07-02 20:38:45.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/search/hash.h 2011-04-19 03:39:58.586184923 +0200
-@@ -82,7 +82,7 @@
-
- /* Hash Table Information */
- typedef struct hashhdr { /* Disk resident portion */
-- int magic; /* Magic NO for hash tables */
-+ __uint32_t magic; /* Magic NO for hash tables */
- int version; /* Version ID */
- __uint32_t lorder; /* Byte Order */
- int bsize; /* Bucket/Page Size */
-@@ -97,7 +97,7 @@
- int high_mask; /* Mask to modulo into entire table */
- int low_mask; /* Mask to modulo into lower half of
- * table */
-- int ffactor; /* Fill factor */
-+ __uint32_t ffactor; /* Fill factor */
- int nkeys; /* Number of keys in hash table */
- int hdrpages; /* Size of table header */
- int h_charkey; /* value of hash(CHARKEY) */
-diff -Naur newlib-1.18.0.orig/newlib/libc/stdio/open_memstream.c newlib-1.18.0/newlib/libc/stdio/open_memstream.c
---- newlib-1.18.0.orig/newlib/libc/stdio/open_memstream.c 2009-02-25 05:00:05.000000000 +0100
-+++ newlib-1.18.0/newlib/libc/stdio/open_memstream.c 2011-04-19 03:39:58.587184942 +0200
-@@ -330,8 +330,10 @@
- c->max *= sizeof(wchar_t);
- if (c->max < 64)
- c->max = 64;
-- else if (c->max > 64 * 1024)
-- c->max = 64 * 1024;
-+#if (SIZE_MAX >= 0x10000)
-+ else if (c->max > 0x10000)
-+ c->max = 0x10000;
-+#endif
- *size = 0;
- *buf = _malloc_r (ptr, c->max);
- if (!*buf)
-diff -Naur newlib-1.18.0.orig/newlib/libc/stdio/tmpnam.c newlib-1.18.0/newlib/libc/stdio/tmpnam.c
---- newlib-1.18.0.orig/newlib/libc/stdio/tmpnam.c 2004-04-23 22:01:55.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/stdio/tmpnam.c 2011-04-19 03:39:58.587184942 +0200
-@@ -94,6 +94,7 @@
- #include <_ansi.h>
- #include <reent.h>
- #include <stdio.h>
-+#include <stdint.h>
- #include <stdlib.h>
- #include <string.h>
- #include <fcntl.h>
-@@ -109,7 +110,7 @@
- char *result _AND
- _CONST char *part1 _AND
- _CONST char *part2 _AND
-- int part3 _AND
-+ intptr_t part3 _AND
- int *part4)
- {
- /* Generate the filename and make sure that there isn't one called
-@@ -183,7 +184,7 @@
- if (filename)
- {
- if (! worker (p, filename, dir, prefix,
-- _getpid_r (p) ^ (int) (_POINTER_INT) p, &p->_inc))
-+ _getpid_r (p) ^ (intptr_t) p, &p->_inc))
- return NULL;
- }
- return filename;
-diff -Naur newlib-1.18.0.orig/newlib/libc/stdlib/putenv_r.c newlib-1.18.0/newlib/libc/stdlib/putenv_r.c
---- newlib-1.18.0.orig/newlib/libc/stdlib/putenv_r.c 2004-11-24 23:34:14.000000000 +0100
-+++ newlib-1.18.0/newlib/libc/stdlib/putenv_r.c 2011-04-19 03:39:58.587184942 +0200
-@@ -24,6 +24,7 @@
- #include <reent.h>
- #include <stdlib.h>
- #include <string.h>
-+#include <strings.h>
-
- #include "envlock.h"
-
-diff -Naur newlib-1.18.0.orig/newlib/libc/string/bcmp.c newlib-1.18.0/newlib/libc/string/bcmp.c
---- newlib-1.18.0.orig/newlib/libc/string/bcmp.c 2005-10-28 23:21:07.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/string/bcmp.c 2011-04-19 03:39:58.587184942 +0200
-@@ -6,11 +6,11 @@
- bcmp
-
- ANSI_SYNOPSIS
-- #include <string.h>
-+ #include <strings.h>
- int bcmp(const void *<[s1]>, const void *<[s2]>, size_t <[n]>);
-
- TRAD_SYNOPSIS
-- #include <string.h>
-+ #include <strings.h>
- int bcmp(<[s1]>, <[s2]>, <[n]>)
- const void *<[s1]>;
- const void *<[s2]>;
-@@ -35,7 +35,7 @@
- bcmp ansi pure
- */
-
--#include <string.h>
-+#include <strings.h>
-
- int
- _DEFUN (bcmp, (m1, m2, n),
-diff -Naur newlib-1.18.0.orig/newlib/libc/string/bcopy.c newlib-1.18.0/newlib/libc/string/bcopy.c
---- newlib-1.18.0.orig/newlib/libc/string/bcopy.c 2002-05-23 20:46:04.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/string/bcopy.c 2011-04-19 03:39:58.587184942 +0200
-@@ -3,7 +3,7 @@
- <<bcopy>>---copy memory regions
-
- ANSI_SYNOPSIS
-- #include <string.h>
-+ #include <strings.h>
- void bcopy(const void *<[in]>, void *<[out]>, size_t <[n]>);
-
- TRAD_SYNOPSIS
-@@ -26,7 +26,7 @@
- bcopy - pure
- */
-
--#include <string.h>
-+#include <strings.h>
-
- void
- _DEFUN (bcopy, (b1, b2, length),
-diff -Naur newlib-1.18.0.orig/newlib/libc/string/bzero.c newlib-1.18.0/newlib/libc/string/bzero.c
---- newlib-1.18.0.orig/newlib/libc/string/bzero.c 2002-05-23 20:46:04.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/string/bzero.c 2011-04-19 03:39:58.587184942 +0200
-@@ -6,11 +6,11 @@
- bzero
-
- ANSI_SYNOPSIS
-- #include <string.h>
-+ #include <strings.h>
- void bzero(void *<[b]>, size_t <[length]>);
-
- TRAD_SYNOPSIS
-- #include <string.h>
-+ #include <strings.h>
- void bzero(<[b]>, <[length]>)
- void *<[b]>;
- size_t <[length]>;
-@@ -30,7 +30,7 @@
- <<bzero>> requires no supporting OS subroutines.
- */
-
--#include <string.h>
-+#include <strings.h>
-
- _VOID
- _DEFUN (bzero, (b, length),
-diff -Naur newlib-1.18.0.orig/newlib/libc/string/index.c newlib-1.18.0/newlib/libc/string/index.c
---- newlib-1.18.0.orig/newlib/libc/string/index.c 2000-02-17 20:39:48.000000000 +0100
-+++ newlib-1.18.0/newlib/libc/string/index.c 2011-04-19 03:39:58.588184961 +0200
-@@ -10,7 +10,7 @@
- char * index(const char *<[string]>, int <[c]>);
-
- TRAD_SYNOPSIS
-- #include <string.h>
-+ #include <strings.h>
- char * index(<[string]>, <[c]>);
- char *<[string]>;
- int *<[c]>;
-@@ -33,7 +33,8 @@
- index - pure
- */
-
--#include <string.h>
-+#include <strings.h>
-+#include <string.h> /* strchr */
-
- char *
- _DEFUN (index, (s, c),
-diff -Naur newlib-1.18.0.orig/newlib/libc/string/memccpy.c newlib-1.18.0/newlib/libc/string/memccpy.c
---- newlib-1.18.0.orig/newlib/libc/string/memccpy.c 2002-07-23 23:38:00.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/string/memccpy.c 2011-04-19 03:39:58.588184961 +0200
-@@ -35,13 +35,14 @@
- */
-
- #include <_ansi.h>
-+#include <stdint.h>
- #include <stddef.h>
- #include <string.h>
- #include <limits.h>
-
- /* Nonzero if either X or Y is not aligned on a "long" boundary. */
- #define UNALIGNED(X, Y) \
-- (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1)))
-+ (((intptr_t)X & (sizeof (long) - 1)) | ((intptr_t)Y & (sizeof (long) - 1)))
-
- /* How many bytes are copied each iteration of the word copy loop. */
- #define LITTLEBLOCKSIZE (sizeof (long))
-diff -Naur newlib-1.18.0.orig/newlib/libc/string/memchr.c newlib-1.18.0/newlib/libc/string/memchr.c
---- newlib-1.18.0.orig/newlib/libc/string/memchr.c 2008-05-27 01:31:08.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/string/memchr.c 2011-04-19 03:39:58.588184961 +0200
-@@ -38,10 +38,11 @@
-
- #include <_ansi.h>
- #include <string.h>
-+#include <stdint.h>
- #include <limits.h>
-
- /* Nonzero if either X or Y is not aligned on a "long" boundary. */
--#define UNALIGNED(X) ((long)X & (sizeof (long) - 1))
-+#define UNALIGNED(X) ((intptr_t)X & (sizeof (long) - 1))
-
- /* How many bytes are loaded each iteration of the word copy loop. */
- #define LBLOCKSIZE (sizeof (long))
-diff -Naur newlib-1.18.0.orig/newlib/libc/string/memcmp.c newlib-1.18.0/newlib/libc/string/memcmp.c
---- newlib-1.18.0.orig/newlib/libc/string/memcmp.c 2005-03-06 21:40:05.000000000 +0100
-+++ newlib-1.18.0/newlib/libc/string/memcmp.c 2011-04-19 03:39:58.588184961 +0200
-@@ -37,11 +37,11 @@
- */
-
- #include <string.h>
--
-+#include <stdint.h>
-
- /* Nonzero if either X or Y is not aligned on a "long" boundary. */
- #define UNALIGNED(X, Y) \
-- (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1)))
-+ (((intptr_t)X & (sizeof (long) - 1)) | ((intptr_t)Y & (sizeof (long) - 1)))
-
- /* How many bytes are copied each iteration of the word copy loop. */
- #define LBLOCKSIZE (sizeof (long))
-diff -Naur newlib-1.18.0.orig/newlib/libc/string/memcpy.c newlib-1.18.0/newlib/libc/string/memcpy.c
---- newlib-1.18.0.orig/newlib/libc/string/memcpy.c 2008-12-11 18:27:56.000000000 +0100
-+++ newlib-1.18.0/newlib/libc/string/memcpy.c 2011-04-19 03:39:58.588184961 +0200
-@@ -34,11 +34,12 @@
- */
-
- #include <_ansi.h>
-+#include <stdint.h>
- #include <string.h>
-
- /* Nonzero if either X or Y is not aligned on a "long" boundary. */
- #define UNALIGNED(X, Y) \
-- (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1)))
-+ (((intptr_t)X & (sizeof (long) - 1)) | ((intptr_t)Y & (sizeof (long) - 1)))
-
- /* How many bytes are copied each iteration of the 4X unrolled loop. */
- #define BIGBLOCKSIZE (sizeof (long) << 2)
-diff -Naur newlib-1.18.0.orig/newlib/libc/string/memmove.c newlib-1.18.0/newlib/libc/string/memmove.c
---- newlib-1.18.0.orig/newlib/libc/string/memmove.c 2000-02-17 20:39:48.000000000 +0100
-+++ newlib-1.18.0/newlib/libc/string/memmove.c 2011-04-19 03:39:58.588184961 +0200
-@@ -36,13 +36,14 @@
- */
-
- #include <string.h>
-+#include <stdint.h>
- #include <_ansi.h>
- #include <stddef.h>
- #include <limits.h>
-
- /* Nonzero if either X or Y is not aligned on a "long" boundary. */
- #define UNALIGNED(X, Y) \
-- (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1)))
-+ (((intptr_t)X & (sizeof (long) - 1)) | ((intptr_t)Y & (sizeof (long) - 1)))
-
- /* How many bytes are copied each iteration of the 4X unrolled loop. */
- #define BIGBLOCKSIZE (sizeof (long) << 2)
-diff -Naur newlib-1.18.0.orig/newlib/libc/string/mempcpy.c newlib-1.18.0/newlib/libc/string/mempcpy.c
---- newlib-1.18.0.orig/newlib/libc/string/mempcpy.c 2002-07-23 23:38:00.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/string/mempcpy.c 2011-04-19 03:39:58.588184961 +0200
-@@ -34,10 +34,11 @@
- #include <stddef.h>
- #include <limits.h>
- #include <string.h>
-+#include <stdint.h>
-
- /* Nonzero if either X or Y is not aligned on a "long" boundary. */
- #define UNALIGNED(X, Y) \
-- (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1)))
-+ (((intptr_t)X & (sizeof (long) - 1)) | ((uintptr_t)Y & (sizeof (long) - 1)))
-
- /* How many bytes are copied each iteration of the 4X unrolled loop. */
- #define BIGBLOCKSIZE (sizeof (long) << 2)
-diff -Naur newlib-1.18.0.orig/newlib/libc/string/memset.c newlib-1.18.0/newlib/libc/string/memset.c
---- newlib-1.18.0.orig/newlib/libc/string/memset.c 2008-05-27 20:44:40.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/string/memset.c 2011-04-19 03:39:58.589184979 +0200
-@@ -34,9 +34,10 @@
- */
-
- #include <string.h>
-+#include <stdint.h>
-
- #define LBLOCKSIZE (sizeof(long))
--#define UNALIGNED(X) ((long)X & (LBLOCKSIZE - 1))
-+#define UNALIGNED(X) ((intptr_t)X & (LBLOCKSIZE - 1))
- #define TOO_SMALL(LEN) ((LEN) < LBLOCKSIZE)
-
- _PTR
-diff -Naur newlib-1.18.0.orig/newlib/libc/string/rindex.c newlib-1.18.0/newlib/libc/string/rindex.c
---- newlib-1.18.0.orig/newlib/libc/string/rindex.c 2000-02-17 20:39:48.000000000 +0100
-+++ newlib-1.18.0/newlib/libc/string/rindex.c 2011-04-19 03:39:58.589184979 +0200
-@@ -10,7 +10,7 @@
- char * rindex(const char *<[string]>, int <[c]>);
-
- TRAD_SYNOPSIS
-- #include <string.h>
-+ #include <strings.h>
- char * rindex(<[string]>, <[c]>);
- char *<[string]>;
- int *<[c]>;
-@@ -33,7 +33,8 @@
- rindex - pure
- */
-
--#include <string.h>
-+#include <strings.h>
-+#include <string.h> /* strchr */
-
- char *
- _DEFUN (rindex, (s, c),
-diff -Naur newlib-1.18.0.orig/newlib/libc/string/stpcpy.c newlib-1.18.0/newlib/libc/string/stpcpy.c
---- newlib-1.18.0.orig/newlib/libc/string/stpcpy.c 2007-06-28 19:07:23.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/string/stpcpy.c 2011-04-19 03:39:58.589184979 +0200
-@@ -34,6 +34,7 @@
- */
-
- #include <string.h>
-+#include <stdint.h>
- #include <limits.h>
-
- /*SUPPRESS 560*/
-@@ -41,7 +42,7 @@
-
- /* Nonzero if either X or Y is not aligned on a "long" boundary. */
- #define UNALIGNED(X, Y) \
-- (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1)))
-+ (((intptr_t)X & (sizeof (long) - 1)) | ((intptr_t)Y & (sizeof (long) - 1)))
-
- #if LONG_MAX == 2147483647L
- #define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080)
-diff -Naur newlib-1.18.0.orig/newlib/libc/string/stpncpy.c newlib-1.18.0/newlib/libc/string/stpncpy.c
---- newlib-1.18.0.orig/newlib/libc/string/stpncpy.c 2007-06-28 19:07:23.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/string/stpncpy.c 2011-04-19 03:39:58.589184979 +0200
-@@ -40,6 +40,7 @@
- */
-
- #include <string.h>
-+#include <stdint.h>
- #include <limits.h>
-
- /*SUPPRESS 560*/
-@@ -47,7 +48,7 @@
-
- /* Nonzero if either X or Y is not aligned on a "long" boundary. */
- #define UNALIGNED(X, Y) \
-- (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1)))
-+ (((intptr_t)X & (sizeof (long) - 1)) | ((intptr_t)Y & (sizeof (long) - 1)))
-
- #if LONG_MAX == 2147483647L
- #define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080)
-diff -Naur newlib-1.18.0.orig/newlib/libc/string/strcasecmp.c newlib-1.18.0/newlib/libc/string/strcasecmp.c
---- newlib-1.18.0.orig/newlib/libc/string/strcasecmp.c 2009-04-23 20:11:22.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/string/strcasecmp.c 2011-04-19 03:39:58.589184979 +0200
-@@ -38,7 +38,7 @@
- strcasecmp
- */
-
--#include <string.h>
-+#include <strings.h>
- #include <ctype.h>
-
- int
-diff -Naur newlib-1.18.0.orig/newlib/libc/string/strcat.c newlib-1.18.0/newlib/libc/string/strcat.c
---- newlib-1.18.0.orig/newlib/libc/string/strcat.c 2000-02-17 20:39:48.000000000 +0100
-+++ newlib-1.18.0/newlib/libc/string/strcat.c 2011-04-19 03:39:58.590184997 +0200
-@@ -33,12 +33,13 @@
- strcat ansi pure
- */
-
-+#include <stdint.h>
- #include <string.h>
- #include <limits.h>
-
- /* Nonzero if X is aligned on a "long" boundary. */
- #define ALIGNED(X) \
-- (((long)X & (sizeof (long) - 1)) == 0)
-+ (((uintptr_t)X & (sizeof (long) - 1)) == 0)
-
- #if LONG_MAX == 2147483647L
- #define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080)
-diff -Naur newlib-1.18.0.orig/newlib/libc/string/strchr.c newlib-1.18.0/newlib/libc/string/strchr.c
---- newlib-1.18.0.orig/newlib/libc/string/strchr.c 2008-05-22 04:31:46.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/string/strchr.c 2011-04-19 03:39:58.590184997 +0200
-@@ -33,11 +33,12 @@
- strchr ansi pure
- */
-
-+#include <stdint.h>
- #include <string.h>
- #include <limits.h>
-
- /* Nonzero if X is not aligned on a "long" boundary. */
--#define UNALIGNED(X) ((long)X & (sizeof (long) - 1))
-+#define UNALIGNED(X) ((uintptr_t)X & (sizeof (long) - 1))
-
- /* How many bytes are loaded each iteration of the word copy loop. */
- #define LBLOCKSIZE (sizeof (long))
-diff -Naur newlib-1.18.0.orig/newlib/libc/string/strcmp.c newlib-1.18.0/newlib/libc/string/strcmp.c
---- newlib-1.18.0.orig/newlib/libc/string/strcmp.c 2000-02-17 20:39:48.000000000 +0100
-+++ newlib-1.18.0/newlib/libc/string/strcmp.c 2011-04-19 03:39:58.590184997 +0200
-@@ -35,12 +35,13 @@
- strcmp ansi pure
- */
-
-+#include <stdint.h>
- #include <string.h>
- #include <limits.h>
-
- /* Nonzero if either X or Y is not aligned on a "long" boundary. */
- #define UNALIGNED(X, Y) \
-- (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1)))
-+ (((uintptr_t)X & (sizeof (long) - 1)) | ((uintptr_t)Y & (sizeof (long) - 1)))
-
- /* DETECTNULL returns nonzero if (long)X contains a NULL byte. */
- #if LONG_MAX == 2147483647L
-diff -Naur newlib-1.18.0.orig/newlib/libc/string/strcpy.c newlib-1.18.0/newlib/libc/string/strcpy.c
---- newlib-1.18.0.orig/newlib/libc/string/strcpy.c 2007-05-29 23:26:59.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/string/strcpy.c 2011-04-19 03:39:58.590184997 +0200
-@@ -32,6 +32,7 @@
- strcpy ansi pure
- */
-
-+#include <stdint.h>
- #include <string.h>
- #include <limits.h>
-
-@@ -40,7 +41,7 @@
-
- /* Nonzero if either X or Y is not aligned on a "long" boundary. */
- #define UNALIGNED(X, Y) \
-- (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1)))
-+ (((intptr_t)X & (sizeof (long) - 1)) | ((intptr_t)Y & (sizeof (long) - 1)))
-
- #if LONG_MAX == 2147483647L
- #define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080)
-diff -Naur newlib-1.18.0.orig/newlib/libc/string/strlen.c newlib-1.18.0/newlib/libc/string/strlen.c
---- newlib-1.18.0.orig/newlib/libc/string/strlen.c 2008-05-27 00:56:14.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/string/strlen.c 2011-04-19 03:39:58.590184997 +0200
-@@ -32,11 +32,12 @@
- */
-
- #include <_ansi.h>
-+#include <stdint.h>
- #include <string.h>
- #include <limits.h>
-
- #define LBLOCKSIZE (sizeof (long))
--#define UNALIGNED(X) ((long)X & (LBLOCKSIZE - 1))
-+#define UNALIGNED(X) ((intptr_t)X & (LBLOCKSIZE - 1))
-
- #if LONG_MAX == 2147483647L
- #define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080)
-diff -Naur newlib-1.18.0.orig/newlib/libc/string/strncasecmp.c newlib-1.18.0/newlib/libc/string/strncasecmp.c
---- newlib-1.18.0.orig/newlib/libc/string/strncasecmp.c 2009-04-23 20:11:22.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/string/strncasecmp.c 2011-04-19 03:39:58.590184997 +0200
-@@ -6,11 +6,11 @@
- strncasecmp
-
- ANSI_SYNOPSIS
-- #include <string.h>
-+ #include <strings.h>
- int strncasecmp(const char *<[a]>, const char * <[b]>, size_t <[length]>);
-
- TRAD_SYNOPSIS
-- #include <string.h>
-+ #include <strings.h>
- int strncasecmp(<[a]>, <[b]>, <[length]>)
- char *<[a]>;
- char *<[b]>;
-@@ -40,7 +40,7 @@
- strncasecmp
- */
-
--#include <string.h>
-+#include <strings.h>
- #include <ctype.h>
-
- int
-diff -Naur newlib-1.18.0.orig/newlib/libc/string/strncat.c newlib-1.18.0/newlib/libc/string/strncat.c
---- newlib-1.18.0.orig/newlib/libc/string/strncat.c 2005-10-28 23:21:07.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/string/strncat.c 2011-04-19 03:39:58.591185015 +0200
-@@ -42,11 +42,12 @@
- */
-
- #include <string.h>
-+#include <stdint.h>
- #include <limits.h>
-
- /* Nonzero if X is aligned on a "long" boundary. */
- #define ALIGNED(X) \
-- (((long)X & (sizeof (long) - 1)) == 0)
-+ (((intptr_t)X & (sizeof (long) - 1)) == 0)
-
- #if LONG_MAX == 2147483647L
- #define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080)
-diff -Naur newlib-1.18.0.orig/newlib/libc/string/strncmp.c newlib-1.18.0/newlib/libc/string/strncmp.c
---- newlib-1.18.0.orig/newlib/libc/string/strncmp.c 2000-02-17 20:39:48.000000000 +0100
-+++ newlib-1.18.0/newlib/libc/string/strncmp.c 2011-04-19 03:39:58.591185015 +0200
-@@ -36,12 +36,13 @@
- strncmp ansi pure
- */
-
-+#include <stdint.h>
- #include <string.h>
- #include <limits.h>
-
- /* Nonzero if either X or Y is not aligned on a "long" boundary. */
- #define UNALIGNED(X, Y) \
-- (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1)))
-+ (((uintptr_t)X & (sizeof (long) - 1)) | ((uintptr_t)Y & (sizeof (long) - 1)))
-
- /* DETECTNULL returns nonzero if (long)X contains a NULL byte. */
- #if LONG_MAX == 2147483647L
-diff -Naur newlib-1.18.0.orig/newlib/libc/string/strncpy.c newlib-1.18.0/newlib/libc/string/strncpy.c
---- newlib-1.18.0.orig/newlib/libc/string/strncpy.c 2000-02-17 20:39:48.000000000 +0100
-+++ newlib-1.18.0/newlib/libc/string/strncpy.c 2011-04-19 03:39:58.591185015 +0200
-@@ -38,6 +38,7 @@
- */
-
- #include <string.h>
-+#include <stdint.h>
- #include <limits.h>
-
- /*SUPPRESS 560*/
-@@ -45,7 +46,7 @@
-
- /* Nonzero if either X or Y is not aligned on a "long" boundary. */
- #define UNALIGNED(X, Y) \
-- (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1)))
-+ (((intptr_t)X & (sizeof (long) - 1)) | ((intptr_t)Y & (sizeof (long) - 1)))
-
- #if LONG_MAX == 2147483647L
- #define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080)
-diff -Naur newlib-1.18.0.orig/newlib/libc/string/str-two-way.h newlib-1.18.0/newlib/libc/string/str-two-way.h
---- newlib-1.18.0.orig/newlib/libc/string/str-two-way.h 2008-10-02 22:12:34.000000000 +0200
-+++ newlib-1.18.0/newlib/libc/string/str-two-way.h 2011-04-19 03:39:58.589184979 +0200
-@@ -1,5 +1,5 @@
- /* Byte-wise substring search, using the Two-Way algorithm.
-- * Copyright (C) 2008 Eric Blake
-+ * Copyright (C) 2008, 2010 Eric Blake
- * Permission to use, copy, modify, and distribute this software
- * is freely granted, provided that this notice is preserved.
- */
-@@ -335,8 +335,8 @@
- a byte out of place, there can be no match until
- after the mismatch. */
- shift = needle_len - period;
-- memory = 0;
- }
-+ memory = 0;
- j += shift;
- continue;
- }
-diff -Naur newlib-1.18.0.orig/newlib/libc/sys/rtems/crt0.c newlib-1.18.0/newlib/libc/sys/rtems/crt0.c
---- newlib-1.18.0.orig/newlib/libc/sys/rtems/crt0.c 2009-12-16 19:28:14.000000000 +0100
-+++ newlib-1.18.0/newlib/libc/sys/rtems/crt0.c 2011-04-19 03:39:58.591185015 +0200
-@@ -24,8 +24,8 @@
- /* RTEMS provides some of its own routines including a Malloc family */
- RTEMS_STUB(void *,malloc(size_t s)) { return 0; }
- RTEMS_STUB(void *,realloc(void* p, size_t s)) { return 0; }
--RTEMS_STUB(void, free(void)) { ; }
--RTEMS_STUB(_PTR, calloc(struct _reent *r, size_t s1, size_t s2)) {}
-+RTEMS_STUB(void, free(void* ptr)) { ; }
-+RTEMS_STUB(_PTR, calloc(size_t s1, size_t s2)) {}
-
- #if defined(__GNUC__)
- /*
-@@ -49,6 +49,7 @@
- #endif
-
- /* stubs for functions RTEMS provides */
-+RTEMS_STUB(int, clock_gettime(clockid_t clk_id, struct timespec *tp)) { return -1; }
- RTEMS_STUB(int, close (int fd)) { return -1; }
- RTEMS_STUB(int, dup2(int oldfd, int newfd)) { return -1; }
- RTEMS_STUB(int, fcntl( int fd, int cmd, ... /* arg */ )) { return -1; }
-@@ -56,6 +57,7 @@
- RTEMS_STUB(int, fstat(int fd, struct stat *buf)) { return -1; }
- RTEMS_STUB(int, getdents(int fd, void *dp, int count)) { return -1; }
- RTEMS_STUB(char *, getlogin(void)) { return 0; }
-+RTEMS_STUB(int, gettimeofday(struct timeval *tv, struct timezone *tz)) { return -1; }
- RTEMS_STUB(struct passwd *, getpwnam(const char *name)) { return 0; }
- RTEMS_STUB(struct passwd *, getpwuid(uid_t uid)) { return 0; }
- RTEMS_STUB(uid_t, getuid(void)) { return 0; }
-@@ -65,6 +67,7 @@
- RTEMS_STUB(int, open(const char *pathname, int flags, int mode)) { return -1; }
- RTEMS_STUB(int, pipe(int pipefd[2])) { return -1; }
- RTEMS_STUB(_ssize_t, read(int fd, void *buf, size_t count)) { return -1; }
-+RTEMS_STUB(int, sched_yield(void)) { return -1; }
- RTEMS_STUB(int, sigfillset(sigset_t *set)) { return -1; }
- RTEMS_STUB(int, sigprocmask(int how, const sigset_t *set, sigset_t *oldset)) { return -1; }
- RTEMS_STUB(int, stat(const char *path, struct stat *buf)) { return -1; }
-@@ -95,7 +98,7 @@
- RTEMS_STUB(int, _kill_r (struct _reent *r, int pid, int sig )) { return -1; }
- #if !defined(REENTRANT_SYSCALLS_PROVIDED)
- /* cf. newlib/libc/reent/linkr.c */
--RTEMS_STUB(int, _link_r (struct _reent *, const char *, const char *)) { return -1; }
-+RTEMS_STUB(int, _link_r (struct _reent *r, const char *oldpath, const char *newpath)) { return -1; }
- #endif
- RTEMS_STUB(_off_t, _lseek_r ( struct _reent *ptr, int fd, _off_t offset, int whence )) { return -1; }
- RTEMS_STUB(int, _open_r (struct _reent *r, const char *buf, int flags, int mode)) { return -1; }
-@@ -103,14 +106,14 @@
- RTEMS_STUB(int, _rename_r (struct _reent *r, const char *a, const char *b)){ return -1; }
- #if !(defined (REENTRANT_SYSCALLS_PROVIDED) || defined (MALLOC_PROVIDED))
- /* cf. newlib/libc/reent/sbrkr.c */
--RTEMS_STUB(void *,_sbrk_r (struct _reent *r, ptrdiff_t)) { return -1; }
-+RTEMS_STUB(void *,_sbrk_r (struct _reent *r, ptrdiff_t addr)) { return 0; }
- #endif
- RTEMS_STUB(int, _stat_r (struct _reent *r, const char *path, struct stat *buf)) { return -1; }
- RTEMS_STUB(_CLOCK_T_, _times_r (struct _reent *r, struct tms *ptms)) { return -1; }
- RTEMS_STUB(int, _unlink_r (struct _reent *r, const char *path)) { return -1; }
- #if !(defined (REENTRANT_SYSCALLS_PROVIDED) || defined (NO_EXEC))
- /* cf. newlib/libc/reent/execr.c */
--RTEMS_STUB(int, _wait_r (struct _reent *r, int *)) { return -1; }
-+RTEMS_STUB(int, _wait_r (struct _reent *r, int *status)) { return -1; }
- #endif
- RTEMS_STUB(_ssize_t, _write_r (struct _reent *r, int fd, const void *buf, size_t nbytes)) { return -1; }
-
-diff -Naur newlib-1.18.0.orig/newlib/libc/sys/rtems/include/limits.h newlib-1.18.0/newlib/libc/sys/rtems/include/limits.h
---- newlib-1.18.0.orig/newlib/libc/sys/rtems/include/limits.h 2008-11-17 23:05:12.000000000 +0100
-+++ newlib-1.18.0/newlib/libc/sys/rtems/include/limits.h 2011-04-19 03:39:58.591185015 +0200
-@@ -78,7 +78,11 @@
- * Invariant values
- */
-
-+#if defined(__SIZEOF_SIZE_T__) && defined(__CHAR_BIT__)
-+#define SSIZE_MAX ((1UL << (__SIZEOF_SIZE_T__ * __CHAR_BIT__ - 1)) - 1)
-+#else /* historic fallback, wrong in most cases */
- #define SSIZE_MAX 32767
-+#endif
-
- /*
- * Maximum Values
-diff -Naur newlib-1.18.0.orig/newlib/libc/sys/rtems/machine/_types.h newlib-1.18.0/newlib/libc/sys/rtems/machine/_types.h
---- newlib-1.18.0.orig/newlib/libc/sys/rtems/machine/_types.h 2009-12-17 17:10:41.000000000 +0100
-+++ newlib-1.18.0/newlib/libc/sys/rtems/machine/_types.h 2011-04-19 03:39:58.591185015 +0200
-@@ -31,4 +31,25 @@
-
- typedef __int32_t blksize_t;
- typedef __int32_t blkcnt_t;
-+
-+/* EXPERIMENTAL: Use 64bit types */
-+#if defined(__arm__) || defined(__i386__) || defined(__m68k__) || defined(__mips__) || defined(__PPC__) || defined(__sparc__)
-+/* Use 64bit types */
-+typedef __int64_t _off_t;
-+#define __off_t_defined 1
-+
-+typedef __int64_t _fpos_t;
-+#define __fpos_t_defined 1
-+#else
-+/* Use 32bit types */
-+typedef __int32_t _off_t;
-+#define __off_t_defined 1
-+
-+typedef __int32_t _fpos_t;
-+#define __fpos_t_defined 1
-+#endif
-+
-+typedef __uint32_t _mode_t;
-+#define __mode_t_defined 1
-+
- #endif
-diff -Naur newlib-1.18.0.orig/newlib/libc/sys/rtems/sys/dirent.h newlib-1.18.0/newlib/libc/sys/rtems/sys/dirent.h
---- newlib-1.18.0.orig/newlib/libc/sys/rtems/sys/dirent.h 2004-01-08 20:25:21.000000000 +0100
-+++ newlib-1.18.0/newlib/libc/sys/rtems/sys/dirent.h 2011-04-19 03:39:58.592185033 +0200
-@@ -31,6 +31,10 @@
- void seekdir(DIR *dir, long loc);
- long telldir(DIR *dir);
-
-+#ifdef _COMPILING_NEWLIB
-+void _seekdir(DIR *dir, long offset);
-+#endif
-+
- #include <sys/types.h>
-
- #include <limits.h>
-diff -Naur newlib-1.18.0.orig/newlib/libm/common/fdlibm.h newlib-1.18.0/newlib/libm/common/fdlibm.h
---- newlib-1.18.0.orig/newlib/libm/common/fdlibm.h 2009-11-17 23:35:46.000000000 +0100
-+++ newlib-1.18.0/newlib/libm/common/fdlibm.h 2011-04-19 03:39:58.592185033 +0200
-@@ -361,3 +361,12 @@
- sf_u.word = (i); \
- (d) = sf_u.value; \
- } while (0)
-+
-+/* Macros to avoid undefined behaviour that can arise if the amount
-+ of a shift is exactly equal to the size of the shifted operand. */
-+
-+#define SAFE_LEFT_SHIFT(op,amt) \
-+ (((amt) < 8 * sizeof(op)) ? ((op) << (amt)) : 0)
-+
-+#define SAFE_RIGHT_SHIFT(op,amt) \
-+ (((amt) < 8 * sizeof(op)) ? ((op) >> (amt)) : 0)
-diff -Naur newlib-1.18.0.orig/newlib/libm/common/modfl.c newlib-1.18.0/newlib/libm/common/modfl.c
---- newlib-1.18.0.orig/newlib/libm/common/modfl.c 2009-04-18 00:15:43.000000000 +0200
-+++ newlib-1.18.0/newlib/libm/common/modfl.c 2011-04-19 03:39:58.592185033 +0200
-@@ -36,7 +36,7 @@
- long double
- modfl (long double x, long double *iptr)
- {
-- return modf(x, iptr);
-+ return modf(x, (double*) iptr);
- }
- #endif
-
-diff -Naur newlib-1.18.0.orig/newlib/libm/common/sf_ilogb.c newlib-1.18.0/newlib/libm/common/sf_ilogb.c
---- newlib-1.18.0.orig/newlib/libm/common/sf_ilogb.c 2001-04-04 15:30:59.000000000 +0200
-+++ newlib-1.18.0/newlib/libm/common/sf_ilogb.c 2011-04-19 03:39:58.594185070 +0200
-@@ -13,8 +13,8 @@
- * ====================================================
- */
-
--#include "fdlibm.h"
- #include <limits.h>
-+#include "fdlibm.h"
-
- #ifdef __STDC__
- int ilogbf(float x)
-@@ -28,11 +28,14 @@
- GET_FLOAT_WORD(hx,x);
- hx &= 0x7fffffff;
- if(FLT_UWORD_IS_ZERO(hx))
-- return - INT_MAX; /* ilogb(0) = 0x80000001 */
-+ return FP_ILOGB0; /* ilogb(0) = special case error */
- if(FLT_UWORD_IS_SUBNORMAL(hx)) {
- for (ix = -126,hx<<=8; hx>0; hx<<=1) ix -=1;
- return ix;
- }
-+ #if FP_ILOGBNAN != INT_MAX
-+ else if (FLT_UWORD_IS_NAN(hx)) return FP_ILOGBNAN; /* NAN */
-+ #endif
- else if (!FLT_UWORD_IS_FINITE(hx)) return INT_MAX;
- else return (hx>>23)-127;
- }
-diff -Naur newlib-1.18.0.orig/newlib/libm/common/sf_llrint.c newlib-1.18.0/newlib/libm/common/sf_llrint.c
---- newlib-1.18.0.orig/newlib/libm/common/sf_llrint.c 2009-04-03 19:39:24.000000000 +0200
-+++ newlib-1.18.0/newlib/libm/common/sf_llrint.c 2011-04-19 03:39:58.594185070 +0200
-@@ -71,7 +71,7 @@
- GET_FLOAT_WORD (i0, t);
- /* Detect the all-zeros representation of plus and
- minus zero, which fails the calculation below. */
-- if ((i0 & ~(1 << 31)) == 0)
-+ if ((i0 & ~((__uint32_t)1 << 31)) == 0)
- return 0;
- j0 = ((i0 >> 23) & 0xff) - 0x7f;
- i0 &= 0x7fffff;
-diff -Naur newlib-1.18.0.orig/newlib/libm/common/sf_log2.c newlib-1.18.0/newlib/libm/common/sf_log2.c
---- newlib-1.18.0.orig/newlib/libm/common/sf_log2.c 2009-03-18 19:11:18.000000000 +0100
-+++ newlib-1.18.0/newlib/libm/common/sf_log2.c 2011-04-19 03:39:58.595185089 +0200
-@@ -30,7 +30,7 @@
- float x;
- #endif
- {
-- return (logf(x) / (float) M_LOG2_E);
-+ return (logf(x) / (float_t) M_LN2);
- }
-
- #ifdef _DOUBLE_IS_32BITS
-diff -Naur newlib-1.18.0.orig/newlib/libm/common/sf_rint.c newlib-1.18.0/newlib/libm/common/sf_rint.c
---- newlib-1.18.0.orig/newlib/libm/common/sf_rint.c 2001-04-04 15:30:59.000000000 +0200
-+++ newlib-1.18.0/newlib/libm/common/sf_rint.c 2011-04-19 03:39:58.595185089 +0200
-@@ -57,7 +57,7 @@
- i = (0x007fffff)>>j0;
- if((i0&i)==0) return x; /* x is integral */
- i>>=1;
-- if((i0&i)!=0) i0 = (i0&(~i))|((0x100000)>>j0);
-+ if((i0&i)!=0) i0 = (i0&(~i))|((0x200000)>>j0);
- }
- } else {
- if(!FLT_UWORD_IS_FINITE(ix)) return x+x; /* inf or NaN */
-diff -Naur newlib-1.18.0.orig/newlib/libm/common/sf_round.c newlib-1.18.0/newlib/libm/common/sf_round.c
---- newlib-1.18.0.orig/newlib/libm/common/sf_round.c 2005-02-24 20:02:35.000000000 +0100
-+++ newlib-1.18.0/newlib/libm/common/sf_round.c 2011-04-19 03:39:58.595185089 +0200
-@@ -38,7 +38,7 @@
- w &= 0x80000000;
- if (exponent_less_127 == -1)
- /* Result is +1.0 or -1.0. */
-- w |= (127 << 23);
-+ w |= ((__uint32_t)127 << 23);
- }
- else
- {
-diff -Naur newlib-1.18.0.orig/newlib/libm/common/s_ilogb.c newlib-1.18.0/newlib/libm/common/s_ilogb.c
---- newlib-1.18.0.orig/newlib/libm/common/s_ilogb.c 2003-10-20 20:46:37.000000000 +0200
-+++ newlib-1.18.0/newlib/libm/common/s_ilogb.c 2011-04-19 03:39:58.592185033 +0200
-@@ -44,13 +44,24 @@
- RETURNS
-
- <<ilogb>> and <<ilogbf>> return the power of two used to form the
--floating-point argument. If <[val]> is <<0>>, they return <<-
--INT_MAX>> (<<INT_MAX>> is defined in limits.h). If <[val]> is
--infinite, or NaN, they return <<INT_MAX>>.
-+floating-point argument.
-+If <[val]> is <<0>>, they return <<FP_ILOGB0>>.
-+If <[val]> is infinite, they return <<INT_MAX>>.
-+If <[val]> is NaN, they return <<FP_ILOGBNAN>>.
-+(<<FP_ILOGB0>> and <<FP_ILOGBNAN>> are defined in math.h, but in turn are
-+defined as INT_MIN or INT_MAX from limits.h. The value of FP_ILOGB0 may be
-+either INT_MIN or -INT_MAX. The value of FP_ILOGBNAN may be either INT_MAX or
-+INT_MIN.)
-+
-+@comment The bugs might not be worth noting, given the mass non-C99/POSIX
-+@comment behavior of much of the Newlib math library.
-+@comment BUGS
-+@comment On errors, errno is not set per C99 and POSIX requirements even if
-+@comment (math_errhandling & MATH_ERRNO) is non-zero.
-
- PORTABILITY
-- Neither <<ilogb>> nor <<ilogbf>> is required by ANSI C or by
-- the System V Interface Definition (Issue 2). */
-+C99, POSIX
-+*/
-
- /* ilogb(double x)
- * return the binary exponent of non-zero x
-@@ -58,8 +69,8 @@
- * ilogb(inf/NaN) = 0x7fffffff (no signal is raised)
- */
-
--#include "fdlibm.h"
- #include <limits.h>
-+#include "fdlibm.h"
-
- #ifndef _DOUBLE_IS_32BITS
-
-@@ -76,7 +87,7 @@
- hx &= 0x7fffffff;
- if(hx<0x00100000) {
- if((hx|lx)==0)
-- return - INT_MAX; /* ilogb(0) = 0x80000001 */
-+ return FP_ILOGB0; /* ilogb(0) = special case error */
- else /* subnormal x */
- if(hx==0) {
- for (ix = -1043; lx>0; lx<<=1) ix -=1;
-@@ -86,7 +97,10 @@
- return ix;
- }
- else if (hx<0x7ff00000) return (hx>>20)-1023;
-- else return INT_MAX;
-+ #if FP_ILOGBNAN != INT_MAX
-+ else if (hx>0x7ff00000) return FP_ILOGBNAN; /* NAN */
-+ #endif
-+ else return INT_MAX; /* infinite (or, possibly, NAN) */
- }
-
- #endif /* _DOUBLE_IS_32BITS */
-diff -Naur newlib-1.18.0.orig/newlib/libm/common/s_llrint.c newlib-1.18.0/newlib/libm/common/s_llrint.c
---- newlib-1.18.0.orig/newlib/libm/common/s_llrint.c 2009-04-03 19:39:24.000000000 +0200
-+++ newlib-1.18.0/newlib/libm/common/s_llrint.c 2011-04-19 03:39:58.592185033 +0200
-@@ -61,40 +61,56 @@
-
- /* Extract exponent field. */
- j0 = ((i0 & 0x7ff00000) >> 20) - 1023;
-+ /* j0 in [-1023,1024] */
-
- if(j0 < 20)
- {
-+ /* j0 in [-1023,19] */
- if(j0 < -1)
- return 0;
- else
- {
-+ /* j0 in [0,19] */
-+ /* shift amt in [0,19] */
- w = TWO52[sx] + x;
- t = w - TWO52[sx];
- GET_HIGH_WORD(i0, t);
- /* Detect the all-zeros representation of plus and
- minus zero, which fails the calculation below. */
-- if ((i0 & ~(1 << 31)) == 0)
-+ if ((i0 & ~((__int32_t)1 << 31)) == 0)
- return 0;
-+ /* After round: j0 in [0,20] */
- j0 = ((i0 & 0x7ff00000) >> 20) - 1023;
- i0 &= 0x000fffff;
- i0 |= 0x00100000;
-+ /* shift amt in [20,0] */
- result = i0 >> (20 - j0);
- }
- }
- else if (j0 < (int)(8 * sizeof (long long int)) - 1)
- {
-+ /* 64bit return: j0 in [20,62] */
- if (j0 >= 52)
-+ /* 64bit return: j0 in [52,62] */
-+ /* 64bit return: left shift amt in [32,42] */
- result = ((long long int) ((i0 & 0x000fffff) | 0x0010000) << (j0 - 20)) |
-+ /* 64bit return: right shift amt in [0,10] */
- (i1 << (j0 - 52));
- else
- {
-+ /* 64bit return: j0 in [20,51] */
- w = TWO52[sx] + x;
- t = w - TWO52[sx];
- EXTRACT_WORDS (i0, i1, t);
- j0 = ((i0 & 0x7ff00000) >> 20) - 1023;
- i0 &= 0x000fffff;
- i0 |= 0x00100000;
-- result = ((long long int) i0 << (j0 - 20)) | (i1 >> (52 - j0));
-+ /* After round:
-+ * 64bit return: j0 in [20,52] */
-+ /* 64bit return: left shift amt in [0,32] */
-+ /* ***64bit return: right shift amt in [32,0] */
-+ result = ((long long int) i0 << (j0 - 20))
-+ | SAFE_RIGHT_SHIFT (i1, (52 - j0));
- }
- }
- else
-diff -Naur newlib-1.18.0.orig/newlib/libm/common/s_llround.c newlib-1.18.0/newlib/libm/common/s_llround.c
---- newlib-1.18.0.orig/newlib/libm/common/s_llround.c 2009-03-25 20:13:01.000000000 +0100
-+++ newlib-1.18.0/newlib/libm/common/s_llround.c 2011-04-19 03:39:58.592185033 +0200
-@@ -31,8 +31,10 @@
- msw &= 0x000fffff;
- msw |= 0x00100000;
-
-+ /* exponent_less_1023 in [-1023,1024] */
- if (exponent_less_1023 < 20)
- {
-+ /* exponent_less_1023 in [-1023,19] */
- if (exponent_less_1023 < 0)
- {
- if (exponent_less_1023 < -1)
-@@ -42,20 +44,34 @@
- }
- else
- {
-+ /* exponent_less_1023 in [0,19] */
-+ /* shift amt in [0,19] */
- msw += 0x80000 >> exponent_less_1023;
-+ /* shift amt in [20,1] */
- result = msw >> (20 - exponent_less_1023);
- }
- }
- else if (exponent_less_1023 < (8 * sizeof (long long int)) - 1)
- {
-+ /* 64bit longlong: exponent_less_1023 in [20,62] */
- if (exponent_less_1023 >= 52)
-- result = ((long long int) msw << (exponent_less_1023 - 20)) | (lsw << (exponent_less_1023 - 52));
-+ /* 64bit longlong: exponent_less_1023 in [52,62] */
-+ /* 64bit longlong: shift amt in [32,42] */
-+ result = ((long long int) msw << (exponent_less_1023 - 20))
-+ /* 64bit longlong: shift amt in [0,10] */
-+ | (lsw << (exponent_less_1023 - 52));
- else
- {
-- unsigned int tmp = lsw + (0x80000000 >> (exponent_less_1023 - 20));
-+ /* 64bit longlong: exponent_less_1023 in [20,51] */
-+ unsigned int tmp = lsw
-+ /* 64bit longlong: shift amt in [0,31] */
-+ + (0x80000000 >> (exponent_less_1023 - 20));
- if (tmp < lsw)
- ++msw;
-- result = ((long long int) msw << (exponent_less_1023 - 20)) | (tmp >> (52 - exponent_less_1023));
-+ /* 64bit longlong: shift amt in [0,31] */
-+ result = ((long long int) msw << (exponent_less_1023 - 20))
-+ /* ***64bit longlong: shift amt in [32,1] */
-+ | SAFE_RIGHT_SHIFT (tmp, (52 - exponent_less_1023));
- }
- }
- else
-diff -Naur newlib-1.18.0.orig/newlib/libm/common/s_log2.c newlib-1.18.0/newlib/libm/common/s_log2.c
---- newlib-1.18.0.orig/newlib/libm/common/s_log2.c 2009-03-25 20:13:01.000000000 +0100
-+++ newlib-1.18.0/newlib/libm/common/s_log2.c 2011-04-19 03:39:58.593185051 +0200
-@@ -34,8 +34,8 @@
- rather are derivatives based on <<log>>. (Accuracy might be slightly off from
- a direct calculation.) In addition to functions, they are also implemented as
- macros defined in math.h:
--. #define log2(x) (log (x) / _M_LOG2_E)
--. #define log2f(x) (logf (x) / (float) _M_LOG2_E)
-+. #define log2(x) (log (x) / _M_LN2)
-+. #define log2f(x) (logf (x) / (float) _M_LN2)
- To use the functions instead, just undefine the macros first.
-
- You can use the (non-ANSI) function <<matherr>> to specify error
-@@ -79,7 +79,7 @@
- double x;
- #endif
- {
-- return (log(x) / M_LOG2_E);
-+ return (log(x) / M_LN2);
- }
-
- #endif /* defined(_DOUBLE_IS_32BITS) */
-diff -Naur newlib-1.18.0.orig/newlib/libm/common/s_lrint.c newlib-1.18.0/newlib/libm/common/s_lrint.c
---- newlib-1.18.0.orig/newlib/libm/common/s_lrint.c 2009-04-16 17:39:46.000000000 +0200
-+++ newlib-1.18.0/newlib/libm/common/s_lrint.c 2011-04-19 03:39:58.594185070 +0200
-@@ -98,13 +98,17 @@
-
- /* Extract exponent field. */
- j0 = ((i0 & 0x7ff00000) >> 20) - 1023;
-+ /* j0 in [-1023,1024] */
-
- if(j0 < 20)
- {
-+ /* j0 in [-1023,19] */
- if(j0 < -1)
- return 0;
- else
- {
-+ /* j0 in [0,19] */
-+ /* shift amt in [0,19] */
- w = TWO52[sx] + x;
- t = w - TWO52[sx];
- GET_HIGH_WORD(i0, t);
-@@ -112,26 +116,43 @@
- minus zero, which fails the calculation below. */
- if ((i0 & ~(1L << 31)) == 0)
- return 0;
-+ /* After round: j0 in [0,20] */
- j0 = ((i0 & 0x7ff00000) >> 20) - 1023;
- i0 &= 0x000fffff;
- i0 |= 0x00100000;
-+ /* shift amt in [20,0] */
- result = i0 >> (20 - j0);
- }
- }
- else if (j0 < (int)(8 * sizeof (long int)) - 1)
- {
-+ /* 32bit return: j0 in [20,30] */
-+ /* 64bit return: j0 in [20,62] */
- if (j0 >= 52)
-+ /* 64bit return: j0 in [52,62] */
-+ /* 64bit return: left shift amt in [32,42] */
- result = ((long int) ((i0 & 0x000fffff) | 0x0010000) << (j0 - 20)) |
-+ /* 64bit return: right shift amt in [0,10] */
- (i1 << (j0 - 52));
- else
- {
-+ /* 32bit return: j0 in [20,30] */
-+ /* 64bit return: j0 in [20,51] */
- w = TWO52[sx] + x;
- t = w - TWO52[sx];
- EXTRACT_WORDS (i0, i1, t);
- j0 = ((i0 & 0x7ff00000) >> 20) - 1023;
- i0 &= 0x000fffff;
- i0 |= 0x00100000;
-- result = ((long int) i0 << (j0 - 20)) | (i1 >> (52 - j0));
-+ /* After round:
-+ * 32bit return: j0 in [20,31];
-+ * 64bit return: j0 in [20,52] */
-+ /* 32bit return: left shift amt in [0,11] */
-+ /* 64bit return: left shift amt in [0,32] */
-+ /* ***32bit return: right shift amt in [32,21] */
-+ /* ***64bit return: right shift amt in [32,0] */
-+ result = ((long int) i0 << (j0 - 20))
-+ | SAFE_RIGHT_SHIFT (i1, (52 - j0));
- }
- }
- else
-diff -Naur newlib-1.18.0.orig/newlib/libm/common/s_lround.c newlib-1.18.0/newlib/libm/common/s_lround.c
---- newlib-1.18.0.orig/newlib/libm/common/s_lround.c 2009-03-25 20:13:01.000000000 +0100
-+++ newlib-1.18.0/newlib/libm/common/s_lround.c 2011-04-19 03:39:58.594185070 +0200
-@@ -71,9 +71,10 @@
- exponent_less_1023 = ((msw & 0x7ff00000) >> 20) - 1023;
- msw &= 0x000fffff;
- msw |= 0x00100000;
--
-+ /* exponent_less_1023 in [-1023,1024] */
- if (exponent_less_1023 < 20)
- {
-+ /* exponent_less_1023 in [-1023,19] */
- if (exponent_less_1023 < 0)
- {
- if (exponent_less_1023 < -1)
-@@ -83,20 +84,39 @@
- }
- else
- {
-+ /* exponent_less_1023 in [0,19] */
-+ /* shift amt in [0,19] */
- msw += 0x80000 >> exponent_less_1023;
-+ /* shift amt in [20,1] */
- result = msw >> (20 - exponent_less_1023);
- }
- }
- else if (exponent_less_1023 < (8 * sizeof (long int)) - 1)
- {
-+ /* 32bit long: exponent_less_1023 in [20,30] */
-+ /* 64bit long: exponent_less_1023 in [20,62] */
- if (exponent_less_1023 >= 52)
-- result = ((long int) msw << (exponent_less_1023 - 20)) | (lsw << (exponent_less_1023 - 52));
-+ /* 64bit long: exponent_less_1023 in [52,62] */
-+ /* 64bit long: shift amt in [32,42] */
-+ result = ((long int) msw << (exponent_less_1023 - 20))
-+ /* 64bit long: shift amt in [0,10] */
-+ | (lsw << (exponent_less_1023 - 52));
- else
- {
-- unsigned int tmp = lsw + (0x80000000 >> (exponent_less_1023 - 20));
-+ /* 32bit long: exponent_less_1023 in [20,30] */
-+ /* 64bit long: exponent_less_1023 in [20,51] */
-+ unsigned int tmp = lsw
-+ /* 32bit long: shift amt in [0,10] */
-+ /* 64bit long: shift amt in [0,31] */
-+ + (0x80000000 >> (exponent_less_1023 - 20));
- if (tmp < lsw)
- ++msw;
-- result = ((long int) msw << (exponent_less_1023 - 20)) | (tmp >> (52 - exponent_less_1023));
-+ /* 32bit long: shift amt in [0,10] */
-+ /* 64bit long: shift amt in [0,31] */
-+ result = ((long int) msw << (exponent_less_1023 - 20))
-+ /* ***32bit long: shift amt in [32,22] */
-+ /* ***64bit long: shift amt in [32,1] */
-+ | SAFE_RIGHT_SHIFT (tmp, (52 - exponent_less_1023));
- }
- }
- else
-diff -Naur newlib-1.18.0.orig/newlib/libm/common/s_rint.c newlib-1.18.0/newlib/libm/common/s_rint.c
---- newlib-1.18.0.orig/newlib/libm/common/s_rint.c 2009-03-25 20:13:01.000000000 +0100
-+++ newlib-1.18.0/newlib/libm/common/s_rint.c 2011-04-19 03:39:58.594185070 +0200
-@@ -51,6 +51,16 @@
- * rounding mode.
- * Method:
- * Using floating addition.
-+ * Whenever a fraction is present, if the second or any following bit after
-+ * the radix point is set, limit to the second radix point to avoid
-+ * possible double rounding in the TWO52 +- steps (in case guard bits are
-+ * used). Specifically, if have any, chop off bits past the 2nd place and
-+ * set the second place.
-+ * (e.g. 2.0625=0b10.0001 => 0b10.01=2.25;
-+ * 2.3125=0b10.011 => 0b10.01=2.25;
-+ * 1.5625= 0b1.1001 => 0b1.11=1.75;
-+ * 1.9375= 0b1.1111 => 0b1.11=1.75.
-+ * Pseudo-code: if(x.frac & ~0b0.10) x.frac = (x.frac & 0b0.11) | 0b0.01;).
- * Exception:
- * Inexact flag raised if x not equal to rint(x).
- */
-@@ -81,11 +91,11 @@
- double t;
- volatile double w;
- EXTRACT_WORDS(i0,i1,x);
-- sx = (i0>>31)&1;
-- j0 = ((i0>>20)&0x7ff)-0x3ff;
-- if(j0<20) {
-- if(j0<0) {
-- if(((i0&0x7fffffff)|i1)==0) return x;
-+ sx = (i0>>31)&1; /* sign */
-+ j0 = ((i0>>20)&0x7ff)-0x3ff; /* exponent */
-+ if(j0<20) { /* no integral bits in LS part */
-+ if(j0<0) { /* x is fractional or 0 */
-+ if(((i0&0x7fffffff)|i1)==0) return x; /* x == 0 */
- i1 |= (i0&0x0fffff);
- i0 &= 0xfffe0000;
- i0 |= ((i1|-i1)>>12)&0x80000;
-@@ -95,13 +105,14 @@
- GET_HIGH_WORD(i0,t);
- SET_HIGH_WORD(t,(i0&0x7fffffff)|(sx<<31));
- return t;
-- } else {
-+ } else { /* x has integer and maybe fraction */
- i = (0x000fffff)>>j0;
- if(((i0&i)|i1)==0) return x; /* x is integral */
- i>>=1;
- if(((i0&i)|i1)!=0) {
-- if(j0==19) i1 = 0x40000000; else
-- i0 = (i0&(~i))|((0x20000)>>j0);
-+ /* 2nd or any later bit after radix is set */
-+ if(j0==19) i1 = 0x80000000; else i1 = 0;
-+ i0 = (i0&(~i))|((0x40000)>>j0);
- }
- }
- } else if (j0>51) {
-@@ -119,6 +130,3 @@
- }
-
- #endif /* _DOUBLE_IS_32BITS */
--
--
--
-diff -Naur newlib-1.18.0.orig/newlib/libm/common/s_round.c newlib-1.18.0/newlib/libm/common/s_round.c
---- newlib-1.18.0.orig/newlib/libm/common/s_round.c 2009-03-25 20:13:01.000000000 +0100
-+++ newlib-1.18.0/newlib/libm/common/s_round.c 2011-04-19 03:39:58.594185070 +0200
-@@ -68,7 +68,7 @@
- msw &= 0x80000000;
- if (exponent_less_1023 == -1)
- /* Result is +1.0 or -1.0. */
-- msw |= (1023 << 20);
-+ msw |= ((__int32_t)1023 << 20);
- lsw = 0;
- }
- else
-diff -Naur newlib-1.18.0.orig/newlib/libm/math/e_scalb.c newlib-1.18.0/newlib/libm/math/e_scalb.c
---- newlib-1.18.0.orig/newlib/libm/math/e_scalb.c 2000-02-17 20:39:51.000000000 +0100
-+++ newlib-1.18.0/newlib/libm/math/e_scalb.c 2011-04-19 03:39:58.595185089 +0200
-@@ -17,6 +17,7 @@
- * should use scalbn() instead.
- */
-
-+#include <limits.h>
- #include "fdlibm.h"
-
- #ifndef _DOUBLE_IS_32BITS
-@@ -46,8 +47,17 @@
- else return x/(-fn);
- }
- if (rint(fn)!=fn) return (fn-fn)/(fn-fn);
-+#if (INT_MAX < 65000)
-+ if ( fn > (double) INT_MAX) return scalbn(x, INT_MAX);
-+#else
- if ( fn > 65000.0) return scalbn(x, 65000);
-- if (-fn > 65000.0) return scalbn(x,-65000);
-+#endif
-+
-+#if (INT_MIN > -65000)
-+ if (fn < (double) INT_MIN) return scalbn(x,INT_MIN);
-+#else
-+ if (fn < -65000.0) return scalbn(x,-65000);
-+#endif
- return scalbn(x,(int)fn);
- #endif
- }
-diff -Naur newlib-1.18.0.orig/newlib/libm/math/wf_tgamma.c newlib-1.18.0/newlib/libm/math/wf_tgamma.c
---- newlib-1.18.0.orig/newlib/libm/math/wf_tgamma.c 2007-09-04 19:33:10.000000000 +0200
-+++ newlib-1.18.0/newlib/libm/math/wf_tgamma.c 2011-04-19 03:39:58.595185089 +0200
-@@ -43,3 +43,17 @@
- return y;
- #endif
- }
-+
-+#ifdef _DOUBLE_IS_32BITS
-+
-+#ifdef __STDC__
-+ double tgamma(double x)
-+#else
-+ double tgamma(x)
-+ double x;
-+#endif
-+{
-+ return (double) tgammaf((float) x);
-+}
-+
-+#endif /* defined(_DOUBLE_IS_32BITS) */
-diff -Naur newlib-1.18.0.orig/newlib/libm/math/w_tgamma.c newlib-1.18.0/newlib/libm/math/w_tgamma.c
---- newlib-1.18.0.orig/newlib/libm/math/w_tgamma.c 2002-06-07 23:59:56.000000000 +0200
-+++ newlib-1.18.0/newlib/libm/math/w_tgamma.c 2011-04-19 03:39:58.595185089 +0200
-@@ -17,6 +17,8 @@
-
- #include "fdlibm.h"
-
-+#ifndef _DOUBLE_IS_32BITS
-+
- #ifdef __STDC__
- double tgamma(double x)
- #else
-@@ -42,3 +44,5 @@
- return y;
- #endif
- }
-+
-+#endif /* defined(_DOUBLE_IS_32BITS) */
-diff -Naur newlib-1.18.0.orig/newlib/Makefile.am newlib-1.18.0/newlib/Makefile.am
---- newlib-1.18.0.orig/newlib/Makefile.am 2009-08-18 23:48:05.000000000 +0200
-+++ newlib-1.18.0/newlib/Makefile.am 2011-04-19 03:39:58.578184775 +0200
-@@ -81,7 +81,7 @@
- libc.a
- endif
-
--noinst_DATA = stmp-targ-include
-+BUILT_SOURCES = stmp-targ-include
-
- toollib_DATA = $(CRT0) $(CRT1)
-
-diff -Naur newlib-1.18.0.orig/newlib/Makefile.in newlib-1.18.0/newlib/Makefile.in
---- newlib-1.18.0.orig/newlib/Makefile.in 2009-10-21 00:43:45.000000000 +0200
-+++ newlib-1.18.0/newlib/Makefile.in 2011-04-19 03:39:58.578184775 +0200
-@@ -122,7 +122,7 @@
- install-pdf-recursive install-ps-recursive install-recursive \
- installcheck-recursive installdirs-recursive pdf-recursive \
- ps-recursive uninstall-recursive
--DATA = $(noinst_DATA) $(toollib_DATA)
-+DATA = $(toollib_DATA)
- RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
- distclean-recursive maintainer-clean-recursive
- AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-@@ -351,7 +351,7 @@
- @USE_LIBTOOL_FALSE@toollib_LIBRARIES = libm.a \
- @USE_LIBTOOL_FALSE@ libc.a
-
--noinst_DATA = stmp-targ-include
-+BUILT_SOURCES = stmp-targ-include
- toollib_DATA = $(CRT0) $(CRT1)
-
- # The functions ldexp, frexp and modf are traditionally supplied in
-@@ -411,7 +411,7 @@
-
- # dejagnu support
- RUNTESTFLAGS =
--all: newlib.h
-+all: $(BUILT_SOURCES) newlib.h
- $(MAKE) $(AM_MAKEFLAGS) all-recursive
-
- .SUFFIXES:
-@@ -725,14 +725,16 @@
- done
- check-am:
- $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU
--check: check-recursive
-+check: $(BUILT_SOURCES)
-+ $(MAKE) $(AM_MAKEFLAGS) check-recursive
- all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(DATA) newlib.h
- installdirs: installdirs-recursive
- installdirs-am:
- for dir in "$(DESTDIR)$(toollibdir)" "$(DESTDIR)$(toollibdir)" "$(DESTDIR)$(toollibdir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
--install: install-recursive
-+install: $(BUILT_SOURCES)
-+ $(MAKE) $(AM_MAKEFLAGS) install-recursive
- install-exec: install-exec-recursive
- install-data: install-data-recursive
- uninstall: uninstall-recursive
-@@ -758,6 +760,7 @@
- maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
- clean: clean-recursive
-
- clean-am: clean-generic clean-libtool clean-toollibLIBRARIES \
-@@ -833,8 +836,9 @@
- uninstall-am: uninstall-toollibDATA uninstall-toollibLIBRARIES \
- uninstall-toollibLTLIBRARIES
-
--.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check-am \
-- ctags-recursive install-am install-strip tags-recursive
-+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \
-+ check-am ctags-recursive install install-am install-strip \
-+ tags-recursive
-
- .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
- all all-am am--refresh check check-DEJAGNU check-am clean \