Housekeeping.

This commit is contained in:
Ralf Corsepius
2010-05-04 15:49:26 +00:00
parent 3da0e1ed20
commit c65f9b45e3
8 changed files with 0 additions and 50755 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,303 +0,0 @@
diff -Naur gcc-4.5.0.orig/ChangeLog.rtems gcc-core-4.5.0-rtems4.11-20100419/ChangeLog.rtems
--- gcc-4.5.0.orig/ChangeLog.rtems 1970-01-01 01:00:00.000000000 +0100
+++ gcc-core-4.5.0-rtems4.11-20100419/ChangeLog.rtems 2010-04-14 13:32:03.000000000 +0200
@@ -0,0 +1,4 @@
+ Ralf Corsépius <ralf.corsepius@rtems.org>
+
+ * configure, configure.ac (skipdirs): Add target-libiberty.
+
diff -Naur gcc-4.5.0.orig/configure gcc-core-4.5.0-rtems4.11-20100419/configure
--- gcc-4.5.0.orig/configure 2010-04-02 19:35:47.000000000 +0200
+++ gcc-core-4.5.0-rtems4.11-20100419/configure 2010-04-14 13:32:03.000000000 +0200
@@ -3291,6 +3291,7 @@
noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss ${libgcj} target-libmudflap"
;;
*-*-rtems*)
+ skipdirs="$skipdirs target-libiberty"
noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
;;
# The tpf target doesn't support gdb yet.
@@ -7913,7 +7914,7 @@
# to it. This is right: we don't want to search that directory
# for binaries, but we want the header files in there, so add
# them explicitly.
- FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/$(HOST_SUBDIR)/gcc/include'
+ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/$(HOST_SUBDIR)/gcc/include -isystem $$r/$(HOST_SUBDIR)/gcc/include-fixed'
# Someone might think of using the pre-installed headers on
# Canadian crosses, in case the installed compiler is not fully
diff -Naur gcc-4.5.0.orig/configure.ac gcc-core-4.5.0-rtems4.11-20100419/configure.ac
--- gcc-4.5.0.orig/configure.ac 2010-04-02 19:35:47.000000000 +0200
+++ gcc-core-4.5.0-rtems4.11-20100419/configure.ac 2010-04-14 13:32:03.000000000 +0200
@@ -528,6 +528,7 @@
noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss ${libgcj} target-libmudflap"
;;
*-*-rtems*)
+ skipdirs="$skipdirs target-libiberty"
noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
;;
# The tpf target doesn't support gdb yet.
@@ -3001,7 +3002,7 @@
# to it. This is right: we don't want to search that directory
# for binaries, but we want the header files in there, so add
# them explicitly.
- FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/$(HOST_SUBDIR)/gcc/include'
+ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/$(HOST_SUBDIR)/gcc/include -isystem $$r/$(HOST_SUBDIR)/gcc/include-fixed'
# Someone might think of using the pre-installed headers on
# Canadian crosses, in case the installed compiler is not fully
diff -Naur gcc-4.5.0.orig/gcc/ChangeLog.rtems gcc-core-4.5.0-rtems4.11-20100419/gcc/ChangeLog.rtems
--- gcc-4.5.0.orig/gcc/ChangeLog.rtems 1970-01-01 01:00:00.000000000 +0100
+++ gcc-core-4.5.0-rtems4.11-20100419/gcc/ChangeLog.rtems 2010-04-19 15:48:15.000000000 +0200
@@ -0,0 +1,42 @@
+2010-04-19 Ralf Corsépius <ralf.corsepius@rtems.org>
+
+ * ginclude/stddef.h: Define _MACHINE_ANSI_H_ if _X86_64_ANSI_H_ is
+ defined (Used by amd64-*-netbsdelf5.*).
+
+2010-04-18 Ralf Corsépius <ralf.corsepius@rtems.org>
+
+ * ginclude/stddef.h: Define _MACHINE_ANSI_H_ if _I386_ANSI_H_ is
+ defined (Used by i386-*-netbsdelf5.*).
+
+2010-03-15 Ralf Corsépius <ralf.corsepius@rtems.org>
+
+ Patch from Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>:
+ * config/arm/rtems-elf.h, config/arm/t-rtems: Add optional support
+ for vfp FPU model
+
+2009-12-01 Ralf Corsépius <ralf.corsepius@rtems.org>
+
+ * config/avr/avr.h (LINK_SPEC): Pass -m avrN to ld for -mmcu=avrN.
+
+2009-11-04 Ralf Corsépius <ralf.corsepius@rtems.org>
+
+ * config/m32c/rtems.h, config/m68k/rtemself.h,
+ config/m68k/rtemself.h, config/sh/rtemself.h,
+ config/sparc/rtemself.h: Undef WCHAR_TYPE_SIZE, WCHAR_TYPE.
+ (Resets WCHAR_TYPE's to defaults. Prevents broken GCC tm_files
+ to interfere and cause wchar_t/wint_t incompatibilities).
+
+2009-10-15 Ralf Corsépius <ralf.corsepius@rtems.org>
+
+ * config/avr/t-rtems: Don't build _exit.
+
+ Ralf Corsépius <ralf.corsepius@rtems.org>
+
+ * config/rs6000/rtems.h: Support for custom RTEMS multilibs.
+ Support TARGET_E500.
+ * config/rs6000/t-rtems: Custom RTEMS multilibs.
+
+ Ralf Corsépius <ralf.corsepius@rtems.org>
+
+ * config/mips/elf.h: Remove NO_IMPLICIT_EXTERN_C.
+
diff -Naur gcc-4.5.0.orig/gcc/config/arm/rtems-elf.h gcc-core-4.5.0-rtems4.11-20100419/gcc/config/arm/rtems-elf.h
--- gcc-4.5.0.orig/gcc/config/arm/rtems-elf.h 2009-03-25 13:54:16.000000000 +0100
+++ gcc-core-4.5.0-rtems4.11-20100419/gcc/config/arm/rtems-elf.h 2010-04-14 13:32:03.000000000 +0200
@@ -36,7 +36,7 @@
*/
#undef SUBTARGET_EXTRA_ASM_SPEC
#define SUBTARGET_EXTRA_ASM_SPEC "\
- %{!mhard-float: %{!msoft-float:-mfpu=softfpa}}"
+ %{!mhard-float: %{!mfpu=vfp: %{!msoft-float:-mfpu=softfpa}}}"
/*
* The default includes --start-group and --end-group which conflicts
diff -Naur gcc-4.5.0.orig/gcc/config/arm/t-rtems gcc-core-4.5.0-rtems4.11-20100419/gcc/config/arm/t-rtems
--- gcc-4.5.0.orig/gcc/config/arm/t-rtems 2004-11-23 06:30:32.000000000 +0100
+++ gcc-core-4.5.0-rtems4.11-20100419/gcc/config/arm/t-rtems 2010-04-14 13:32:03.000000000 +0200
@@ -5,6 +5,41 @@
MULTILIB_EXCEPTIONS =
MULTILIB_MATCHES = marm=mno-thumb
-MULTILIB_OPTIONS += msoft-float/mhard-float
-MULTILIB_DIRNAMES += soft fpu
-MULTILIB_EXCEPTIONS += *mthumb/*mhard-float*
+MULTILIB_OPTIONS += mhard-float/mfloat-abi=softfp
+MULTILIB_DIRNAMES += fpu softfp
+MULTILIB_EXCEPTIONS += *mthumb*/*mhard-float* *mthumb*/*mfloat-abi=softfp*
+MULTILIB_MATCHES =
+
+MULTILIB_OPTIONS += mfpu=vfp
+MULTILIB_DIRNAMES += vfp
+MULTILIB_EXCEPTIONS += *mhard-float*/*mfpu=vfp* *marm*/*mfloat-abi=softfp*/*mfpu=fpa*
+MULTILIB_EXCLUSIONS += !mthumb/mfloat-abi=softfp/!mfpu=vfp
+
+# default float model is fpa, so don't create a explicit copy of it
+MULTILIB_EXCEPTIONS += *marm*/*mfpa*
+
+# permutations of the options which are useful (+) or make no sense (-),
+# defaults are in brackets:
+# + (arm/soft/fpa)
+# + (arm/soft)/vfp
+# - (arm)/softfp(/fpa)
+# + (arm)/softfp/vfp
+# + (arm)/hard-float(/fpa)
+# - (arm)/hard-float/vfp
+# + thumb/(soft/fpa)
+# + thumb/(soft/)vfp
+# - thumb/softfp/fpa
+# - thumb/softfp/vfp
+# - thumb/hard-float/fpa
+# - thumb/hard-float/vfp
+
+# subdirs to be used for multilibs and their respective options:
+#/thumb/vfp -> thumb/soft/vfp
+#/thumb/fpa -> thumb/soft/fpa
+#/thumb -> thumb/soft/fpa
+#/vfp -> arm/soft/vfp
+#/softfp/vfp -> arm/softfp/cfp
+#/fpu/fpa -> arm/hard/fpa
+#/fpu -> arm/hard/fpa
+#/fpa -> arm/soft/fpa
+#. -> arm/soft/fpa
diff -Naur gcc-4.5.0.orig/gcc/config/avr/t-rtems gcc-core-4.5.0-rtems4.11-20100419/gcc/config/avr/t-rtems
--- gcc-4.5.0.orig/gcc/config/avr/t-rtems 2004-11-23 04:44:03.000000000 +0100
+++ gcc-core-4.5.0-rtems4.11-20100419/gcc/config/avr/t-rtems 2010-04-14 13:32:03.000000000 +0200
@@ -1,3 +1,4 @@
# Multilibs for avr RTEMS targets.
-# ATM, this is just a stub
+# RTEMS uses _exit from newlib
+LIB1ASMFUNCS := $(filter-out _exit,$(LIB1ASMFUNCS))
diff -Naur gcc-4.5.0.orig/gcc/config/m32c/rtems.h gcc-core-4.5.0-rtems4.11-20100419/gcc/config/m32c/rtems.h
--- gcc-4.5.0.orig/gcc/config/m32c/rtems.h 2008-12-01 17:34:42.000000000 +0100
+++ gcc-core-4.5.0-rtems4.11-20100419/gcc/config/m32c/rtems.h 2010-04-14 13:32:03.000000000 +0200
@@ -29,5 +29,9 @@
} \
while (0)
-/* Use the default */
+/* Use the defaults */
#undef LINK_GCC_C_SEQUENCE_SPEC
+
+#undef WCHAR_TYPE
+
+#undef WCHAR_TYPE_SIZE
diff -Naur gcc-4.5.0.orig/gcc/config/m68k/rtemself.h gcc-core-4.5.0-rtems4.11-20100419/gcc/config/m68k/rtemself.h
--- gcc-4.5.0.orig/gcc/config/m68k/rtemself.h 2007-08-02 12:49:31.000000000 +0200
+++ gcc-core-4.5.0-rtems4.11-20100419/gcc/config/m68k/rtemself.h 2010-04-14 13:32:03.000000000 +0200
@@ -31,3 +31,8 @@
builtin_assert ("system=rtems"); \
} \
while (0)
+
+/* Use the defaults */
+#undef WCHAR_TYPE
+
+#undef WCHAR_TYPE_SIZE
diff -Naur gcc-4.5.0.orig/gcc/config/mips/elf.h gcc-core-4.5.0-rtems4.11-20100419/gcc/config/mips/elf.h
--- gcc-4.5.0.orig/gcc/config/mips/elf.h 2007-08-02 12:49:31.000000000 +0200
+++ gcc-core-4.5.0-rtems4.11-20100419/gcc/config/mips/elf.h 2010-04-14 13:32:03.000000000 +0200
@@ -48,6 +48,4 @@
#undef ENDFILE_SPEC
#define ENDFILE_SPEC "crtend%O%s crtn%O%s"
-#define NO_IMPLICIT_EXTERN_C 1
-
#define HANDLE_PRAGMA_PACK_PUSH_POP 1
diff -Naur gcc-4.5.0.orig/gcc/config/rs6000/rtems.h gcc-core-4.5.0-rtems4.11-20100419/gcc/config/rs6000/rtems.h
--- gcc-4.5.0.orig/gcc/config/rs6000/rtems.h 2007-08-02 12:49:31.000000000 +0200
+++ gcc-core-4.5.0-rtems4.11-20100419/gcc/config/rs6000/rtems.h 2010-04-14 13:32:03.000000000 +0200
@@ -49,8 +49,22 @@
%{mcpu=604: %{!Dppc*: %{!Dmpc*: -Dmpc604} } } \
%{mcpu=750: %{!Dppc*: %{!Dmpc*: -Dmpc750} } } \
%{mcpu=821: %{!Dppc*: %{!Dmpc*: -Dmpc821} } } \
-%{mcpu=860: %{!Dppc*: %{!Dmpc*: -Dmpc860} } }"
+%{mcpu=860: %{!Dppc*: %{!Dmpc*: -Dmpc860} } } \
+%{mcpu=8540: %{!Dppc*: %{!Dmpc*: -Dppc8540} } }"
#undef SUBSUBTARGET_EXTRA_SPECS
#define SUBSUBTARGET_EXTRA_SPECS \
{ "cpp_os_rtems", CPP_OS_RTEMS_SPEC }
+
+#undef SUBSUBTARGET_OVERRIDE_OPTIONS
+#define SUBSUBTARGET_OVERRIDE_OPTIONS \
+ do { \
+ if (TARGET_E500) \
+ { \
+ rs6000_float_gprs = 1; \
+ } \
+ } while(0)
+
+#undef WCHAR_TYPE
+
+#undef WCHAR_TYPE_SIZE
diff -Naur gcc-4.5.0.orig/gcc/config/rs6000/t-rtems gcc-core-4.5.0-rtems4.11-20100419/gcc/config/rs6000/t-rtems
--- gcc-4.5.0.orig/gcc/config/rs6000/t-rtems 2009-04-21 21:03:23.000000000 +0200
+++ gcc-core-4.5.0-rtems4.11-20100419/gcc/config/rs6000/t-rtems 2010-04-14 13:32:03.000000000 +0200
@@ -19,12 +19,12 @@
# <http://www.gnu.org/licenses/>.
MULTILIB_OPTIONS = \
-mcpu=403/mcpu=505/mcpu=601/mcpu=603e/mcpu=604/mcpu=860/mcpu=7400 \
+mcpu=403/mcpu=505/mcpu=601/mcpu=603e/mcpu=604/mcpu=860/mcpu=7400/mcpu=8540 \
Dmpc8260 \
msoft-float
MULTILIB_DIRNAMES = \
-m403 m505 m601 m603e m604 m860 m7400 \
+m403 m505 m601 m603e m604 m860 m7400 m8540 \
mpc8260 \
nof
@@ -47,6 +47,10 @@
# Map 750 to .
MULTILIB_MATCHES += mcpu?750=
+# Map e500, 8548 to 8540
+MULTILIB_MATCHES += mcpu?8540=mcpu?e500
+MULTILIB_MATCHES += mcpu?8540=mcpu?8548
+
# Soft-float only, default implies msoft-float
# NOTE: Must match with MULTILIB_MATCHES_FLOAT and MULTILIB_MATCHES
MULTILIB_SOFTFLOAT_ONLY = \
@@ -80,3 +84,4 @@
MULTILIB_EXCEPTIONS += *mcpu=750/Dmpc*
MULTILIB_EXCEPTIONS += *mcpu=860/Dmpc*
MULTILIB_EXCEPTIONS += *mcpu=7400/Dmpc*
+MULTILIB_EXCEPTIONS += *mcpu=8540/Dmpc*
diff -Naur gcc-4.5.0.orig/gcc/config/sh/rtemself.h gcc-core-4.5.0-rtems4.11-20100419/gcc/config/sh/rtemself.h
--- gcc-4.5.0.orig/gcc/config/sh/rtemself.h 2007-08-02 12:49:31.000000000 +0200
+++ gcc-core-4.5.0-rtems4.11-20100419/gcc/config/sh/rtemself.h 2010-04-14 13:32:03.000000000 +0200
@@ -24,3 +24,8 @@
builtin_define( "__rtems__" ); \
builtin_assert( "system=rtems" ); \
} while (0)
+
+/* Use the defaults */
+#undef WCHAR_TYPE
+
+#undef WCHAR_TYPE_SIZE
diff -Naur gcc-4.5.0.orig/gcc/config/sparc/rtemself.h gcc-core-4.5.0-rtems4.11-20100419/gcc/config/sparc/rtemself.h
--- gcc-4.5.0.orig/gcc/config/sparc/rtemself.h 2007-08-02 12:49:31.000000000 +0200
+++ gcc-core-4.5.0-rtems4.11-20100419/gcc/config/sparc/rtemself.h 2010-04-14 13:32:03.000000000 +0200
@@ -29,5 +29,9 @@
} \
while (0)
-/* Use the default */
+/* Use the defaults */
#undef LINK_GCC_C_SEQUENCE_SPEC
+
+#undef WCHAR_TYPE
+
+#undef WCHAR_TYPE_SIZE
diff -Naur gcc-4.5.0.orig/gcc/ginclude/stddef.h gcc-core-4.5.0-rtems4.11-20100419/gcc/ginclude/stddef.h
--- gcc-4.5.0.orig/gcc/ginclude/stddef.h 2009-04-09 17:00:19.000000000 +0200
+++ gcc-core-4.5.0-rtems4.11-20100419/gcc/ginclude/stddef.h 2010-04-19 15:49:45.000000000 +0200
@@ -53,7 +53,13 @@
one less case to deal with in the following. */
#if defined (__BSD_NET2__) || defined (____386BSD____) || (defined (__FreeBSD__) && (__FreeBSD__ < 5)) || defined(__NetBSD__)
#include <machine/ansi.h>
+#if !defined(_MACHINE_ANSI_H_)
+#if defined(_I386_ANSI_H_) || defined(_X86_64_ANSI_H_)
+#define _MACHINE_ANSI_H_
#endif
+#endif
+#endif
+
/* On FreeBSD 5, machine/ansi.h does not exist anymore... */
#if defined (__FreeBSD__) && (__FreeBSD__ >= 5)
#include <sys/_types.h>

