From f5cc9288197a454635dd9e366cd8747fbc8380a6 Mon Sep 17 00:00:00 2001 From: Ralf Corsepius Date: Fri, 21 Dec 2007 11:30:36 +0000 Subject: Reflect API changes from newlib-1.16.0 --- .../patches/newlib-1.15.0-rtems4.8-20071221.diff | 1626 ++++++++++++++++++++ 1 file changed, 1626 insertions(+) create mode 100644 contrib/crossrpms/patches/newlib-1.15.0-rtems4.8-20071221.diff diff --git a/contrib/crossrpms/patches/newlib-1.15.0-rtems4.8-20071221.diff b/contrib/crossrpms/patches/newlib-1.15.0-rtems4.8-20071221.diff new file mode 100644 index 0000000000..f72fda74e5 --- /dev/null +++ b/contrib/crossrpms/patches/newlib-1.15.0-rtems4.8-20071221.diff @@ -0,0 +1,1626 @@ +diff -uNr newlib-1.15.0.orig/newlib/libc/include/inttypes.h newlib-1.15.0/newlib/libc/include/inttypes.h +--- newlib-1.15.0.orig/newlib/libc/include/inttypes.h 2005-12-16 20:03:12.000000000 +0100 ++++ newlib-1.15.0/newlib/libc/include/inttypes.h 2007-12-21 12:24:11.000000000 +0100 +@@ -242,9 +242,12 @@ + #define SCNxMAX __SCNMAX(x) + + /* ptr types */ +-#if __have_longlong64 +-#define __PRIPTR(x) __STRINGIFY(ll##x) +-#define __SCNPTR(x) __STRINGIFY(ll##x) ++#if __ptrint_t_long_defined ++#define __PRIPTR(x) __STRINGIFY(l##x) ++#define __SCNPTR(x) __STRINGIFY(l##x) ++#elif __ptrint_t_int_defined ++#define __PRIPTR(x) __STRINGIFY(x) ++#define __SCNPTR(x) __STRINGIFY(x) + #elif __have_long64 + #define __PRIPTR(x) __STRINGIFY(l##x) + #define __SCNPTR(x) __STRINGIFY(l##x) +diff -uNr newlib-1.15.0.orig/newlib/libc/include/machine/setjmp.h newlib-1.15.0/newlib/libc/include/machine/setjmp.h +--- newlib-1.15.0.orig/newlib/libc/include/machine/setjmp.h 2006-12-18 17:48:03.000000000 +0100 ++++ newlib-1.15.0/newlib/libc/include/machine/setjmp.h 2007-12-21 12:24:11.000000000 +0100 +@@ -27,7 +27,7 @@ + + /* necv70 was 9 as well. */ + +-#ifdef __mc68000__ ++#if defined(__m68k__) || defined(__mc68000__) + /* + * onsstack,sigmask,sp,pc,psl,d2-d7,a2-a6, + * fp2-fp7 for 68881. +diff -uNr newlib-1.15.0.orig/newlib/libc/include/stdint.h newlib-1.15.0/newlib/libc/include/stdint.h +--- newlib-1.15.0.orig/newlib/libc/include/stdint.h 2006-08-16 23:39:43.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/include/stdint.h 2007-12-21 12:24:11.000000000 +0100 +@@ -393,6 +393,9 @@ + #define UINTMAX_C(x) x##UL + #endif + ++#ifdef __rtems__ ++#include ++#endif + + #ifdef __cplusplus + } +diff -uNr newlib-1.15.0.orig/newlib/libc/include/sys/errno.h newlib-1.15.0/newlib/libc/include/sys/errno.h +--- newlib-1.15.0.orig/newlib/libc/include/sys/errno.h 2002-09-24 16:10:12.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/include/sys/errno.h 2007-12-21 12:24:11.000000000 +0100 +@@ -148,6 +148,7 @@ + #define ECASECLASH 137 /* Filename exists with different case */ + #define EILSEQ 138 + #define EOVERFLOW 139 /* Value too large for defined data type */ ++#define ECANCELED 140 /* Operation canceled. */ + + /* From cygwin32. */ + #define EWOULDBLOCK EAGAIN /* Operation would block */ +diff -uNr newlib-1.15.0.orig/newlib/libc/include/sys/features.h newlib-1.15.0/newlib/libc/include/sys/features.h +--- newlib-1.15.0.orig/newlib/libc/include/sys/features.h 2006-09-14 00:09:27.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/include/sys/features.h 2007-12-21 12:24:11.000000000 +0100 +@@ -38,6 +38,7 @@ + #define _POSIX_MEMLOCK_RANGE 1 + #define _POSIX_MEMORY_PROTECTION 1 + #define _POSIX_MESSAGE_PASSING 1 ++#define _POSIX_MONOTONIC_CLOCK 200112L + #define _POSIX_PRIORITIZED_IO 1 + #define _POSIX_PRIORITY_SCHEDULING 1 + #define _POSIX_REALTIME_SIGNALS 1 +@@ -81,17 +82,97 @@ + #endif + + #ifdef __CYGWIN__ +-# define _POSIX_JOB_CONTROL 1 +-# define _POSIX_SAVED_IDS 0 +-# define _POSIX_VERSION 199009L +-# define _POSIX_THREADS 1 +-# define _POSIX_THREAD_PROCESS_SHARED 1 +-# define _POSIX_THREAD_SAFE_FUNCTIONS 1 +-# define _POSIX_THREAD_PRIORITY_SCHEDULING 1 +-# define _POSIX_THREAD_ATTR_STACKSIZE 1 +-# define _POSIX_SEMAPHORES 1 +-# define _POSIX_TIMERS 1 +-# define _POSIX_MEMLOCK_RANGE 1 ++ ++#if !defined(__STRICT_ANSI__) || defined(__cplusplus) || __STDC_VERSION__ >= 199901L ++#define _POSIX_VERSION 200112L ++#define _POSIX2_VERSION 200112L ++#define _XOPEN_VERSION 600 ++ ++#define _POSIX_ADVISORY_INFO 200112L ++/* #define _POSIX_ASYNCHRONOUS_IO -1 */ ++/* #define _POSIX_BARRIERS -1 */ ++#define _POSIX_CHOWN_RESTRICTED 1 ++/* #define _POSIX_CLOCK_SELECTION -1 */ ++/* #define _POSIX_CPUTIME -1 */ ++#define _POSIX_FSYNC 200112L ++#define _POSIX_IPV6 200112L ++#define _POSIX_JOB_CONTROL 1 ++#define _POSIX_MAPPED_FILES 200112L ++/* #define _POSIX_MEMLOCK -1 */ ++#define _POSIX_MEMLOCK_RANGE 200112L ++#define _POSIX_MEMORY_PROTECTION 200112L ++#define _POSIX_MESSAGE_PASSING 200112L ++/* #define _POSIX_MONOTONIC_CLOCK -1 */ ++#define _POSIX_NO_TRUNC 1 ++/* #define _POSIX_PRIORITIZED_IO -1 */ ++#define _POSIX_PRIORITY_SCHEDULING 200112L ++#define _POSIX_RAW_SOCKETS 200112L ++#define _POSIX_READER_WRITER_LOCKS 200112L ++#define _POSIX_REALTIME_SIGNALS 200112L ++#define _POSIX_REGEXP 1 ++#define _POSIX_SAVED_IDS 1 ++#define _POSIX_SEMAPHORES 200112L ++#define _POSIX_SHARED_MEMORY_OBJECTS 200112L ++#define _POSIX_SHELL 1 ++/* #define _POSIX_SPAWN -1 */ ++/* #define _POSIX_SPIN_LOCKS -1 */ ++/* #define _POSIX_SPORADIC_SERVER -1 */ ++#define _POSIX_SYNCHRONIZED_IO 200112L ++/* #define _POSIX_THREAD_ATTR_STACKADDR -1 */ ++#define _POSIX_THREAD_ATTR_STACKSIZE 200112L ++/* #define _POSIX_THREAD_CPUTIME -1 */ ++/* #define _POSIX_THREAD_PRIO_INHERIT -1 */ ++/* #define _POSIX_THREAD_PRIO_PROTECT -1 */ ++#define _POSIX_THREAD_PRIORITY_SCHEDULING 200112L ++#define _POSIX_THREAD_PROCESS_SHARED 200112L ++#define _POSIX_THREAD_SAFE_FUNCTIONS 200112L ++/* #define _POSIX_THREAD_SPORADIC_SERVER -1 */ ++#define _POSIX_THREADS 200112L ++/* #define _POSIX_TIMEOUTS -1 */ ++#define _POSIX_TIMERS 1 ++/* #define _POSIX_TRACE -1 */ ++/* #define _POSIX_TRACE_EVENT_FILTER -1 */ ++/* #define _POSIX_TRACE_INHERIT -1 */ ++/* #define _POSIX_TRACE_LOG -1 */ ++/* #define _POSIX_TYPED_MEMORY_OBJECTS -1 */ ++#define _POSIX_VDISABLE '\0' ++#define _POSIX2_C_BIND 200112L ++#define _POSIX2_C_DEV 200112L ++#define _POSIX2_CHAR_TERM 200112L ++/* #define _POSIX2_FORT_DEV -1 */ ++/* #define _POSIX2_FORT_RUN -1 */ ++/* #define _POSIX2_LOCALEDEF -1 */ ++/* #define _POSIX2_PBS -1 */ ++/* #define _POSIX2_PBS_ACCOUNTING -1 */ ++/* #define _POSIX2_PBS_CHECKPOINT -1 */ ++/* #define _POSIX2_PBS_LOCATE -1 */ ++/* #define _POSIX2_PBS_MESSAGE -1 */ ++/* #define _POSIX2_PBS_TRACK -1 */ ++#define _POSIX2_SW_DEV 200112L ++#define _POSIX2_UPE 200112L ++/* #define _POSIX_V6_ILP32_OFF32 -1 */ ++#define _XBS5_ILP32_OFF32 _POSIX_V6_ILP32_OFF32 ++#define _POSIX_V6_ILP32_OFFBIG 1 ++#define _XBS5_ILP32_OFFBIG _POSIX_V6_ILP32_OFFBIG ++/* #define _POSIX_V6_LP64_OFF64 -1 */ ++#define _XBS5_LP64_OFF64 _POSIX_V6_LP64_OFF64 ++/* #define _POSIX_V6_LPBIG_OFFBIG -1 */ ++#define _XBS5_LPBIG_OFFBIG _POSIX_V6_LPBIG_OFFBIG ++#define _XOPEN_CRYPT 1 ++#define _XOPEN_ENH_I18N 1 ++/* #define _XOPEN_LEGACY -1 */ ++/* #define _XOPEN_REALTIME -1 */ ++/* #define _XOPEN_REALTIME_THREADS -1 */ ++#define _XOPEN_SHM 1 ++/* #define _XOPEN_STREAMS -1 */ ++/* #define _XOPEN_UNIX -1 */ ++ ++#endif /* !__STRICT_ANSI__ || __cplusplus || __STDC_VERSION__ >= 199901L */ ++#endif /* __CYGWIN__ */ ++ ++#ifdef __SPU__ ++/* Not much for now! */ ++#define _POSIX_TIMERS 1 + #endif + + #ifdef __cplusplus +diff -uNr newlib-1.15.0.orig/newlib/libc/include/sys/time.h newlib-1.15.0/newlib/libc/include/sys/time.h +--- newlib-1.15.0.orig/newlib/libc/include/sys/time.h 2006-02-15 11:26:30.000000000 +0100 ++++ newlib-1.15.0/newlib/libc/include/sys/time.h 2007-12-21 12:24:11.000000000 +0100 +@@ -70,7 +70,7 @@ + } while (0) + #endif /* defined (__rtems__) || defined (__CYGWIN__) */ + +-int _EXFUN(gettimeofday, (struct timeval *__p, struct timezone *__z)); ++int _EXFUN(gettimeofday, (struct timeval *__p, void *__tz)); + int _EXFUN(settimeofday, (const struct timeval *, const struct timezone *)); + int _EXFUN(utimes, (const char *__path, const struct timeval *__tvp)); + int _EXFUN(getitimer, (int __which, struct itimerval *__value)); +diff -uNr newlib-1.15.0.orig/newlib/libc/include/sys/_types.h newlib-1.15.0/newlib/libc/include/sys/_types.h +--- newlib-1.15.0.orig/newlib/libc/include/sys/_types.h 2004-06-11 22:37:09.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/include/sys/_types.h 2007-12-21 12:24:11.000000000 +0100 +@@ -39,4 +39,7 @@ + /* Iconv descriptor type */ + typedef void *_iconv_t; + ++typedef long * __intptr_t; ++typedef unsigned long* __uintptr_t; ++ + #endif /* _SYS__TYPES_H */ +diff -uNr newlib-1.15.0.orig/newlib/libc/include/sys/unistd.h newlib-1.15.0/newlib/libc/include/sys/unistd.h +--- newlib-1.15.0.orig/newlib/libc/include/sys/unistd.h 2006-11-07 16:33:40.000000000 +0100 ++++ newlib-1.15.0/newlib/libc/include/sys/unistd.h 2007-12-21 12:24:11.000000000 +0100 +@@ -27,6 +27,9 @@ + int _EXFUN(chroot, (const char *__path )); + #endif + int _EXFUN(close, (int __fildes )); ++#if defined(__CYGWIN__) ++size_t _EXFUN(confstr, (int __name, char *__buf, size_t __len)); ++#endif + char _EXFUN(*ctermid, (char *__s )); + char _EXFUN(*cuserid, (char *__s )); + #if defined(__CYGWIN__) +@@ -151,6 +154,7 @@ + int _EXFUN(ttyname_r, (int, char *, size_t)); + #endif + int _EXFUN(unlink, (const char *__path )); ++int _EXFUN(usleep, (useconds_t __useconds)); + int _EXFUN(vhangup, (void )); + _READ_WRITE_RETURN_TYPE _EXFUN(write, (int __fd, const void *__buf, size_t __nbyte )); + +@@ -196,23 +200,21 @@ + int _EXFUN(truncate, (const char *, off_t __length)); + #endif + #endif ++ + #if defined(__CYGWIN__) || defined(__rtems__) + int _EXFUN(getdtablesize, (void)); + int _EXFUN(setdtablesize, (int)); + useconds_t _EXFUN(ualarm, (useconds_t __useconds, useconds_t __interval)); +-unsigned _EXFUN(usleep, (unsigned int __useconds)); + #if !(defined (_WINSOCK_H) || defined (__USE_W32_SOCKETS)) + /* winsock[2].h defines as __stdcall, and with int as 2nd arg */ + int _EXFUN(gethostname, (char *__name, size_t __len)); + #endif + char * _EXFUN(mktemp, (char *)); +-#if defined(__CYGWIN__) ++#if defined(__CYGWIN__) || defined(__rtems__) + void _EXFUN(sync, (void)); +-#else /* defined(__rtems__) */ +-int _EXFUN(sync, (void)); + #endif + #endif +-int _EXFUN(readlink, (const char *__path, char *__buf, int __buflen)); ++ssize_t _EXFUN(readlink, (const char *__path, char *__buf, size_t __buflen)); + int _EXFUN(symlink, (const char *__name1, const char *__name2)); + + #define F_OK 0 +@@ -231,63 +233,55 @@ + #define STDERR_FILENO 2 /* standard error file descriptor */ + + /* +- * 4.8.1 Get Configurable System Variables, P1003.1b-1993, p. 96 +- * +- * NOTE: Table 4-2, Configurable System Variables, p. 96 +- */ +- +-#define _SC_ARG_MAX 0 +-#define _SC_CHILD_MAX 1 +-#define _SC_CLK_TCK 2 +-#define _SC_NGROUPS_MAX 3 +-#define _SC_OPEN_MAX 4 +- /* no _SC_STREAM_MAX */ +-#define _SC_JOB_CONTROL 5 +-#define _SC_SAVED_IDS 6 +-#define _SC_VERSION 7 +-#define _SC_PAGESIZE 8 +-/* CYGWIN-specific values .. do not touch */ +-#define _SC_NPROCESSORS_CONF 9 +-#define _SC_NPROCESSORS_ONLN 10 +-#define _SC_PHYS_PAGES 11 +-#define _SC_AVPHYS_PAGES 12 +-/* end of CYGWIN-specific values */ +-#define _SC_MQ_OPEN_MAX 13 +-#define _SC_MQ_PRIO_MAX 14 +-#define _SC_RTSIG_MAX 15 +-#define _SC_SEM_NSEMS_MAX 16 +-#define _SC_SEM_VALUE_MAX 17 +-#define _SC_SIGQUEUE_MAX 18 +-#define _SC_TIMER_MAX 19 +-#define _SC_TZNAME_MAX 20 +- +-#define _SC_ASYNCHRONOUS_IO 21 +-#define _SC_FSYNC 22 +-#define _SC_MAPPED_FILES 23 +-#define _SC_MEMLOCK 24 +-#define _SC_MEMLOCK_RANGE 25 +-#define _SC_MEMORY_PROTECTION 26 +-#define _SC_MESSAGE_PASSING 27 +-#define _SC_PRIORITIZED_IO 28 +-#define _SC_REALTIME_SIGNALS 29 +-#define _SC_SEMAPHORES 30 +-#define _SC_SHARED_MEMORY_OBJECTS 31 +-#define _SC_SYNCHRONIZED_IO 32 +-#define _SC_TIMERS 33 +-#define _SC_AIO_LISTIO_MAX 34 +-#define _SC_AIO_MAX 35 +-#define _SC_AIO_PRIO_DELTA_MAX 36 +-#define _SC_DELAYTIMER_MAX 37 +- +-/* +- * P1003.1c/D10, p. 52 adds the following. ++ * sysconf values per IEEE Std 1003.1, 2004 Edition + */ + ++#define _SC_ARG_MAX 0 ++#define _SC_CHILD_MAX 1 ++#define _SC_CLK_TCK 2 ++#define _SC_NGROUPS_MAX 3 ++#define _SC_OPEN_MAX 4 ++#define _SC_JOB_CONTROL 5 ++#define _SC_SAVED_IDS 6 ++#define _SC_VERSION 7 ++#define _SC_PAGESIZE 8 ++#define _SC_PAGE_SIZE _SC_PAGESIZE ++/* These are non-POSIX values we accidentally introduced in 2000 without ++ guarding them. Keeping them unguarded for backward compatibility. */ ++#define _SC_NPROCESSORS_CONF 9 ++#define _SC_NPROCESSORS_ONLN 10 ++#define _SC_PHYS_PAGES 11 ++#define _SC_AVPHYS_PAGES 12 ++/* End of non-POSIX values. */ ++#define _SC_MQ_OPEN_MAX 13 ++#define _SC_MQ_PRIO_MAX 14 ++#define _SC_RTSIG_MAX 15 ++#define _SC_SEM_NSEMS_MAX 16 ++#define _SC_SEM_VALUE_MAX 17 ++#define _SC_SIGQUEUE_MAX 18 ++#define _SC_TIMER_MAX 19 ++#define _SC_TZNAME_MAX 20 ++#define _SC_ASYNCHRONOUS_IO 21 ++#define _SC_FSYNC 22 ++#define _SC_MAPPED_FILES 23 ++#define _SC_MEMLOCK 24 ++#define _SC_MEMLOCK_RANGE 25 ++#define _SC_MEMORY_PROTECTION 26 ++#define _SC_MESSAGE_PASSING 27 ++#define _SC_PRIORITIZED_IO 28 ++#define _SC_REALTIME_SIGNALS 29 ++#define _SC_SEMAPHORES 30 ++#define _SC_SHARED_MEMORY_OBJECTS 31 ++#define _SC_SYNCHRONIZED_IO 32 ++#define _SC_TIMERS 33 ++#define _SC_AIO_LISTIO_MAX 34 ++#define _SC_AIO_MAX 35 ++#define _SC_AIO_PRIO_DELTA_MAX 36 ++#define _SC_DELAYTIMER_MAX 37 + #define _SC_THREAD_KEYS_MAX 38 + #define _SC_THREAD_STACK_MIN 39 + #define _SC_THREAD_THREADS_MAX 40 + #define _SC_TTY_NAME_MAX 41 +- + #define _SC_THREADS 42 + #define _SC_THREAD_ATTR_STACKADDR 43 + #define _SC_THREAD_ATTR_STACKSIZE 44 +@@ -302,40 +296,143 @@ + #define _SC_GETPW_R_SIZE_MAX 51 + #define _SC_LOGIN_NAME_MAX 52 + #define _SC_THREAD_DESTRUCTOR_ITERATIONS 53 ++#define _SC_ADVISORY_INFO 54 ++#define _SC_ATEXIT_MAX 55 ++#define _SC_BARRIERS 56 ++#define _SC_BC_BASE_MAX 57 ++#define _SC_BC_DIM_MAX 58 ++#define _SC_BC_SCALE_MAX 59 ++#define _SC_BC_STRING_MAX 60 ++#define _SC_CLOCK_SELECTION 61 ++#define _SC_COLL_WEIGHTS_MAX 62 ++#define _SC_CPUTIME 63 ++#define _SC_EXPR_NEST_MAX 64 ++#define _SC_HOST_NAME_MAX 65 ++#define _SC_IOV_MAX 66 ++#define _SC_IPV6 67 ++#define _SC_LINE_MAX 68 ++#define _SC_MONOTONIC_CLOCK 69 ++#define _SC_RAW_SOCKETS 70 ++#define _SC_READER_WRITER_LOCKS 71 ++#define _SC_REGEXP 72 ++#define _SC_RE_DUP_MAX 73 ++#define _SC_SHELL 74 ++#define _SC_SPAWN 75 ++#define _SC_SPIN_LOCKS 76 ++#define _SC_SPORADIC_SERVER 77 ++#define _SC_SS_REPL_MAX 78 ++#define _SC_SYMLOOP_MAX 79 ++#define _SC_THREAD_CPUTIME 80 ++#define _SC_THREAD_SPORADIC_SERVER 81 ++#define _SC_TIMEOUTS 82 ++#define _SC_TRACE 83 ++#define _SC_TRACE_EVENT_FILTER 84 ++#define _SC_TRACE_EVENT_NAME_MAX 85 ++#define _SC_TRACE_INHERIT 86 ++#define _SC_TRACE_LOG 87 ++#define _SC_TRACE_NAME_MAX 88 ++#define _SC_TRACE_SYS_MAX 89 ++#define _SC_TRACE_USER_EVENT_MAX 90 ++#define _SC_TYPED_MEMORY_OBJECTS 91 ++#define _SC_V6_ILP32_OFF32 92 ++#define _SC_XBS5_ILP32_OFF32 _SC_V6_ILP32_OFF32 ++#define _SC_V6_ILP32_OFFBIG 93 ++#define _SC_XBS5_ILP32_OFFBIG _SC_V6_ILP32_OFFBIG ++#define _SC_V6_LP64_OFF64 94 ++#define _SC_XBS5_LP64_OFF64 _SC_V6_LP64_OFF64 ++#define _SC_V6_LPBIG_OFFBIG 95 ++#define _SC_XBS5_LPBIG_OFFBIG _SC_V6_LPBIG_OFFBIG ++#define _SC_XOPEN_CRYPT 96 ++#define _SC_XOPEN_ENH_I18N 97 ++#define _SC_XOPEN_LEGACY 98 ++#define _SC_XOPEN_REALTIME 99 ++#define _SC_STREAM_MAX 100 ++#define _SC_PRIORITY_SCHEDULING 101 ++#define _SC_XOPEN_REALTIME_THREADS 102 ++#define _SC_XOPEN_SHM 103 ++#define _SC_XOPEN_STREAMS 104 ++#define _SC_XOPEN_UNIX 105 ++#define _SC_XOPEN_VERSION 106 ++#define _SC_2_CHAR_TERM 107 ++#define _SC_2_C_BIND 108 ++#define _SC_2_C_DEV 109 ++#define _SC_2_FORT_DEV 110 ++#define _SC_2_FORT_RUN 111 ++#define _SC_2_LOCALEDEF 112 ++#define _SC_2_PBS 113 ++#define _SC_2_PBS_ACCOUNTING 114 ++#define _SC_2_PBS_CHECKPOINT 115 ++#define _SC_2_PBS_LOCATE 116 ++#define _SC_2_PBS_MESSAGE 117 ++#define _SC_2_PBS_TRACK 118 ++#define _SC_2_SW_DEV 119 ++#define _SC_2_UPE 120 ++#define _SC_2_VERSION 121 + +-#if !defined(__rtems__) +-#define _SC_STREAM_MAX 100 +-#endif +-#if !defined(__CYGWIN__) && !defined(__rtems__) +-#define _SC_PRIORITY_SCHEDULING 101 +-#endif +- +-# define _PC_LINK_MAX 0 +-# define _PC_MAX_CANON 1 +-# define _PC_MAX_INPUT 2 +-# define _PC_NAME_MAX 3 +-# define _PC_PATH_MAX 4 +-# define _PC_PIPE_BUF 5 +-# define _PC_CHOWN_RESTRICTED 6 +-# define _PC_NO_TRUNC 7 +-# define _PC_VDISABLE 8 +-# define _PC_ASYNC_IO 9 +-# define _PC_PRIO_IO 10 +-# define _PC_SYNC_IO 11 +-# define _PC_FILESIZEBITS 12 +-# define _PC_2_SYMLINKS 13 +-# define _PC_SYMLINK_MAX 14 ++/* ++ * pathconf values per IEEE Std 1003.1, 2004 Edition ++ */ ++ ++#define _PC_LINK_MAX 0 ++#define _PC_MAX_CANON 1 ++#define _PC_MAX_INPUT 2 ++#define _PC_NAME_MAX 3 ++#define _PC_PATH_MAX 4 ++#define _PC_PIPE_BUF 5 ++#define _PC_CHOWN_RESTRICTED 6 ++#define _PC_NO_TRUNC 7 ++#define _PC_VDISABLE 8 ++#define _PC_ASYNC_IO 9 ++#define _PC_PRIO_IO 10 ++#define _PC_SYNC_IO 11 ++#define _PC_FILESIZEBITS 12 ++#define _PC_2_SYMLINKS 13 ++#define _PC_SYMLINK_MAX 14 + #ifdef __CYGWIN__ + /* Ask for POSIX permission bits support. */ +-# define _PC_POSIX_PERMISSIONS 90 ++#define _PC_POSIX_PERMISSIONS 90 + /* Ask for full POSIX permission support including uid/gid settings. */ +-# define _PC_POSIX_SECURITY 91 ++#define _PC_POSIX_SECURITY 91 + #endif + +-/* FIXME: This is temporary until winsup gets sorted out. */ +-#ifdef __CYGWIN__ +-#define MAXPATHLEN (260 - 1 /* NUL */) +-#else ++/* ++ * confstr values per IEEE Std 1003.1, 2004 Edition ++ */ ++ ++#ifdef __CYGWIN__ /* Only defined on Cygwin for now. */ ++#define _CS_PATH 0 ++#define _CS_POSIX_V6_ILP32_OFF32_CFLAGS 1 ++#define _CS_XBS5_ILP32_OFF32_CFLAGS _CS_POSIX_V6_ILP32_OFF32_CFLAGS ++#define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS 2 ++#define _CS_XBS5_ILP32_OFF32_LDFLAGS _CS_POSIX_V6_ILP32_OFF32_LDFLAGS ++#define _CS_POSIX_V6_ILP32_OFF32_LIBS 3 ++#define _CS_XBS5_ILP32_OFF32_LIBS _CS_POSIX_V6_ILP32_OFF32_LIBS ++#define _CS_XBS5_ILP32_OFF32_LINTFLAGS 4 ++#define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS 5 ++#define _CS_XBS5_ILP32_OFFBIG_CFLAGS _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS ++#define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS 6 ++#define _CS_XBS5_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS ++#define _CS_POSIX_V6_ILP32_OFFBIG_LIBS 7 ++#define _CS_XBS5_ILP32_OFFBIG_LIBS _CS_POSIX_V6_ILP32_OFFBIG_LIBS ++#define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS 8 ++#define _CS_POSIX_V6_LP64_OFF64_CFLAGS 9 ++#define _CS_XBS5_LP64_OFF64_CFLAGS _CS_POSIX_V6_LP64_OFF64_CFLAGS ++#define _CS_POSIX_V6_LP64_OFF64_LDFLAGS 10 ++#define _CS_XBS5_LP64_OFF64_LDFLAGS _CS_POSIX_V6_LP64_OFF64_LDFLAGS ++#define _CS_POSIX_V6_LP64_OFF64_LIBS 11 ++#define _CS_XBS5_LP64_OFF64_LIBS _CS_POSIX_V6_LP64_OFF64_LIBS ++#define _CS_XBS5_LP64_OFF64_LINTFLAGS 12 ++#define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS 13 ++#define _CS_XBS5_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS ++#define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS 14 ++#define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS ++#define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS 15 ++#define _CS_XBS5_LPBIG_OFFBIG_LIBS _CS_POSIX_V6_LPBIG_OFFBIG_LIBS ++#define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS 16 ++#define _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS 17 ++#endif ++ ++#ifndef __CYGWIN__ + # define MAXPATHLEN 1024 + #endif + +diff -uNr newlib-1.15.0.orig/newlib/libc/include/time.h newlib-1.15.0/newlib/libc/include/time.h +--- newlib-1.15.0.orig/newlib/libc/include/time.h 2005-11-18 16:57:24.000000000 +0100 ++++ newlib-1.15.0/newlib/libc/include/time.h 2007-12-21 12:24:11.000000000 +0100 +@@ -226,6 +226,16 @@ + + #endif + ++#if defined(_POSIX_MONOTONIC_CLOCK) ++ ++/* The identifier for the system-wide monotonic clock, which is defined ++ as a clock whose value cannot be set via clock_settime() and which ++ cannot have backward clock jumps. */ ++ ++#define CLOCK_MONOTONIC (clockid_t)4 ++ ++#endif ++ + #if defined(_POSIX_CPUTIME) + + /* Accessing a Process CPU-time CLock, P1003.4b/D8, p. 55 */ +diff -uNr newlib-1.15.0.orig/newlib/libc/machine/powerpc/setjmp.S newlib-1.15.0/newlib/libc/machine/powerpc/setjmp.S +--- newlib-1.15.0.orig/newlib/libc/machine/powerpc/setjmp.S 2002-04-19 21:16:17.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/machine/powerpc/setjmp.S 2007-12-21 12:24:11.000000000 +0100 +@@ -5,13 +5,14 @@ + #include "ppc-asm.h" + + FUNC_START(setjmp) +-#ifdef __ALTIVEC__ +- addi 3,3,15 # align Altivec to 16 byte boundary ++ mfmsr 4 ++ rlwinm. 4,4,0,6,6 # check MSR_VE ++ addi 3,3,7 ++ rlwinm 3,3,0,0,28 # align to 8 byte boundary ++ beq 1f ++ addi 3,3,15 # VE is enabled; align to 16 byte bdry + rlwinm 3,3,0,0,27 +-#else +- addi 3,3,7 # align to 8 byte boundary +- rlwinm 3,3,0,0,28 +-#endif ++1: + stw 1,0(3) # offset 0 + stwu 2,4(3) # offset 4 + stwu 13,4(3) # offset 8 +@@ -39,6 +40,12 @@ + stwu 4,4(3) # offset 88 + # one word pad to get floating point aligned on 8 byte boundary + #ifndef _SOFT_FLOAT ++ mfmsr 4 ++ rlwinm. 4,4,0,18,18 ++ bne 1f # only save FPregs if FPU is enabled ++ addi 3,3,18*8 # skip FPregs ++ b 2f ++1: + stfdu 14,8(3) # offset 96 + stfdu 15,8(3) # offset 104 + stfdu 16,8(3) # offset 112 +@@ -57,12 +64,20 @@ + stfdu 29,8(3) # offset 216 + stfdu 30,8(3) # offset 224 + stfdu 31,8(3) # offset 232 ++2: + #endif + + /* This requires a total of 21 * 4 + 18 * 8 + 4 + 4 + 4 + bytes == 60 * 4 bytes == 240 bytes. */ + +-#ifdef __ALTIVEC__ ++#if defined(__ALTIVEC__) ++ /* could reuse r4 but I reload it just in case the code changes... */ ++ mfmsr 4 ++ rlwinm. 4,4,0,6,6 # check MSR_VE ++ bne 1f # only save vector regs if altivec is enabled ++ addi 3,3,(8 + 12*16) # skip vector regs ++ b 2f ++1: + /* save Altivec vrsave and vr20-vr31 registers */ + mfspr 4,256 # vrsave register + stwu 4,16(3) # offset 248 +@@ -90,6 +105,7 @@ + stvx 30,0,3 # offset 416 + addi 3,3,16 + stvx 31,0,3 # offset 432 ++2: + + /* This requires a total of 240 + 8 + 8 + 12 * 16 == 448 bytes. */ + #endif +@@ -99,13 +115,14 @@ + + + FUNC_START(longjmp) +-#ifdef __ALTIVEC__ +- addi 3,3,15 # align Altivec to 16 byte boundary ++ mfmsr 4 ++ rlwinm. 4,4,0,6,6 # check MSR_VE ++ addi 3,3,7 ++ rlwinm 3,3,0,0,28 # align to 8 byte boundary ++ beq 1f ++ addi 3,3,15 # VE is enabled; align to 16 byte bdry + rlwinm 3,3,0,0,27 +-#else +- addi 3,3,7 # align to 8 byte boundary +- rlwinm 3,3,0,0,28 +-#endif ++1: + lwz 1,0(3) # offset 0 + lwzu 2,4(3) # offset 4 + lwzu 13,4(3) # offset 8 +@@ -129,10 +146,17 @@ + lwzu 31,4(3) # offset 80 + lwzu 5,4(3) # offset 84 + mtlr 5 ++#if !defined(_SOFT_FLOAT) ++ mfmsr 5 ++ rlwinm. 5,5,0,18,18 # is MSR_FP set? ++#endif + lwzu 5,4(3) # offset 88 +- mtcrf 255,5 + # one word pad to get floating point aligned on 8 byte boundary + #ifndef _SOFT_FLOAT ++ bne 1f ++ addi 3,3,18*8 # skip FPregs ++ b 2f ++1: + lfdu 14,8(3) # offset 96 + lfdu 15,8(3) # offset 104 + lfdu 16,8(3) # offset 112 +@@ -151,9 +175,17 @@ + lfdu 29,8(3) # offset 216 + lfdu 30,8(3) # offset 224 + lfdu 31,8(3) # offset 232 ++2: + #endif ++ mtcrf 255,5 + +-#ifdef __ALTIVEC__ ++#if defined(__ALTIVEC__) ++ mfmsr 5 ++ rlwinm. 5,5,0,6,6 # is MSR_FP set? ++ bne 1f ++ addi 3,3,(8+12*16) # skip vector regs ++ b 2f ++1: + /* restore Altivec vrsave and v20-v31 registers */ + lwzu 5,16(3) # offset 248 + mtspr 256,5 # vrsave +@@ -181,6 +213,7 @@ + lvx 30,0,3 # offset 416 + addi 3,3,16 + lvx 31,0,3 # offset 432 ++2: + #endif + + mr. 3,4 +diff -uNr newlib-1.15.0.orig/newlib/libc/search/db_local.h newlib-1.15.0/newlib/libc/search/db_local.h +--- newlib-1.15.0.orig/newlib/libc/search/db_local.h 2002-06-25 01:05:08.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/search/db_local.h 2007-12-21 12:24:11.000000000 +0100 +@@ -50,7 +50,7 @@ + #define MAX_PAGE_NUMBER 0xffffffff /* >= # of pages in a file */ + typedef __uint32_t pgno_t; + #define MAX_PAGE_OFFSET 65535 /* >= # of bytes in a page */ +-typedef __uint16_t indx_t; ++typedef __uint_least16_t indx_t; + #define MAX_REC_NUMBER 0xffffffff /* >= # of records in a tree */ + typedef __uint32_t recno_t; + +@@ -191,12 +191,12 @@ + * P_16_COPY swap from one location to another + */ + #define M_16_SWAP(a) { \ +- __uint16_t _tmp = a; \ ++ __uint_least16_t _tmp = a; \ + ((char *)&a)[0] = ((char *)&_tmp)[1]; \ + ((char *)&a)[1] = ((char *)&_tmp)[0]; \ + } + #define P_16_SWAP(a) { \ +- __uint16_t _tmp = *(__uint16_t *)a; \ ++ __uint_least16_t _tmp = *(__uint_least16_t *)a; \ + ((char *)a)[0] = ((char *)&_tmp)[1]; \ + ((char *)a)[1] = ((char *)&_tmp)[0]; \ + } +diff -uNr newlib-1.15.0.orig/newlib/libc/search/extern.h newlib-1.15.0/newlib/libc/search/extern.h +--- newlib-1.15.0.orig/newlib/libc/search/extern.h 2002-06-20 21:51:31.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/search/extern.h 2007-12-21 12:24:11.000000000 +0100 +@@ -48,7 +48,7 @@ + int __delpair(HTAB *, BUFHEAD *, int); + int __expand_table(HTAB *); + int __find_bigpair(HTAB *, BUFHEAD *, int, char *, int); +-__uint16_t __find_last_page(HTAB *, BUFHEAD **); ++__uint_least16_t __find_last_page(HTAB *, BUFHEAD **); + void __free_ovflpage(HTAB *, BUFHEAD *); + BUFHEAD *__get_buf(HTAB *, __uint32_t, BUFHEAD *, int); + int __get_page(HTAB *, char *, __uint32_t, int, int, int); +diff -uNr newlib-1.15.0.orig/newlib/libc/search/hash_bigkey.c newlib-1.15.0/newlib/libc/search/hash_bigkey.c +--- newlib-1.15.0.orig/newlib/libc/search/hash_bigkey.c 2006-06-07 21:22:59.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/search/hash_bigkey.c 2007-12-21 12:24:11.000000000 +0100 +@@ -92,13 +92,13 @@ + BUFHEAD *bufp; + const DBT *key, *val; + { +- __uint16_t *p; ++ __uint_least16_t *p; + int key_size, n, val_size; +- __uint16_t space, move_bytes, off; ++ __uint_least16_t space, move_bytes, off; + char *cp, *key_data, *val_data; + + cp = bufp->page; /* Character pointer of p. */ +- p = (__uint16_t *)cp; ++ p = (__uint_least16_t *)cp; + + key_data = (char *)key->data; + key_size = key->size; +@@ -136,7 +136,7 @@ + OFFSET(p) = off; + } else + p[n - 2] = FULL_KEY; +- p = (__uint16_t *)bufp->page; ++ p = (__uint_least16_t *)bufp->page; + cp = bufp->page; + bufp->flags |= BUF_MOD; + } +@@ -166,7 +166,7 @@ + if (!bufp) + return (-1); + cp = bufp->page; +- p = (__uint16_t *)cp; ++ p = (__uint_least16_t *)cp; + } else + p[n] = FULL_KEY_DATA; + bufp->flags |= BUF_MOD; +@@ -191,12 +191,12 @@ + BUFHEAD *bufp; + { + BUFHEAD *last_bfp, *rbufp; +- __uint16_t *bp, pageno; ++ __uint_least16_t *bp, pageno; + int key_done, n; + + rbufp = bufp; + last_bfp = NULL; +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + pageno = 0; + key_done = 0; + +@@ -219,7 +219,7 @@ + last_bfp = rbufp; + if (!rbufp) + return (-1); /* Error. */ +- bp = (__uint16_t *)rbufp->page; ++ bp = (__uint_least16_t *)rbufp->page; + } + + /* +@@ -234,7 +234,7 @@ + pageno = bp[n - 1]; + + /* Now, bp is the first page of the pair. */ +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + if (n > 2) { + /* There is an overflow page. */ + bp[1] = pageno; +@@ -272,13 +272,13 @@ + char *key; + int size; + { +- __uint16_t *bp; ++ __uint_least16_t *bp; + char *p; + int ksize; +- __uint16_t bytes; ++ __uint_least16_t bytes; + char *kkey; + +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + p = bufp->page; + ksize = size; + kkey = key; +@@ -294,7 +294,7 @@ + if (!bufp) + return (-3); + p = bufp->page; +- bp = (__uint16_t *)p; ++ bp = (__uint_least16_t *)p; + ndx = 1; + } + +@@ -316,17 +316,17 @@ + * of the pair; 0 if there isn't any (i.e. big pair is the last key in the + * bucket) + */ +-extern __uint16_t ++extern __uint_least16_t + __find_last_page(hashp, bpp) + HTAB *hashp; + BUFHEAD **bpp; + { + BUFHEAD *bufp; +- __uint16_t *bp, pageno; ++ __uint_least16_t *bp, pageno; + int n; + + bufp = *bpp; +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + for (;;) { + n = bp[0]; + +@@ -343,7 +343,7 @@ + bufp = __get_buf(hashp, pageno, bufp, 0); + if (!bufp) + return (0); /* Need to indicate an error! */ +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + } + + *bpp = bufp; +@@ -366,15 +366,15 @@ + int set_current; + { + BUFHEAD *save_p; +- __uint16_t *bp, len, off, save_addr; ++ __uint_least16_t *bp, len, off, save_addr; + char *tp; + +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + while (bp[ndx + 1] == PARTIAL_KEY) { + bufp = __get_buf(hashp, bp[bp[0] - 1], bufp, 0); + if (!bufp) + return (-1); +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + ndx = 1; + } + +@@ -382,7 +382,7 @@ + bufp = __get_buf(hashp, bp[bp[0] - 1], bufp, 0); + if (!bufp) + return (-1); +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + save_p = bufp; + save_addr = save_p->addr; + off = bp[1]; +@@ -403,7 +403,7 @@ + bufp = __get_buf(hashp, bp[bp[0] - 1], bufp, 0); + if (!bufp) + return (-1); +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + } else { + /* The data is all on one page. */ + tp = (char *)bp; +@@ -422,7 +422,7 @@ + if (!hashp->cpage) + return (-1); + hashp->cndx = 1; +- if (!((__uint16_t *) ++ if (!((__uint_least16_t *) + hashp->cpage->page)[0]) { + hashp->cbucket++; + hashp->cpage = NULL; +@@ -454,14 +454,14 @@ + BUFHEAD *bufp; + int len, set; + { +- __uint16_t *bp; ++ __uint_least16_t *bp; + char *p; + BUFHEAD *xbp; +- __uint16_t save_addr; ++ __uint_least16_t save_addr; + int mylen, totlen; + + p = bufp->page; +- bp = (__uint16_t *)p; ++ bp = (__uint_least16_t *)p; + mylen = hashp->BSIZE - bp[1]; + save_addr = bufp->addr; + +@@ -481,7 +481,7 @@ + __get_buf(hashp, bp[bp[0] - 1], bufp, 0); + if (!hashp->cpage) + return (-1); +- else if (!((__uint16_t *)hashp->cpage->page)[0]) { ++ else if (!((__uint_least16_t *)hashp->cpage->page)[0]) { + hashp->cbucket++; + hashp->cpage = NULL; + } +@@ -533,10 +533,10 @@ + BUFHEAD *xbp; + char *p; + int mylen, totlen; +- __uint16_t *bp, save_addr; ++ __uint_least16_t *bp, save_addr; + + p = bufp->page; +- bp = (__uint16_t *)p; ++ bp = (__uint_least16_t *)p; + mylen = hashp->BSIZE - bp[1]; + + save_addr = bufp->addr; +@@ -579,11 +579,11 @@ + SPLIT_RETURN *ret; + { + BUFHEAD *tmpp; +- __uint16_t *tp; ++ __uint_least16_t *tp; + BUFHEAD *bp; + DBT key, val; + __uint32_t change; +- __uint16_t free_space, n, off; ++ __uint_least16_t free_space, n, off; + + bp = big_keyp; + +@@ -615,14 +615,14 @@ + (tmpp->ovfl ? tmpp->ovfl->addr : 0), (bp ? bp->addr : 0)); + #endif + tmpp->ovfl = bp; /* one of op/np point to big_keyp */ +- tp = (__uint16_t *)tmpp->page; ++ tp = (__uint_least16_t *)tmpp->page; + #ifdef DEBUG + assert(FREESPACE(tp) >= OVFLSIZE); + #endif + n = tp[0]; + off = OFFSET(tp); + free_space = FREESPACE(tp); +- tp[++n] = (__uint16_t)addr; ++ tp[++n] = (__uint_least16_t)addr; + tp[++n] = OVFLPAGE; + tp[0] = n; + OFFSET(tp) = off; +@@ -638,7 +638,7 @@ + ret->newp = np; + ret->oldp = op; + +- tp = (__uint16_t *)big_keyp->page; ++ tp = (__uint_least16_t *)big_keyp->page; + big_keyp->flags |= BUF_MOD; + if (tp[0] > 2) { + /* +diff -uNr newlib-1.15.0.orig/newlib/libc/search/hash_buf.c newlib-1.15.0/newlib/libc/search/hash_buf.c +--- newlib-1.15.0.orig/newlib/libc/search/hash_buf.c 2004-05-26 19:57:10.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/search/hash_buf.c 2007-12-21 12:24:11.000000000 +0100 +@@ -176,7 +176,7 @@ + BUFHEAD *next_xbp; + SEGMENT segp; + int segment_ndx; +- __uint16_t oaddr, *shortp; ++ __uint_least16_t oaddr, *shortp; + + oaddr = 0; + bp = LRU; +@@ -212,7 +212,7 @@ + * Set oaddr before __put_page so that you get it + * before bytes are swapped. + */ +- shortp = (__uint16_t *)bp->page; ++ shortp = (__uint_least16_t *)bp->page; + if (shortp[0]) + oaddr = shortp[shortp[0] - 1]; + if ((bp->flags & BUF_MOD) && __put_page(hashp, bp->page, +@@ -255,7 +255,7 @@ + (oaddr != xbp->addr)) + break; + +- shortp = (__uint16_t *)xbp->page; ++ shortp = (__uint_least16_t *)xbp->page; + if (shortp[0]) + /* set before __put_page */ + oaddr = shortp[shortp[0] - 1]; +diff -uNr newlib-1.15.0.orig/newlib/libc/search/hash.c newlib-1.15.0/newlib/libc/search/hash.c +--- newlib-1.15.0.orig/newlib/libc/search/hash.c 2004-05-26 19:57:10.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/search/hash.c 2007-12-21 12:24:11.000000000 +0100 +@@ -628,10 +628,10 @@ + { + BUFHEAD *rbufp; + BUFHEAD *bufp, *save_bufp; +- __uint16_t *bp; ++ __uint_least16_t *bp; + int n, ndx, off, size; + char *kp; +- __uint16_t pageno; ++ __uint_least16_t pageno; + + #ifdef HASH_STATISTICS + hash_accesses++; +@@ -647,7 +647,7 @@ + + /* Pin the bucket chain */ + rbufp->flags |= BUF_PIN; +- for (bp = (__uint16_t *)rbufp->page, n = *bp++, ndx = 1; ndx < n;) ++ for (bp = (__uint_least16_t *)rbufp->page, n = *bp++, ndx = 1; ndx < n;) + if (bp[1] >= REAL_KEY) { + /* Real key/data pair */ + if (size == off - *bp && +@@ -666,7 +666,7 @@ + return (ERROR); + } + /* FOR LOOP INIT */ +- bp = (__uint16_t *)rbufp->page; ++ bp = (__uint_least16_t *)rbufp->page; + n = *bp++; + ndx = 1; + off = hashp->BSIZE; +@@ -688,7 +688,7 @@ + return (ERROR); + } + /* FOR LOOP INIT */ +- bp = (__uint16_t *)rbufp->page; ++ bp = (__uint_least16_t *)rbufp->page; + n = *bp++; + ndx = 1; + off = hashp->BSIZE; +@@ -722,7 +722,7 @@ + save_bufp->flags &= ~BUF_PIN; + return (ABNORMAL); + case HASH_GET: +- bp = (__uint16_t *)rbufp->page; ++ bp = (__uint_least16_t *)rbufp->page; + if (bp[ndx + 1] < REAL_KEY) { + if (__big_return(hashp, rbufp, ndx, val, 0)) + return (ERROR); +@@ -758,7 +758,7 @@ + __uint32_t bucket; + BUFHEAD *bufp; + HTAB *hashp; +- __uint16_t *bp, ndx; ++ __uint_least16_t *bp, ndx; + + hashp = (HTAB *)dbp->internal; + if (flag && flag != R_FIRST && flag != R_NEXT) { +@@ -783,7 +783,7 @@ + if (!bufp) + return (ERROR); + hashp->cpage = bufp; +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + if (bp[0]) + break; + } +@@ -793,7 +793,7 @@ + return (ABNORMAL); + } + } else +- bp = (__uint16_t *)hashp->cpage->page; ++ bp = (__uint_least16_t *)hashp->cpage->page; + + #ifdef DEBUG + assert(bp); +@@ -804,7 +804,7 @@ + __get_buf(hashp, bp[hashp->cndx], bufp, 0); + if (!bufp) + return (ERROR); +- bp = (__uint16_t *)(bufp->page); ++ bp = (__uint_least16_t *)(bufp->page); + hashp->cndx = 1; + } + if (!bp[0]) { +diff -uNr newlib-1.15.0.orig/newlib/libc/search/hash.h newlib-1.15.0/newlib/libc/search/hash.h +--- newlib-1.15.0.orig/newlib/libc/search/hash.h 2002-07-02 20:18:58.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/search/hash.h 2007-12-21 12:24:11.000000000 +0100 +@@ -102,7 +102,7 @@ + #define NCACHED 32 /* number of bit maps and spare + * points */ + int spares[NCACHED];/* spare pages for overflow */ +- __uint16_t bitmaps[NCACHED]; /* address of overflow page ++ __uint_least16_t bitmaps[NCACHED]; /* address of overflow page + * bitmaps */ + } HASHHDR; + +diff -uNr newlib-1.15.0.orig/newlib/libc/search/hash_page.c newlib-1.15.0/newlib/libc/search/hash_page.c +--- newlib-1.15.0.orig/newlib/libc/search/hash_page.c 2002-09-19 23:28:51.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/search/hash_page.c 2007-12-21 12:24:11.000000000 +0100 +@@ -77,16 +77,16 @@ + static __uint32_t *fetch_bitmap(HTAB *, int); + static __uint32_t first_free(__uint32_t); + static int open_temp(HTAB *); +-static __uint16_t overflow_page(HTAB *); ++static __uint_least16_t overflow_page(HTAB *); + static void putpair(char *, const DBT *, const DBT *); +-static void squeeze_key(__uint16_t *, const DBT *, const DBT *); ++static void squeeze_key(__uint_least16_t *, const DBT *, const DBT *); + static int ugly_split + (HTAB *, __uint32_t, BUFHEAD *, BUFHEAD *, int, int); + + #define PAGE_INIT(P) { \ +- ((__uint16_t *)(P))[0] = 0; \ +- ((__uint16_t *)(P))[1] = hashp->BSIZE - 3 * sizeof(__uint16_t); \ +- ((__uint16_t *)(P))[2] = hashp->BSIZE; \ ++ ((__uint_least16_t *)(P))[0] = 0; \ ++ ((__uint_least16_t *)(P))[1] = hashp->BSIZE - 3 * sizeof(__uint_least16_t); \ ++ ((__uint_least16_t *)(P))[2] = hashp->BSIZE; \ + } + + /* +@@ -99,9 +99,9 @@ + char *p; + const DBT *key, *val; + { +- __uint16_t *bp, n, off; ++ __uint_least16_t *bp, n, off; + +- bp = (__uint16_t *)p; ++ bp = (__uint_least16_t *)p; + + /* Enter the key first. */ + n = bp[0]; +@@ -117,7 +117,7 @@ + + /* Adjust page info. */ + bp[0] = n; +- bp[n + 1] = off - ((n + 3) * sizeof(__uint16_t)); ++ bp[n + 1] = off - ((n + 3) * sizeof(__uint_least16_t)); + bp[n + 2] = off; + } + +@@ -132,11 +132,11 @@ + BUFHEAD *bufp; + int ndx; + { +- __uint16_t *bp, newoff; ++ __uint_least16_t *bp, newoff; + int n; +- __uint16_t pairlen; ++ __uint_least16_t pairlen; + +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + n = bp[0]; + + if (bp[ndx + 1] < REAL_KEY) +@@ -167,7 +167,7 @@ + } + /* Finally adjust the page data */ + bp[n] = OFFSET(bp) + pairlen; +- bp[n - 1] = bp[n + 1] + pairlen + 2 * sizeof(__uint16_t); ++ bp[n - 1] = bp[n + 1] + pairlen + 2 * sizeof(__uint_least16_t); + bp[0] = n - 2; + hashp->NKEYS--; + +@@ -185,15 +185,15 @@ + __uint32_t obucket, nbucket; + { + BUFHEAD *new_bufp, *old_bufp; +- __uint16_t *ino; ++ __uint_least16_t *ino; + char *np; + DBT key, val; + int n, ndx, retval; +- __uint16_t copyto, diff, off, moved; ++ __uint_least16_t copyto, diff, off, moved; + char *op; + +- copyto = (__uint16_t)hashp->BSIZE; +- off = (__uint16_t)hashp->BSIZE; ++ copyto = (__uint_least16_t)hashp->BSIZE; ++ off = (__uint_least16_t)hashp->BSIZE; + old_bufp = __get_buf(hashp, obucket, NULL, 0); + if (old_bufp == NULL) + return (-1); +@@ -204,7 +204,7 @@ + old_bufp->flags |= (BUF_MOD | BUF_PIN); + new_bufp->flags |= (BUF_MOD | BUF_PIN); + +- ino = (__uint16_t *)(op = old_bufp->page); ++ ino = (__uint_least16_t *)(op = old_bufp->page); + np = new_bufp->page; + + moved = 0; +@@ -246,13 +246,13 @@ + + /* Now clean up the page */ + ino[0] -= moved; +- FREESPACE(ino) = copyto - sizeof(__uint16_t) * (ino[0] + 3); ++ FREESPACE(ino) = copyto - sizeof(__uint_least16_t) * (ino[0] + 3); + OFFSET(ino) = copyto; + + #ifdef DEBUG3 + (void)fprintf(stderr, "split %d/%d\n", +- ((__uint16_t *)np)[0] / 2, +- ((__uint16_t *)op)[0] / 2); ++ ((__uint_least16_t *)np)[0] / 2, ++ ((__uint_least16_t *)op)[0] / 2); + #endif + /* unpin both pages */ + old_bufp->flags &= ~BUF_PIN; +@@ -284,22 +284,22 @@ + int moved; /* Number of pairs moved to new page. */ + { + BUFHEAD *bufp; /* Buffer header for ino */ +- __uint16_t *ino; /* Page keys come off of */ +- __uint16_t *np; /* New page */ +- __uint16_t *op; /* Page keys go on to if they aren't moving */ ++ __uint_least16_t *ino; /* Page keys come off of */ ++ __uint_least16_t *np; /* New page */ ++ __uint_least16_t *op; /* Page keys go on to if they aren't moving */ + + BUFHEAD *last_bfp; /* Last buf header OVFL needing to be freed */ + DBT key, val; + SPLIT_RETURN ret; +- __uint16_t n, off, ov_addr, scopyto; ++ __uint_least16_t n, off, ov_addr, scopyto; + char *cino; /* Character value of ino */ + + bufp = old_bufp; +- ino = (__uint16_t *)old_bufp->page; +- np = (__uint16_t *)new_bufp->page; +- op = (__uint16_t *)old_bufp->page; ++ ino = (__uint_least16_t *)old_bufp->page; ++ np = (__uint_least16_t *)new_bufp->page; ++ op = (__uint_least16_t *)old_bufp->page; + last_bfp = NULL; +- scopyto = (__uint16_t)copyto; /* ANSI */ ++ scopyto = (__uint_least16_t)copyto; /* ANSI */ + + n = ino[0] - 1; + while (n < ino[0]) { +@@ -310,16 +310,16 @@ + old_bufp = ret.oldp; + if (!old_bufp) + return (-1); +- op = (__uint16_t *)old_bufp->page; ++ op = (__uint_least16_t *)old_bufp->page; + new_bufp = ret.newp; + if (!new_bufp) + return (-1); +- np = (__uint16_t *)new_bufp->page; ++ np = (__uint_least16_t *)new_bufp->page; + bufp = ret.nextp; + if (!bufp) + return (0); + cino = (char *)bufp->page; +- ino = (__uint16_t *)cino; ++ ino = (__uint_least16_t *)cino; + last_bfp = ret.nextp; + } else if (ino[n + 1] == OVFLPAGE) { + ov_addr = ino[n]; +@@ -329,14 +329,14 @@ + */ + ino[0] -= (moved + 2); + FREESPACE(ino) = +- scopyto - sizeof(__uint16_t) * (ino[0] + 3); ++ scopyto - sizeof(__uint_least16_t) * (ino[0] + 3); + OFFSET(ino) = scopyto; + + bufp = __get_buf(hashp, ov_addr, bufp, 0); + if (!bufp) + return (-1); + +- ino = (__uint16_t *)bufp->page; ++ ino = (__uint_least16_t *)bufp->page; + n = 1; + scopyto = hashp->BSIZE; + moved = 0; +@@ -364,7 +364,7 @@ + __add_ovflpage(hashp, old_bufp); + if (!old_bufp) + return (-1); +- op = (__uint16_t *)old_bufp->page; ++ op = (__uint_least16_t *)old_bufp->page; + putpair((char *)op, &key, &val); + } + old_bufp->flags |= BUF_MOD; +@@ -377,7 +377,7 @@ + __add_ovflpage(hashp, new_bufp); + if (!new_bufp) + return (-1); +- np = (__uint16_t *)new_bufp->page; ++ np = (__uint_least16_t *)new_bufp->page; + putpair((char *)np, &key, &val); + } + new_bufp->flags |= BUF_MOD; +@@ -402,10 +402,10 @@ + BUFHEAD *bufp; + const DBT *key, *val; + { +- __uint16_t *bp, *sop; ++ __uint_least16_t *bp, *sop; + int do_expand; + +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + do_expand = 0; + while (bp[0] && (bp[2] < REAL_KEY || bp[bp[0]] < REAL_KEY)) + /* Exception case */ +@@ -417,7 +417,7 @@ + bufp = __get_buf(hashp, bp[bp[0] - 1], bufp, 0); + if (!bufp) + return (-1); +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + } else + /* Try to squeeze key on this page */ + if (FREESPACE(bp) > PAIRSIZE(key, val)) { +@@ -427,7 +427,7 @@ + bufp = __get_buf(hashp, bp[bp[0] - 1], bufp, 0); + if (!bufp) + return (-1); +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + } + + if (PAIRFITS(bp, key, val)) +@@ -437,7 +437,7 @@ + bufp = __add_ovflpage(hashp, bufp); + if (!bufp) + return (-1); +- sop = (__uint16_t *)bufp->page; ++ sop = (__uint_least16_t *)bufp->page; + + if (PAIRFITS(sop, key, val)) + putpair((char *)sop, key, val); +@@ -468,12 +468,12 @@ + HTAB *hashp; + BUFHEAD *bufp; + { +- __uint16_t *sp; +- __uint16_t ndx, ovfl_num; ++ __uint_least16_t *sp; ++ __uint_least16_t ndx, ovfl_num; + #ifdef DEBUG1 + int tmp1, tmp2; + #endif +- sp = (__uint16_t *)bufp->page; ++ sp = (__uint_least16_t *)bufp->page; + + /* Check if we are dynamically determining the fill factor */ + if (hashp->FFACTOR == DEF_FFACTOR) { +@@ -525,7 +525,7 @@ + { + int fd, page, size; + int rsize; +- __uint16_t *bp; ++ __uint_least16_t *bp; + + fd = hashp->fp; + size = hashp->BSIZE; +@@ -541,7 +541,7 @@ + if ((lseek(fd, (off_t)page << hashp->BSHIFT, SEEK_SET) == -1) || + ((rsize = read(fd, p, size)) == -1)) + return (-1); +- bp = (__uint16_t *)p; ++ bp = (__uint_least16_t *)p; + if (!rsize) + bp[0] = 0; /* We hit the EOF, so initialize a new page */ + else +@@ -600,9 +600,9 @@ + for (i = 0; i < max; i++) + M_32_SWAP(((int *)p)[i]); + } else { +- max = ((__uint16_t *)p)[0] + 2; ++ max = ((__uint_least16_t *)p)[0] + 2; + for (i = 0; i <= max; i++) +- M_16_SWAP(((__uint16_t *)p)[i]); ++ M_16_SWAP(((__uint_least16_t *)p)[i]); + } + } + if (is_bucket) +@@ -643,7 +643,7 @@ + hashp->BSIZE - clearbytes); + ip[clearints - 1] = ALL_SET << (nbits & BYTE_MASK); + SETBIT(ip, 0); +- hashp->BITMAPS[ndx] = (__uint16_t)pnum; ++ hashp->BITMAPS[ndx] = (__uint_least16_t)pnum; + hashp->mapp[ndx] = ip; + return (0); + } +@@ -663,13 +663,13 @@ + return (i); + } + +-static __uint16_t ++static __uint_least16_t + overflow_page(hashp) + HTAB *hashp; + { + __uint32_t *freep; + int max_free, offset, splitnum; +- __uint16_t addr; ++ __uint_least16_t addr; + int bit, first_page, free_bit, free_page, i, in_use_bits, j; + #ifdef DEBUG2 + int tmp1, tmp2; +@@ -816,16 +816,16 @@ + HTAB *hashp; + BUFHEAD *obufp; + { +- __uint16_t addr; ++ __uint_least16_t addr; + __uint32_t *freep; + int bit_address, free_page, free_bit; +- __uint16_t ndx; ++ __uint_least16_t ndx; + + addr = obufp->addr; + #ifdef DEBUG1 + (void)fprintf(stderr, "Freeing %d\n", addr); + #endif +- ndx = (((__uint16_t)addr) >> SPLITSHIFT); ++ ndx = (((__uint_least16_t)addr) >> SPLITSHIFT); + bit_address = + (ndx ? hashp->SPARES[ndx - 1] : 0) + (addr & SPLITMASK) - 1; + if (bit_address < hashp->LAST_FREED) +@@ -883,11 +883,11 @@ + */ + static void + squeeze_key(sp, key, val) +- __uint16_t *sp; ++ __uint_least16_t *sp; + const DBT *key, *val; + { + char *p; +- __uint16_t free_space, n, off, pageno; ++ __uint_least16_t free_space, n, off, pageno; + + p = (char *)sp; + n = sp[0]; +diff -uNr newlib-1.15.0.orig/newlib/libc/search/page.h newlib-1.15.0/newlib/libc/search/page.h +--- newlib-1.15.0.orig/newlib/libc/search/page.h 2002-06-20 21:51:31.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/search/page.h 2007-12-21 12:24:11.000000000 +0100 +@@ -74,20 +74,20 @@ + * You might as well do this up front. + */ + +-#define PAIRSIZE(K,D) (2*sizeof(__uint16_t) + (K)->size + (D)->size) +-#define BIGOVERHEAD (4*sizeof(__uint16_t)) +-#define KEYSIZE(K) (4*sizeof(__uint16_t) + (K)->size); +-#define OVFLSIZE (2*sizeof(__uint16_t)) ++#define PAIRSIZE(K,D) (2*sizeof(__uint_least16_t) + (K)->size + (D)->size) ++#define BIGOVERHEAD (4*sizeof(__uint_least16_t)) ++#define KEYSIZE(K) (4*sizeof(__uint_least16_t) + (K)->size); ++#define OVFLSIZE (2*sizeof(__uint_least16_t)) + #define FREESPACE(P) ((P)[(P)[0]+1]) + #define OFFSET(P) ((P)[(P)[0]+2]) + #define PAIRFITS(P,K,D) \ + (((P)[2] >= REAL_KEY) && \ + (PAIRSIZE((K),(D)) + OVFLSIZE) <= FREESPACE((P))) +-#define PAGE_META(N) (((N)+3) * sizeof(__uint16_t)) ++#define PAGE_META(N) (((N)+3) * sizeof(__uint_least16_t)) + + typedef struct { + BUFHEAD *newp; + BUFHEAD *oldp; + BUFHEAD *nextp; +- __uint16_t next_addr; ++ __uint_least16_t next_addr; + } SPLIT_RETURN; +diff -uNr newlib-1.15.0.orig/newlib/libc/sys/rtems/sys/param.h newlib-1.15.0/newlib/libc/sys/rtems/sys/param.h +--- newlib-1.15.0.orig/newlib/libc/sys/rtems/sys/param.h 2004-05-07 22:29:24.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/sys/rtems/sys/param.h 2007-12-21 12:24:11.000000000 +0100 +@@ -93,7 +93,6 @@ + #include + #include + #include +-#include + + #ifndef FALSE + #define FALSE 0 +diff -uNr newlib-1.15.0.orig/newlib/Makefile.am newlib-1.15.0/newlib/Makefile.am +--- newlib-1.15.0.orig/newlib/Makefile.am 2006-06-05 19:42:57.000000000 +0200 ++++ newlib-1.15.0/newlib/Makefile.am 2007-12-21 12:24:11.000000000 +0100 +@@ -81,7 +81,7 @@ + libc.a + endif + +-noinst_DATA = stmp-targ-include ++BUILT_SOURCES = stmp-targ-include + + toollib_DATA = $(CRT0) $(CRT1) + +@@ -186,9 +186,6 @@ + + $(CRT1_DIR)$(CRT1): ; @true + +- +-all-recursive: stmp-targ-include +- + # The targ-include directory just holds the includes files for the + # particular system and machine we have been configured for. It is + # used while building. +diff -uNr newlib-1.15.0.orig/newlib/Makefile.in newlib-1.15.0/newlib/Makefile.in +--- newlib-1.15.0.orig/newlib/Makefile.in 2006-12-18 21:32:41.000000000 +0100 ++++ newlib-1.15.0/newlib/Makefile.in 2007-12-21 12:24:11.000000000 +0100 +@@ -103,7 +103,7 @@ + pdf-recursive ps-recursive uninstall-info-recursive \ + uninstall-recursive + toollibDATA_INSTALL = $(INSTALL_DATA) +-DATA = $(noinst_DATA) $(toollib_DATA) ++DATA = $(toollib_DATA) + ETAGS = etags + CTAGS = ctags + DEJATOOL = $(PACKAGE) +@@ -205,12 +205,7 @@ + USE_LIBTOOL_FALSE = @USE_LIBTOOL_FALSE@ + USE_LIBTOOL_TRUE = @USE_LIBTOOL_TRUE@ + VERSION = @VERSION@ +-ac_ct_AR = @ac_ct_AR@ +-ac_ct_AS = @ac_ct_AS@ + ac_ct_CC = @ac_ct_CC@ +-ac_ct_RANLIB = @ac_ct_RANLIB@ +-ac_ct_READELF = @ac_ct_READELF@ +-ac_ct_STRIP = @ac_ct_STRIP@ + aext = @aext@ + am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ + am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +@@ -226,12 +221,16 @@ + build_os = @build_os@ + build_vendor = @build_vendor@ + datadir = @datadir@ ++datarootdir = @datarootdir@ ++docdir = @docdir@ ++dvidir = @dvidir@ + exec_prefix = @exec_prefix@ + host = @host@ + host_alias = @host_alias@ + host_cpu = @host_cpu@ + host_os = @host_os@ + host_vendor = @host_vendor@ ++htmldir = @htmldir@ + includedir = @includedir@ + infodir = @infodir@ + install_sh = @install_sh@ +@@ -240,6 +239,7 @@ + libdir = @libdir@ + libexecdir = @libexecdir@ + libm_machine_dir = @libm_machine_dir@ ++localedir = @localedir@ + localstatedir = @localstatedir@ + lpfx = @lpfx@ + machine_dir = @machine_dir@ +@@ -248,8 +248,10 @@ + newlib_basedir = @newlib_basedir@ + oext = @oext@ + oldincludedir = @oldincludedir@ ++pdfdir = @pdfdir@ + prefix = @prefix@ + program_transform_name = @program_transform_name@ ++psdir = @psdir@ + sbindir = @sbindir@ + sharedstatedir = @sharedstatedir@ + subdirs = @subdirs@ +@@ -323,7 +325,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 +@@ -382,7 +384,7 @@ + + # dejagnu support + RUNTESTFLAGS = +-all: newlib.h ++all: $(BUILT_SOURCES) newlib.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + + .SUFFIXES: +@@ -687,14 +689,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 +@@ -719,6 +723,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 \ +@@ -837,8 +842,6 @@ + + $(CRT1_DIR)$(CRT1): ; @true + +-all-recursive: stmp-targ-include +- + # The targ-include directory just holds the includes files for the + # particular system and machine we have been configured for. It is + # used while building. -- cgit v1.2.3