From 9e3d90dac3ce51d8be7fda69f63aaf1fe5148b0b Mon Sep 17 00:00:00 2001 From: Ralf Corsepius Date: Wed, 11 Mar 2009 08:41:22 +0000 Subject: Address __assert etc. --- .../patches/newlib-1.17.0-rtems4.10-20090311.diff | 890 +++++++++++++++++++++ 1 file changed, 890 insertions(+) create mode 100644 contrib/crossrpms/patches/newlib-1.17.0-rtems4.10-20090311.diff diff --git a/contrib/crossrpms/patches/newlib-1.17.0-rtems4.10-20090311.diff b/contrib/crossrpms/patches/newlib-1.17.0-rtems4.10-20090311.diff new file mode 100644 index 0000000000..ed8fba1336 --- /dev/null +++ b/contrib/crossrpms/patches/newlib-1.17.0-rtems4.10-20090311.diff @@ -0,0 +1,890 @@ +diff -Naur newlib-1.17.0.orig/newlib/ChangeLog.rtems newlib-1.17.0/newlib/ChangeLog.rtems +--- newlib-1.17.0.orig/newlib/ChangeLog.rtems 1970-01-01 01:00:00.000000000 +0100 ++++ newlib-1.17.0/newlib/ChangeLog.rtems 2009-03-11 05:10:33.000000000 +0100 +@@ -0,0 +1,51 @@ ++2009-03-11 Ralf Corsépius ++ ++ * libc/stdlib/assert.c: Don't build __assert_func. ++ * libc/sys/rtems/crt0.c: Add __assert_func. ++ ++2009-03-09 Ralf Corsépius ++ ++ * 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 ++ ++ * libc/unix/ttyname.c: Sync with newlib-cvs. ++ * configure.host: Add -DHAVE_BLKSIZE to newlib_cflags. ++ ++2009-02-22 Ralf Corsépius ++ ++ * 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 ++ ++ * libc/unix/Makefile.in: Regenerate. ++ ++2009-02-20 Craig Howland on behalf of ++ Sebastian Huber ++ ++ * 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 ++ ++ * libc/sys/rtems/sys/param.h: ++ Update copyright notice from FreeBSD. ++ Remove HZ. ++ Add #include ++ Remove priority handling (moved to sys/priority.h). ++ Remove CLBYTES (Unused, abandoned in BSD). ++ ++2009-02-06 Ralf Corsépius ++ ++ * libc/include/sched.h: ++ Remove (collides with RTEMS's schedul.h). ++ +diff -Naur newlib-1.17.0.orig/newlib/configure.host newlib-1.17.0/newlib/configure.host +--- newlib-1.17.0.orig/newlib/configure.host 2008-12-18 00:09:09.000000000 +0100 ++++ newlib-1.17.0/newlib/configure.host 2009-03-11 04:25:57.000000000 +0100 +@@ -537,7 +537,7 @@ + *-*-rtems*) + default_newlib_io_long_long="yes" + default_newlib_io_c99_formats="yes" +- newlib_cflags="${newlib_cflags} -DMALLOC_PROVIDED -DEXIT_PROVIDED -DMISSING_SYSCALL_NAMES -DSIGNAL_PROVIDED -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_NANOSLEEP -DHAVE_FCNTL" ++ newlib_cflags="${newlib_cflags} -DMALLOC_PROVIDED -DEXIT_PROVIDED -DMISSING_SYSCALL_NAMES -DSIGNAL_PROVIDED -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_NANOSLEEP -DHAVE_BLKSIZE -DHAVE_FCNTL" + # turn off unsupported items in posix directory + newlib_cflags="${newlib_cflags} -D_NO_GETLOGIN -D_NO_GETPWENT -D_NO_GETUT -D_NO_GETPASS -D_NO_SIGSET" + ;; +diff -Naur newlib-1.17.0.orig/newlib/libc/include/inttypes.h newlib-1.17.0/newlib/libc/include/inttypes.h +--- newlib-1.17.0.orig/newlib/libc/include/inttypes.h 2005-12-16 20:03:12.000000000 +0100 ++++ newlib-1.17.0/newlib/libc/include/inttypes.h 2009-03-11 04:25:57.000000000 +0100 +@@ -163,12 +163,12 @@ + + + /* 64-bit types */ +-#if __have_longlong64 +-#define __PRI64(x) __STRINGIFY(ll##x) +-#define __SCN64(x) __STRINGIFY(ll##x) +-#elif __have_long64 ++#if __have_long64 + #define __PRI64(x) __STRINGIFY(l##x) + #define __SCN64(x) __STRINGIFY(l##x) ++#elif __have_longlong64 ++#define __PRI64(x) __STRINGIFY(ll##x) ++#define __SCN64(x) __STRINGIFY(ll##x) + #else + #define __PRI64(x) __STRINGIFY(x) + #define __SCN64(x) __STRINGIFY(x) +@@ -217,12 +217,12 @@ + #endif + + /* max-bit types */ +-#if __have_longlong64 +-#define __PRIMAX(x) __STRINGIFY(ll##x) +-#define __SCNMAX(x) __STRINGIFY(ll##x) +-#elif __have_long64 ++#if __have_long64 + #define __PRIMAX(x) __STRINGIFY(l##x) + #define __SCNMAX(x) __STRINGIFY(l##x) ++#elif __have_longlong64 ++#define __PRIMAX(x) __STRINGIFY(ll##x) ++#define __SCNMAX(x) __STRINGIFY(ll##x) + #else + #define __PRIMAX(x) __STRINGIFY(x) + #define __SCNMAX(x) __STRINGIFY(x) +@@ -242,12 +242,12 @@ + #define SCNxMAX __SCNMAX(x) + + /* ptr types */ +-#if __have_longlong64 +-#define __PRIPTR(x) __STRINGIFY(ll##x) +-#define __SCNPTR(x) __STRINGIFY(ll##x) +-#elif __have_long64 ++#if __have_long64 + #define __PRIPTR(x) __STRINGIFY(l##x) + #define __SCNPTR(x) __STRINGIFY(l##x) ++#elif __have_longlong64 ++#define __PRIPTR(x) __STRINGIFY(ll##x) ++#define __SCNPTR(x) __STRINGIFY(ll##x) + #else + #define __PRIPTR(x) __STRINGIFY(x) + #define __SCNPTR(x) __STRINGIFY(x) +diff -Naur newlib-1.17.0.orig/newlib/libc/include/machine/ieeefp.h newlib-1.17.0/newlib/libc/include/machine/ieeefp.h +--- newlib-1.17.0.orig/newlib/libc/include/machine/ieeefp.h 2008-12-11 21:05:38.000000000 +0100 ++++ newlib-1.17.0/newlib/libc/include/machine/ieeefp.h 2009-03-11 04:25:57.000000000 +0100 +@@ -62,8 +62,12 @@ + # define __IEEE_BIG_ENDIAN + # endif + #else +-# define __IEEE_BIG_ENDIAN + # ifdef __ARMEL__ ++# define __IEEE_LITTLE_ENDIAN ++# else ++# define __IEEE_BIG_ENDIAN ++# endif ++# ifdef __ARMWEL__ + # define __IEEE_BYTES_LITTLE_ENDIAN + # endif + #endif +diff -Naur newlib-1.17.0.orig/newlib/libc/include/machine/setjmp.h newlib-1.17.0/newlib/libc/include/machine/setjmp.h +--- newlib-1.17.0.orig/newlib/libc/include/machine/setjmp.h 2008-12-11 21:05:38.000000000 +0100 ++++ newlib-1.17.0/newlib/libc/include/machine/setjmp.h 2009-03-11 04:25:57.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 -Naur newlib-1.17.0.orig/newlib/libc/include/sched.h newlib-1.17.0/newlib/libc/include/sched.h +--- newlib-1.17.0.orig/newlib/libc/include/sched.h 2007-09-21 23:02:15.000000000 +0200 ++++ newlib-1.17.0/newlib/libc/include/sched.h 1970-01-01 01:00:00.000000000 +0100 +@@ -1,14 +0,0 @@ +-#ifndef _SCHED_H_ +-#define _SCHED_H_ +- +-#ifdef __cplusplus +-extern "C" { +-#endif +- +-#include +- +-#ifdef __cplusplus +-} +-#endif +- +-#endif /* _SCHED_H_ */ +diff -Naur newlib-1.17.0.orig/newlib/libc/include/stdint.h newlib-1.17.0/newlib/libc/include/stdint.h +--- newlib-1.17.0.orig/newlib/libc/include/stdint.h 2008-12-10 22:27:58.000000000 +0100 ++++ newlib-1.17.0/newlib/libc/include/stdint.h 2009-03-11 04:25:57.000000000 +0100 +@@ -475,6 +475,9 @@ + #define UINTMAX_C(x) x##UL + #endif + ++#ifdef __rtems__ ++#include ++#endif + + #ifdef __cplusplus + } +diff -Naur newlib-1.17.0.orig/newlib/libc/include/sys/_types.h newlib-1.17.0/newlib/libc/include/sys/_types.h +--- newlib-1.17.0.orig/newlib/libc/include/sys/_types.h 2007-09-18 22:05:17.000000000 +0200 ++++ newlib-1.17.0/newlib/libc/include/sys/_types.h 2009-03-11 04:25:57.000000000 +0100 +@@ -84,4 +84,7 @@ + typedef void *_iconv_t; + #endif + ++typedef long * __intptr_t; ++typedef unsigned long* __uintptr_t; ++ + #endif /* _SYS__TYPES_H */ +diff -Naur newlib-1.17.0.orig/newlib/libc/machine/arm/machine/endian.h newlib-1.17.0/newlib/libc/machine/arm/machine/endian.h +--- newlib-1.17.0.orig/newlib/libc/machine/arm/machine/endian.h 2004-05-07 22:29:24.000000000 +0200 ++++ newlib-1.17.0/newlib/libc/machine/arm/machine/endian.h 1970-01-01 01:00:00.000000000 +0100 +@@ -1,12 +0,0 @@ +-/* ARM configuration file */ +- +-#ifndef _MACHINE_ENDIAN_H +-# define _MACHINE_ENDIAN_H +- +-#ifdef __ARMEB__ +-#define BYTE_ORDER BIG_ENDIAN +-#else +-#define BYTE_ORDER LITTLE_ENDIAN +-#endif +- +-#endif +diff -Naur newlib-1.17.0.orig/newlib/libc/machine/lm32/configure newlib-1.17.0/newlib/libc/machine/lm32/configure +--- newlib-1.17.0.orig/newlib/libc/machine/lm32/configure 2008-12-22 20:45:44.000000000 +0100 ++++ newlib-1.17.0/newlib/libc/machine/lm32/configure 2009-03-11 04:25:57.000000000 +0100 +@@ -271,7 +271,7 @@ + PACKAGE_STRING='newlib 1.17.0' + PACKAGE_BUGREPORT='' + +-ac_unique_file="setjmp.s" ++ac_unique_file="setjmp.S" + ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS MAY_SUPPLY_SYSCALLS_TRUE MAY_SUPPLY_SYSCALLS_FALSE newlib_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB READELF ac_ct_READELF MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CCAS CCASFLAGS NEWLIB_CFLAGS LDFLAGS ELIX_LEVEL_0_TRUE ELIX_LEVEL_0_FALSE ELIX_LEVEL_1_TRUE ELIX_LEVEL_1_FALSE ELIX_LEVEL_2_TRUE ELIX_LEVEL_2_FALSE ELIX_LEVEL_3_TRUE ELIX_LEVEL_3_FALSE ELIX_LEVEL_4_TRUE ELIX_LEVEL_4_FALSE USE_LIBTOOL_TRUE USE_LIBTOOL_FALSE OBJEXT oext aext lpfx libm_machine_dir machine_dir sys_dir LIBOBJS LTLIBOBJS' + ac_subst_files='' + +diff -Naur newlib-1.17.0.orig/newlib/libc/machine/lm32/configure.in newlib-1.17.0/newlib/libc/machine/lm32/configure.in +--- newlib-1.17.0.orig/newlib/libc/machine/lm32/configure.in 2008-12-11 21:05:38.000000000 +0100 ++++ newlib-1.17.0/newlib/libc/machine/lm32/configure.in 2009-03-11 04:25:57.000000000 +0100 +@@ -3,7 +3,7 @@ + + AC_PREREQ(2.59) + AC_INIT([newlib],[NEWLIB_VERSION]) +-AC_CONFIG_SRCDIR([setjmp.s]) ++AC_CONFIG_SRCDIR([setjmp.S]) + + dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. + AC_CONFIG_AUX_DIR(../../../..) +diff -Naur newlib-1.17.0.orig/newlib/libc/machine/powerpc/Makefile.am newlib-1.17.0/newlib/libc/machine/powerpc/Makefile.am +--- newlib-1.17.0.orig/newlib/libc/machine/powerpc/Makefile.am 2007-05-24 19:33:35.000000000 +0200 ++++ newlib-1.17.0/newlib/libc/machine/powerpc/Makefile.am 2009-03-11 04:25: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.17.0.orig/newlib/libc/machine/powerpc/Makefile.in newlib-1.17.0/newlib/libc/machine/powerpc/Makefile.in +--- newlib-1.17.0.orig/newlib/libc/machine/powerpc/Makefile.in 2008-09-29 17:40:37.000000000 +0200 ++++ newlib-1.17.0/newlib/libc/machine/powerpc/Makefile.in 2009-03-11 04:25:57.000000000 +0100 +@@ -39,8 +39,7 @@ + DIST_COMMON = $(srcdir)/../../../../config.guess \ + $(srcdir)/../../../../config.sub $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/configure \ +- $(am__configure_deps) $(srcdir)/../../../../mkinstalldirs \ +- $(srcdir)/../../../../compile ++ $(am__configure_deps) $(srcdir)/../../../../mkinstalldirs + subdir = . + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + am__aclocal_m4_deps = $(top_srcdir)/../../../acinclude.m4 \ +@@ -54,7 +53,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. -I$(srcdir) + depcomp = +@@ -128,11 +127,6 @@ + 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_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@ +@@ -148,6 +142,9 @@ + build_os = @build_os@ + build_vendor = @build_vendor@ + datadir = @datadir@ ++datarootdir = @datarootdir@ ++docdir = @docdir@ ++dvidir = @dvidir@ + exec_prefix = @exec_prefix@ + extra_objs = @extra_objs@ + extra_sources = @extra_sources@ +@@ -156,12 +153,14 @@ + host_cpu = @host_cpu@ + host_os = @host_os@ + host_vendor = @host_vendor@ ++htmldir = @htmldir@ + includedir = @includedir@ + infodir = @infodir@ + install_sh = @install_sh@ + libdir = @libdir@ + libexecdir = @libexecdir@ + libm_machine_dir = @libm_machine_dir@ ++localedir = @localedir@ + localstatedir = @localstatedir@ + lpfx = @lpfx@ + machine_dir = @machine_dir@ +@@ -170,8 +169,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@ + sys_dir = @sys_dir@ +@@ -182,7 +183,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@ +@@ -193,7 +194,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) +@@ -252,18 +253,6 @@ + + lib_a-setjmp.obj: setjmp.S + $(CCAS) $(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` + uninstall-info-am: + + ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) +diff -Naur newlib-1.17.0.orig/newlib/libc/machine/powerpc/times.c newlib-1.17.0/newlib/libc/machine/powerpc/times.c +--- newlib-1.17.0.orig/newlib/libc/machine/powerpc/times.c 2002-07-22 22:26:51.000000000 +0200 ++++ newlib-1.17.0/newlib/libc/machine/powerpc/times.c 1970-01-01 01:00:00.000000000 +0100 +@@ -1,36 +0,0 @@ +-/* Time support routines for PowerPC. +- * +- * Written by Aldy Hernandez. +- */ +- +-#include <_ansi.h> +-#include +-#include +-#include +-#include +- +-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.17.0.orig/newlib/libc/stdlib/assert.c newlib-1.17.0/newlib/libc/stdlib/assert.c +--- newlib-1.17.0.orig/newlib/libc/stdlib/assert.c 2007-06-27 14:44:41.000000000 +0200 ++++ newlib-1.17.0/newlib/libc/stdlib/assert.c 2009-03-11 04:28:27.000000000 +0100 +@@ -47,6 +47,9 @@ + #include + #include + ++#if !defined(__rtems__) ++/* RTEMS has a version of its own */ ++ + /* func can be NULL, in which case no function information is given. */ + void + _DEFUN (__assert_func, (file, line, func, failedexpr), +@@ -62,6 +65,7 @@ + abort(); + /* NOTREACHED */ + } ++#endif + + void + _DEFUN (__assert, (file, line, failedexpr), +diff -Naur newlib-1.17.0.orig/newlib/libc/sys/rtems/crt0.c newlib-1.17.0/newlib/libc/sys/rtems/crt0.c +--- newlib-1.17.0.orig/newlib/libc/sys/rtems/crt0.c 2008-12-12 18:11:33.000000000 +0100 ++++ newlib-1.17.0/newlib/libc/sys/rtems/crt0.c 2009-03-11 05:09:53.000000000 +0100 +@@ -84,6 +84,9 @@ + int _execve(const char *path, char * const *argv, char * const *envp) { return -1; } + int _exit(int status) { return -1; } + ++/* stubs for functions required by libc/stdlib */ ++void __assert_func(const char *file, int line, const char *failedexpr) {} ++ + /* gcc can implicitly generate references to these */ + /* strcmp() {} */ + /* strcpy() {} */ +diff -Naur newlib-1.17.0.orig/newlib/libc/sys/rtems/machine/stdint.h newlib-1.17.0/newlib/libc/sys/rtems/machine/stdint.h +--- newlib-1.17.0.orig/newlib/libc/sys/rtems/machine/stdint.h 1970-01-01 01:00:00.000000000 +0100 ++++ newlib-1.17.0/newlib/libc/sys/rtems/machine/stdint.h 2009-03-11 04:25:57.000000000 +0100 +@@ -0,0 +1,48 @@ ++/* ++ * ++ */ ++#ifndef _MACHINE_STDINT_H ++#define _MACHINE_STDINT_H ++ ++#ifndef _STDINT_H ++#error machine/stdint.h is an internal file and must not be directly included ++#endif ++ ++#ifndef __rtems__ ++#error machine/stdint.h is an RTEMS specific internal file and must not be used otherwise ++#endif ++ ++#if defined(__m32c__) || defined(__m32r__) || defined(__lm32__) ++#if (__SIZEOF_PTRDIFF_T__ == __SIZEOF_LONG__) ++#define __ptrint_t_long_defined 1 ++#endif ++#if (__SIZEOF_PTRDIFF_T__ == __SIZEOF_INT__) ++#define __ptrint_t_int_defined 1 ++#endif ++#endif ++ ++#if defined(__sparc__) \ ++ || defined(__powerpc__) || defined(__PPC__) \ ++ || defined(__mips__) \ ++ || defined(__sh__) \ ++ || defined(__AVR__) \ ++ || defined(_C4x) || defined(_C3x) \ ++ || defined(__H8300__) ++/* PTRDIFF_TYPE = int */ ++#define __ptrint_t_int_defined 1 ++#endif ++ ++#if defined(__i386__) \ ++ || defined(__m68k__) \ ++ || defined(__bfin__) \ ++ || defined(__arm__) \ ++ || defined(__H8300S__) || defined(__H8300H__) || defined(__H8300SX__) \ ++/* PTRDIFF_TYPE = long */ ++#define __ptrint_t_long_defined 1 ++#endif ++ ++#if !defined(__ptrint_t_int_defined) && !defined(__ptrint_t_long_defined) ++#error Failed to determine ptrint_t ++#endif ++ ++#endif +diff -Naur newlib-1.17.0.orig/newlib/libc/sys/rtems/sys/param.h newlib-1.17.0/newlib/libc/sys/rtems/sys/param.h +--- newlib-1.17.0.orig/newlib/libc/sys/rtems/sys/param.h 2008-11-17 23:05:12.000000000 +0100 ++++ newlib-1.17.0/newlib/libc/sys/rtems/sys/param.h 2009-03-11 04:25:57.000000000 +0100 +@@ -15,10 +15,6 @@ + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. +- * 3. All advertising materials mentioning features or use of this software +- * must display the following acknowledgement: +- * This product includes software developed by the University of +- * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. +@@ -47,7 +43,6 @@ + #include + #include + +-# define HZ (60) + # define PATHSIZE (1024) + + /* end of from newlib's */ +@@ -86,13 +81,13 @@ + #define MAXHOSTNAMELEN 256 /* max hostname size */ + + /* More types and definitions used throughout the kernel. */ +-#ifdef KERNEL ++#if defined(KERNEL) || defined(_KERNEL) + #include + #include + #include + #include +-#include + #include ++#include + + #ifndef FALSE + #define FALSE 0 +@@ -109,23 +104,6 @@ + #include + #include + +-/* +- * Priorities. Note that with 32 run queues, differences less than 4 are +- * insignificant. +- */ +-#define PSWP 0 +-#define PVM 4 +-#define PINOD 8 +-#define PRIBIO 16 +-#define PVFS 20 +-#define PZERO 22 /* No longer magic, shouldn't be here. XXX */ +-#define PSOCK 24 +-#define PWAIT 32 +-#define PLOCK 36 +-#define PPAUSE 40 +-#define PUSER 50 +-#define MAXPRI 127 /* Priorities range from 0 through MAXPRI. */ +- + #define PRIMASK 0x0ff + #define PCATCH 0x100 /* OR'd with pri for tsleep to check signals */ + +@@ -136,15 +114,6 @@ + #define CMASK 022 /* default file mask: S_IWGRP|S_IWOTH */ + #define NODEV (dev_t)(-1) /* non-existent device */ + +-/* +- * Clustering of hardware pages on machines with ridiculously small +- * page sizes is done here. The paging subsystem deals with units of +- * CLSIZE pte's describing PAGE_SIZE (from machine/machparam.h) pages each. +- */ +-#if 0 +-#define CLBYTES (CLSIZE*PAGE_SIZE) +-#endif +- + #define CBLOCK 128 /* Clist block size, must be a power of 2. */ + #define CBQSIZE (CBLOCK/NBBY) /* Quote bytes/cblock - can do better. */ + /* Data chars/clist. */ +@@ -200,7 +169,7 @@ + #define powerof2(x) ((((x)-1)&(x))==0) + + /* Macros for min/max. */ +-#ifndef KERNEL ++#if !(defined(KERNEL) || defined(_KERNEL)) + #define MIN(a,b) (((a)<(b))?(a):(b)) + #define MAX(a,b) (((a)>(b))?(a):(b)) + #endif +diff -Naur newlib-1.17.0.orig/newlib/libc/unix/Makefile.am newlib-1.17.0/newlib/libc/unix/Makefile.am +--- newlib-1.17.0.orig/newlib/libc/unix/Makefile.am 2006-05-02 00:01:07.000000000 +0200 ++++ newlib-1.17.0/newlib/libc/unix/Makefile.am 2009-03-11 04:25:57.000000000 +0100 +@@ -12,7 +12,8 @@ + + ## Distinguish different EL/IX level interfaces + ELIX_2_SOURCES = \ +- ttyname.c ++ ttyname.c \ ++ ttyname_r.c + + ELIX_4_SOURCES = \ + basename.c \ +diff -Naur newlib-1.17.0.orig/newlib/libc/unix/Makefile.in newlib-1.17.0/newlib/libc/unix/Makefile.in +--- newlib-1.17.0.orig/newlib/libc/unix/Makefile.in 2009-02-20 11:04:34.000000000 +0100 ++++ newlib-1.17.0/newlib/libc/unix/Makefile.in 2009-03-11 04:25:57.000000000 +0100 +@@ -59,7 +59,7 @@ + lib_a_LIBADD = + am__objects_1 = lib_a-getcwd.$(OBJEXT) lib_a-pread.$(OBJEXT) \ + lib_a-pwrite.$(OBJEXT) lib_a-sigset.$(OBJEXT) +-am__objects_2 = lib_a-ttyname.$(OBJEXT) ++am__objects_2 = lib_a-ttyname.$(OBJEXT) lib_a-ttyname_r.$(OBJEXT) + am__objects_3 = lib_a-basename.$(OBJEXT) lib_a-dirname.$(OBJEXT) \ + lib_a-getlogin.$(OBJEXT) lib_a-getpass.$(OBJEXT) \ + lib_a-getpwent.$(OBJEXT) lib_a-getut.$(OBJEXT) +@@ -74,7 +74,7 @@ + LTLIBRARIES = $(noinst_LTLIBRARIES) + libunix_la_LIBADD = + am__objects_5 = getcwd.lo pread.lo pwrite.lo sigset.lo +-am__objects_6 = ttyname.lo ++am__objects_6 = ttyname.lo ttyname_r.lo + am__objects_7 = basename.lo dirname.lo getlogin.lo getpass.lo \ + getpwent.lo getut.lo + @ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@am__objects_8 = $(am__objects_6) \ +@@ -278,7 +278,8 @@ + sigset.c + + ELIX_2_SOURCES = \ +- ttyname.c ++ ttyname.c \ ++ ttyname_r.c + + ELIX_4_SOURCES = \ + basename.c \ +@@ -402,6 +403,12 @@ + lib_a-ttyname.obj: ttyname.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-ttyname.obj `if test -f 'ttyname.c'; then $(CYGPATH_W) 'ttyname.c'; else $(CYGPATH_W) '$(srcdir)/ttyname.c'; fi` + ++lib_a-ttyname_r.o: ttyname_r.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-ttyname_r.o `test -f 'ttyname_r.c' || echo '$(srcdir)/'`ttyname_r.c ++ ++lib_a-ttyname_r.obj: ttyname_r.c ++ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-ttyname_r.obj `if test -f 'ttyname_r.c'; then $(CYGPATH_W) 'ttyname_r.c'; else $(CYGPATH_W) '$(srcdir)/ttyname_r.c'; fi` ++ + lib_a-basename.o: basename.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-basename.o `test -f 'basename.c' || echo '$(srcdir)/'`basename.c + +diff -Naur newlib-1.17.0.orig/newlib/libc/unix/ttyname.c newlib-1.17.0/newlib/libc/unix/ttyname.c +--- newlib-1.17.0.orig/newlib/libc/unix/ttyname.c 2008-11-18 23:55:06.000000000 +0100 ++++ newlib-1.17.0/newlib/libc/unix/ttyname.c 2009-03-11 04:25:57.000000000 +0100 +@@ -28,67 +28,14 @@ + * SUCH DAMAGE. + */ + +-#include +-#include +-#include ++#include "ttyname.h" ++ + #include + #include +-#include + #include +-#include <_syslist.h> + #include + +-static char ttyname_buf[sizeof (_PATH_DEV) + MAXNAMLEN] = _PATH_DEV; +- +-/* +- * ttyname_r() - POSIX 1003.1b 4.7.2 - Determine Terminal Device Name +- */ +-int +-_DEFUN( ttyname_r,(fd, name, namesize), +- int fd _AND +- char *name _AND +- size_t namesize) +-{ +- struct stat sb; +- struct dirent *dirp; +- DIR *dp; +- struct stat dsb; +- char buf[sizeof(ttyname_buf)]; +- +- /* Must be a terminal. */ +- if (!isatty(fd)) +- return ENOTTY; +- +- /* Must be a character device. */ +- if (fstat (fd, &sb) || !S_ISCHR (sb.st_mode)) +- return ENOTTY; +- +- if ((dp = opendir (_PATH_DEV)) == NULL) +- return EBADF; +- +- strcpy(buf, _PATH_DEV); +- while ((dirp = readdir (dp)) != NULL) +- { +- if (dirp->d_ino != sb.st_ino) +- continue; +- strcpy (buf + sizeof (_PATH_DEV) - 1, dirp->d_name); +- if (stat (buf, &dsb) || sb.st_dev != dsb.st_dev || +- sb.st_ino != dsb.st_ino) +- continue; +- (void) closedir (dp); +- if(strlen(buf) < namesize) /* < to account for terminating null */ +- { +- strcpy(name, buf); +- return 0; +- } +- else +- { +- return ERANGE; +- } +- } +- (void) closedir (dp); +- return EBADF; +-} ++static char ttyname_buf[TTYNAME_BUFSIZE] = _PATH_DEV; + + /* + * ttyname() - POSIX 1003.1b 4.7.2 - Determine Terminal Device Name +diff -Naur newlib-1.17.0.orig/newlib/libc/unix/ttyname.h newlib-1.17.0/newlib/libc/unix/ttyname.h +--- newlib-1.17.0.orig/newlib/libc/unix/ttyname.h 1970-01-01 01:00:00.000000000 +0100 ++++ newlib-1.17.0/newlib/libc/unix/ttyname.h 2009-03-11 04:25:57.000000000 +0100 +@@ -0,0 +1,6 @@ ++/* Common defines for ttyname.c and ttyname_r.c */ ++ ++#include /* For MAXNAMLEN */ ++#include /* For _PATH_DEV */ ++ ++#define TTYNAME_BUFSIZE (sizeof (_PATH_DEV) + MAXNAMLEN) +diff -Naur newlib-1.17.0.orig/newlib/libc/unix/ttyname_r.c newlib-1.17.0/newlib/libc/unix/ttyname_r.c +--- newlib-1.17.0.orig/newlib/libc/unix/ttyname_r.c 1970-01-01 01:00:00.000000000 +0100 ++++ newlib-1.17.0/newlib/libc/unix/ttyname_r.c 2009-03-11 04:25:57.000000000 +0100 +@@ -0,0 +1,93 @@ ++#ifndef _NO_TTYNAME ++/* ++ * Copyright (c) 1988 The Regents of the University of California. ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ */ ++ ++#include "ttyname.h" ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include <_syslist.h> ++#include ++ ++/* ++ * ttyname_r() - POSIX 1003.1b 4.7.2 - Determine Terminal Device Name ++ */ ++int ++_DEFUN( ttyname_r,(fd, name, namesize), ++ int fd _AND ++ char *name _AND ++ size_t namesize) ++{ ++ struct stat sb; ++ struct dirent *dirp; ++ DIR *dp; ++ struct stat dsb; ++ char buf[TTYNAME_BUFSIZE]; ++ ++ /* Must be a terminal. */ ++ if (!isatty(fd)) ++ return ENOTTY; ++ ++ /* Must be a character device. */ ++ if (fstat (fd, &sb) || !S_ISCHR (sb.st_mode)) ++ return ENOTTY; ++ ++ if ((dp = opendir (_PATH_DEV)) == NULL) ++ return EBADF; ++ ++ strcpy(buf, _PATH_DEV); ++ while ((dirp = readdir (dp)) != NULL) ++ { ++ if (dirp->d_ino != sb.st_ino) ++ continue; ++ strcpy (buf + sizeof (_PATH_DEV) - 1, dirp->d_name); ++ if (stat (buf, &dsb) || sb.st_dev != dsb.st_dev || ++ sb.st_ino != dsb.st_ino) ++ continue; ++ (void) closedir (dp); ++ if(strlen(buf) < namesize) /* < to account for terminating null */ ++ { ++ strcpy(name, buf); ++ return 0; ++ } ++ else ++ { ++ return ERANGE; ++ } ++ } ++ (void) closedir (dp); ++ return EBADF; ++} ++ ++#endif /* !_NO_TTYNAME */ +diff -Naur newlib-1.17.0.orig/newlib/Makefile.am newlib-1.17.0/newlib/Makefile.am +--- newlib-1.17.0.orig/newlib/Makefile.am 2008-01-21 19:29:17.000000000 +0100 ++++ newlib-1.17.0/newlib/Makefile.am 2009-03-11 04:25:57.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 -Naur newlib-1.17.0.orig/newlib/Makefile.in newlib-1.17.0/newlib/Makefile.in +--- newlib-1.17.0.orig/newlib/Makefile.in 2009-02-20 11:04:33.000000000 +0100 ++++ newlib-1.17.0/newlib/Makefile.in 2009-03-11 04:25:57.000000000 +0100 +@@ -106,7 +106,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) +@@ -350,7 +350,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 +@@ -409,7 +409,7 @@ + + # dejagnu support + RUNTESTFLAGS = +-all: newlib.h ++all: $(BUILT_SOURCES) newlib.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + + .SUFFIXES: +@@ -714,14 +714,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 +@@ -746,6 +748,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 \ +@@ -864,8 +867,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