View File

@@ -1,667 +0,0 @@
diff -Naur newlib-1.18.0.orig/newlib/ChangeLog.rtems newlib-1.18.0-rtems4.10-20100210/newlib/ChangeLog.rtems
--- newlib-1.18.0.orig/newlib/ChangeLog.rtems 1970-01-01 01:00:00.000000000 +0100
+++ newlib-1.18.0-rtems4.10-20100210/newlib/ChangeLog.rtems 2010-02-10 15:20:30.000000000 +0100
@@ -0,0 +1,171 @@
+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-16 Ralf Corsépius <ralf.corsepius@rtems.org>
+
+ * libc/sys/rtems/crt0.c: Use while(1) in _exit stub to silence GCC "noreturn"
+ warning.
+
+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/libc/include/inttypes.h newlib-1.18.0-rtems4.10-20100210/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-rtems4.10-20100210/newlib/libc/include/inttypes.h 2010-02-05 12:38:57.000000000 +0100
@@ -242,6 +242,20 @@
#define SCNxMAX __SCNMAX(x)
/* ptr types */
+#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
+#error cannot determine PRI*PTR
+#endif
+
+#if 0
#if __have_long64
#define __PRIPTR(x) __STRINGIFY(l##x)
#define __SCNPTR(x) __STRINGIFY(l##x)
@@ -252,6 +266,7 @@
#define __PRIPTR(x) __STRINGIFY(x)
#define __SCNPTR(x) __STRINGIFY(x)
#endif
+#endif
#define PRIdPTR __PRIPTR(d)
#define PRIiPTR __PRIPTR(i)
diff -Naur newlib-1.18.0.orig/newlib/libc/include/machine/_default_types.h newlib-1.18.0-rtems4.10-20100210/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-rtems4.10-20100210/newlib/libc/include/machine/_default_types.h 2010-02-05 12:38:57.000000000 +0100
@@ -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/stdint.h newlib-1.18.0-rtems4.10-20100210/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-rtems4.10-20100210/newlib/libc/include/stdint.h 2010-02-05 12:38:57.000000000 +0100
@@ -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 */
diff -Naur newlib-1.18.0.orig/newlib/libc/machine/powerpc/Makefile.am newlib-1.18.0-rtems4.10-20100210/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-rtems4.10-20100210/newlib/libc/machine/powerpc/Makefile.am 2010-02-05 12:38:57.000000000 +0100
@@ -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-rtems4.10-20100210/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-rtems4.10-20100210/newlib/libc/machine/powerpc/Makefile.in 2010-02-05 12:38:57.000000000 +0100
@@ -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-rtems4.10-20100210/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-rtems4.10-20100210/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/posix/telldir.c newlib-1.18.0-rtems4.10-20100210/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-rtems4.10-20100210/newlib/libc/posix/telldir.c 2010-02-10 15:22:07.000000000 +0100
@@ -119,7 +119,6 @@
register struct ddloc *lp;
register struct ddloc **prevlp;
struct dirent *dp;
- extern long lseek();
#ifdef HAVE_DD_LOCK
__lock_acquire(dd_hash_lock);
@@ -169,26 +168,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-rtems4.10-20100210/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-rtems4.10-20100210/newlib/libc/search/db_local.h 2010-02-05 12:38:57.000000000 +0100
@@ -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-rtems4.10-20100210/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-rtems4.10-20100210/newlib/libc/search/extern.h 2010-02-05 12:38:57.000000000 +0100
@@ -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-rtems4.10-20100210/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-rtems4.10-20100210/newlib/libc/search/hash_buf.c 2010-02-05 12:38:57.000000000 +0100
@@ -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-rtems4.10-20100210/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-rtems4.10-20100210/newlib/libc/search/hash.h 2010-02-05 12:38:57.000000000 +0100
@@ -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/sys/rtems/machine/_types.h newlib-1.18.0-rtems4.10-20100210/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-rtems4.10-20100210/newlib/libc/sys/rtems/machine/_types.h 2010-02-10 15:18:53.000000000 +0100
@@ -31,4 +31,22 @@
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
+
#endif
diff -Naur newlib-1.18.0.orig/newlib/libm/common/modfl.c newlib-1.18.0-rtems4.10-20100210/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-rtems4.10-20100210/newlib/libm/common/modfl.c 2010-02-05 12:38:57.000000000 +0100
@@ -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_llrint.c newlib-1.18.0-rtems4.10-20100210/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-rtems4.10-20100210/newlib/libm/common/sf_llrint.c 2010-02-05 12:38:57.000000000 +0100
@@ -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_round.c newlib-1.18.0-rtems4.10-20100210/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-rtems4.10-20100210/newlib/libm/common/sf_round.c 2010-02-05 12:38:57.000000000 +0100
@@ -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/Makefile.am newlib-1.18.0-rtems4.10-20100210/newlib/Makefile.am
--- newlib-1.18.0.orig/newlib/Makefile.am 2009-08-18 23:48:05.000000000 +0200
+++ newlib-1.18.0-rtems4.10-20100210/newlib/Makefile.am 2010-02-05 12:38:57.000000000 +0100
@@ -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-rtems4.10-20100210/newlib/Makefile.in
--- newlib-1.18.0.orig/newlib/Makefile.in 2009-10-21 00:43:45.000000000 +0200
+++ newlib-1.18.0-rtems4.10-20100210/newlib/Makefile.in 2010-02-05 12:38:57.000000000 +0100
@@ -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 \

View File

@@ -1,744 +0,0 @@
diff -Naur newlib-1.18.0.orig/newlib/ChangeLog.rtems newlib-1.18.0-rtems4.10-20100310/newlib/ChangeLog.rtems
--- newlib-1.18.0.orig/newlib/ChangeLog.rtems 1970-01-01 01:00:00.000000000 +0100
+++ newlib-1.18.0-rtems4.10-20100310/newlib/ChangeLog.rtems 2010-03-10 12:00:34.000000000 +0100
@@ -0,0 +1,175 @@
+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-16 Ralf Corsépius <ralf.corsepius@rtems.org>
+
+ * libc/sys/rtems/crt0.c: Use while(1) in _exit stub to silence GCC "noreturn"
+ warning.
+
+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/libc/include/inttypes.h newlib-1.18.0-rtems4.10-20100310/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-rtems4.10-20100310/newlib/libc/include/inttypes.h 2010-02-05 12:38:57.000000000 +0100
@@ -242,6 +242,20 @@
#define SCNxMAX __SCNMAX(x)
/* ptr types */
+#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
+#error cannot determine PRI*PTR
+#endif
+
+#if 0
#if __have_long64
#define __PRIPTR(x) __STRINGIFY(l##x)
#define __SCNPTR(x) __STRINGIFY(l##x)
@@ -252,6 +266,7 @@
#define __PRIPTR(x) __STRINGIFY(x)
#define __SCNPTR(x) __STRINGIFY(x)
#endif
+#endif
#define PRIdPTR __PRIPTR(d)
#define PRIiPTR __PRIPTR(i)
diff -Naur newlib-1.18.0.orig/newlib/libc/include/machine/_default_types.h newlib-1.18.0-rtems4.10-20100310/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-rtems4.10-20100310/newlib/libc/include/machine/_default_types.h 2010-02-05 12:38:57.000000000 +0100
@@ -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/stdint.h newlib-1.18.0-rtems4.10-20100310/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-rtems4.10-20100310/newlib/libc/include/stdint.h 2010-02-05 12:38:57.000000000 +0100
@@ -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 */
diff -Naur newlib-1.18.0.orig/newlib/libc/machine/powerpc/Makefile.am newlib-1.18.0-rtems4.10-20100310/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-rtems4.10-20100310/newlib/libc/machine/powerpc/Makefile.am 2010-02-05 12:38:57.000000000 +0100
@@ -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-rtems4.10-20100310/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-rtems4.10-20100310/newlib/libc/machine/powerpc/Makefile.in 2010-02-05 12:38:57.000000000 +0100
@@ -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-rtems4.10-20100310/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-rtems4.10-20100310/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/posix/telldir.c newlib-1.18.0-rtems4.10-20100310/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-rtems4.10-20100310/newlib/libc/posix/telldir.c 2010-03-10 11:01:57.000000000 +0100
@@ -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-rtems4.10-20100310/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-rtems4.10-20100310/newlib/libc/search/db_local.h 2010-02-05 12:38:57.000000000 +0100
@@ -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-rtems4.10-20100310/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-rtems4.10-20100310/newlib/libc/search/extern.h 2010-02-05 12:38:57.000000000 +0100
@@ -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-rtems4.10-20100310/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-rtems4.10-20100310/newlib/libc/search/hash_buf.c 2010-02-05 12:38:57.000000000 +0100
@@ -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-rtems4.10-20100310/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-rtems4.10-20100310/newlib/libc/search/hash.h 2010-02-05 12:38:57.000000000 +0100
@@ -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/sys/rtems/machine/_types.h newlib-1.18.0-rtems4.10-20100310/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-rtems4.10-20100310/newlib/libc/sys/rtems/machine/_types.h 2010-02-10 15:18:53.000000000 +0100
@@ -31,4 +31,22 @@
typedef __int32_t blksize_t;
typedef __int32_t blkcnt_t;
+
+/* EXPERIMENTAL: Use 64bit types */
+#if defined(__arm__) || 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
+
#endif
diff -Naur newlib-1.18.0.orig/newlib/libm/common/modfl.c newlib-1.18.0-rtems4.10-20100310/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-rtems4.10-20100310/newlib/libm/common/modfl.c 2010-02-05 12:38:57.000000000 +0100
@@ -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_llrint.c newlib-1.18.0-rtems4.10-20100310/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-rtems4.10-20100310/newlib/libm/common/sf_llrint.c 2010-02-05 12:38:57.000000000 +0100
@@ -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_round.c newlib-1.18.0-rtems4.10-20100310/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-rtems4.10-20100310/newlib/libm/common/sf_round.c 2010-02-05 12:38:57.000000000 +0100
@@ -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/Makefile.am newlib-1.18.0-rtems4.10-20100310/newlib/Makefile.am
--- newlib-1.18.0.orig/newlib/Makefile.am 2009-08-18 23:48:05.000000000 +0200
+++ newlib-1.18.0-rtems4.10-20100310/newlib/Makefile.am 2010-02-05 12:38:57.000000000 +0100
@@ -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-rtems4.10-20100310/newlib/Makefile.in
--- newlib-1.18.0.orig/newlib/Makefile.in 2009-10-21 00:43:45.000000000 +0200
+++ newlib-1.18.0-rtems4.10-20100310/newlib/Makefile.in 2010-02-05 12:38:57.000000000 +0100
@@ -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 \

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff