<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">--- newlib-1.13.0/config.sub	2004-11-16 01:18:39.000000000 +0000
+++ newlib-psp/config.sub	2006-05-13 20:29:29.000000000 +0000
@@ -253,6 +253,7 @@
 	| mipsisa64sb1 | mipsisa64sb1el \
 	| mipsisa64sr71k | mipsisa64sr71kel \
 	| mipstx39 | mipstx39el \
+	| mipsallegrex | mipsallegrexel \
 	| mn10200 | mn10300 \
 	| msp430 \
 	| ns16k | ns32k \
@@ -326,6 +327,7 @@
 	| mipsisa64sb1-* | mipsisa64sb1el-* \
 	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
 	| mipstx39-* | mipstx39el-* \
+	| mipsallegrex-* | mipsallegrexel-* \
 	| mmix-* \
 	| msp430-* \
 	| none-* | np1-* | ns16k-* | ns32k-* \
@@ -665,6 +667,10 @@
 		basic_machine=m68k-atari
 		os=-mint
 		;;
+	psp)
+		basic_machine=mipsallegrexel-psp
+		os=-elf
+		;;
 	mips3*-*)
 		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
 		;;
--- newlib-1.13.0/configure	2004-12-16 19:51:28.000000000 +0000
+++ newlib-psp/configure	2006-05-13 20:29:29.000000000 +0000
@@ -1507,6 +1507,9 @@
   mips*-*-linux*)
     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
     ;;
+  mipsallegrex*-*-*)
+    noconfigdirs="$noconfigdirs target-libgloss"
+    ;;
   mips*-*-*)
     noconfigdirs="$noconfigdirs gprof ${libgcj}"
     ;;
--- newlib-1.13.0/configure.in	2004-12-16 19:51:28.000000000 +0000
+++ newlib-psp/configure.in	2006-05-13 20:29:29.000000000 +0000
@@ -716,6 +716,9 @@
   mips*-*-linux*)
     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
     ;;
+  mipsallegrex*-*-*)
+    noconfigdirs="$noconfigdirs target-libgloss"
+    ;;
   mips*-*-*)
     noconfigdirs="$noconfigdirs gprof ${libgcj}"
     ;;
--- newlib-1.13.0/newlib/Makefile.am	2004-12-03 23:46:28.000000000 +0000
+++ newlib-psp/newlib/Makefile.am	2006-05-13 20:29:28.000000000 +0000
@@ -251,6 +251,18 @@
 	     $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/machine/`basename $$i`; \
 	    else true; fi ; \
 	  done; \
+	  $(mkinstalldirs) $(DESTDIR)$(tooldir)/include/netinet; \
+	  for i in $(srcdir)/libc/sys/$(sys_dir)/netinet/*.h; do \
+	    if [ -f $$i ]; then \
+	     $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/netinet/`basename $$i`; \
+	    else true; fi ; \
+	  done ; \
+	  $(mkinstalldirs) $(DESTDIR)$(tooldir)/include/arpa; \
+	  for i in $(srcdir)/libc/sys/$(sys_dir)/arpa/*.h; do \
+	    if [ -f $$i ]; then \
+	     $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/arpa/`basename $$i`; \
+	    else true; fi ; \
+	  done ; \
 	  $(mkinstalldirs) $(DESTDIR)$(tooldir)/include/sys; \
 	  for i in $(srcdir)/libc/include/sys/*.h; do \
 	   $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/sys/`basename $$i`; \
--- newlib-1.13.0/newlib/Makefile.in	2004-12-03 23:46:28.000000000 +0000
+++ newlib-psp/newlib/Makefile.in	2006-05-13 20:29:28.000000000 +0000
@@ -214,7 +214,7 @@
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = gtar
+TAR = tar
 GZIP_ENV = --best
 DIST_SUBDIRS =  libc libm doc . @EXTRA_DIRS@
 EXPECT = `if test -f $(top_builddir)/../expect/expect; then echo $(top_builddir)/../expect/expect; else echo expect; fi`
@@ -472,7 +472,7 @@
 	  awk '    { files[$$0] = 1; } \
 	       END { for (i in files) print i; }'`; \
 	test -z "$(ETAGS_ARGS)newlib.hin$$unique$(LISP)$$tags" \
-	  || (cd $(srcdir) &amp;&amp; etags $(ETAGS_ARGS) $$tags newlib.hin $$unique $(LISP) -o $$here/TAGS)
+	  || (cd $(srcdir) &amp;&amp; etags -o $$here/TAGS $(ETAGS_ARGS) $$tags newlib.hin $$unique $(LISP))
 
 mostlyclean-tags:
 
@@ -756,6 +756,18 @@
 	     $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/machine/`basename $$i`; \
 	    else true; fi ; \
 	  done; \
+	  $(mkinstalldirs) $(DESTDIR)$(tooldir)/include/netinet; \
+	  for i in $(srcdir)/libc/sys/$(sys_dir)/netinet/*.h; do \
+	    if [ -f $$i ]; then \
+	     $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/netinet/`basename $$i`; \
+	    else true; fi ; \
+	  done ; \
+	  $(mkinstalldirs) $(DESTDIR)$(tooldir)/include/arpa; \
+	  for i in $(srcdir)/libc/sys/$(sys_dir)/arpa/*.h; do \
+	    if [ -f $$i ]; then \
+	     $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/arpa/`basename $$i`; \
+	    else true; fi ; \
+	  done ; \
 	  $(mkinstalldirs) $(DESTDIR)$(tooldir)/include/sys; \
 	  for i in $(srcdir)/libc/include/sys/*.h; do \
 	   $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/sys/`basename $$i`; \
--- newlib-1.13.0/newlib/configure.host	2004-10-05 19:44:24.000000000 +0000
+++ newlib-psp/newlib/configure.host	2006-05-13 21:50:57.000000000 +0000
@@ -570,7 +570,14 @@
 	;;
   mips*-*-elf*)
 	default_newlib_io_long_long="yes"
-	newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES"
+	case "${host}" in
+	  mipsallegrex*-psp-*)
+		sys_dir=psp
+		syscall_dir=syscalls
+		newlib_cflags="${newlib_cflags} -G0 -mno-explicit-relocs -DCOMPACT_CTYPE -DCLOCK_PROVIDED -DHAVE_RENAME -DHAVE_FCNTL -DMALLOC_ALIGNMENT=16 -I${prefix}/psp/sdk/include" ;;
+	  *)
+		newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" ;;
+	esac
 	;;
   mmix-*)
 	syscall_dir=syscalls
--- newlib-1.13.0/newlib/libc/include/inttypes.h	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/include/inttypes.h	2006-05-13 20:29:20.000000000 +0000
@@ -0,0 +1,290 @@
+/*
+ * Copyright (c) 2004, 2005 by
+ * Ralf Corsepius, Ulm/Germany. All rights reserved.
+ *
+ * Permission to use, copy, modify, and distribute this software
+ * is freely granted, provided that this notice is preserved.
+ */
+
+/**
+ *  @file  inttypes.h
+ */
+
+#ifndef _INTTYPES_H
+#define _INTTYPES_H
+
+#include &lt;stdint.h&gt;
+#define __need_wchar_t
+#include &lt;stddef.h&gt;
+
+#define __STRINGIFY(a) #a
+
+/* 8-bit types */
+#define __PRI8(x) __STRINGIFY(x)
+#define __SCN8(x) __STRINGIFY(hh##x)
+
+
+#define PRId8		__PRI8(d)
+#define PRIi8		__PRI8(i)
+#define PRIo8		__PRI8(o)
+#define PRIu8		__PRI8(u)
+#define PRIx8		__PRI8(x)
+#define PRIX8		__PRI8(X)
+
+#define SCNd8		__SCN8(d)
+#define SCNi8		__SCN8(i)
+#define SCNo8		__SCN8(o)
+#define SCNu8		__SCN8(u)
+#define SCNx8		__SCN8(x)
+
+
+#define PRIdLEAST8	__PRI8(d)
+#define PRIiLEAST8	__PRI8(i)
+#define PRIoLEAST8	__PRI8(o)
+#define PRIuLEAST8	__PRI8(u)
+#define PRIxLEAST8	__PRI8(x)
+#define PRIXLEAST8	__PRI8(X)
+
+#define SCNdLEAST8	__SCN8(d)
+#define SCNiLEAST8	__SCN8(i)
+#define SCNoLEAST8	__SCN8(o)
+#define SCNuLEAST8	__SCN8(u)
+#define SCNxLEAST8	__SCN8(x)
+
+
+#define PRIdFAST8	__PRI8(d)
+#define PRIiFAST8	__PRI8(i)
+#define PRIoFAST8	__PRI8(o)
+#define PRIuFAST8	__PRI8(u)
+#define PRIxFAST8	__PRI8(x)
+#define PRIXFAST8	__PRI8(X)
+
+#define SCNdFAST8	__SCN8(d)
+#define SCNiFAST8	__SCN8(i)
+#define SCNoFAST8	__SCN8(o)
+#define SCNuFAST8	__SCN8(u)
+#define SCNxFAST8	__SCN8(x)
+
+/* 16-bit types */
+#define __PRI16(x) __STRINGIFY(x)
+#define __SCN16(x) __STRINGIFY(h##x)
+
+
+#define PRId16		__PRI16(d)
+#define PRIi16		__PRI16(i)
+#define PRIo16		__PRI16(o)
+#define PRIu16		__PRI16(u)
+#define PRIx16		__PRI16(x)
+#define PRIX16		__PRI16(X)
+
+#define SCNd16		__SCN16(d)
+#define SCNi16		__SCN16(i)
+#define SCNo16		__SCN16(o)
+#define SCNu16		__SCN16(u)
+#define SCNx16		__SCN16(x)
+
+
+#define PRIdLEAST16	__PRI16(d)
+#define PRIiLEAST16	__PRI16(i)
+#define PRIoLEAST16	__PRI16(o)
+#define PRIuLEAST16	__PRI16(u)
+#define PRIxLEAST16	__PRI16(x)
+#define PRIXLEAST16	__PRI16(X)
+
+#define SCNdLEAST16	__SCN16(d)
+#define SCNiLEAST16	__SCN16(i)
+#define SCNoLEAST16	__SCN16(o)
+#define SCNuLEAST16	__SCN16(u)
+#define SCNxLEAST16	__SCN16(x)
+
+
+#define PRIdFAST16	__PRI16(d)
+#define PRIiFAST16	__PRI16(i)
+#define PRIoFAST16	__PRI16(o)
+#define PRIuFAST16	__PRI16(u)
+#define PRIxFAST16	__PRI16(x)
+#define PRIXFAST16	__PRI16(X)
+
+#define SCNdFAST16	__SCN16(d)
+#define SCNiFAST16	__SCN16(i)
+#define SCNoFAST16	__SCN16(o)
+#define SCNuFAST16	__SCN16(u)
+#define SCNxFAST16	__SCN16(x)
+
+/* 32-bit types */
+#if defined(__have_long32)
+#define __PRI32(x) __STRINGIFY(l##x)
+#define __SCN32(x) __STRINGIFY(l##x)
+#else
+#define __PRI32(x) __STRINGIFY(x)
+#define __SCN32(x) __STRINGIFY(x)
+#endif
+
+#define PRId32		__PRI32(d)
+#define PRIi32		__PRI32(i)
+#define PRIo32		__PRI32(o)
+#define PRIu32		__PRI32(u)
+#define PRIx32		__PRI32(x)
+#define PRIX32		__PRI32(X)
+
+#define SCNd32		__SCN32(d)
+#define SCNi32		__SCN32(i)
+#define SCNo32		__SCN32(o)
+#define SCNu32		__SCN32(u)
+#define SCNx32		__SCN32(x)
+
+
+#define PRIdLEAST32	__PRI32(d)
+#define PRIiLEAST32	__PRI32(i)
+#define PRIoLEAST32	__PRI32(o)
+#define PRIuLEAST32	__PRI32(u)
+#define PRIxLEAST32	__PRI32(x)
+#define PRIXLEAST32	__PRI32(X)
+
+#define SCNdLEAST32	__SCN32(d)
+#define SCNiLEAST32	__SCN32(i)
+#define SCNoLEAST32	__SCN32(o)
+#define SCNuLEAST32	__SCN32(u)
+#define SCNxLEAST32	__SCN32(x)
+
+
+#define PRIdFAST32	__PRI32(d)
+#define PRIiFAST32	__PRI32(i)
+#define PRIoFAST32	__PRI32(o)
+#define PRIuFAST32	__PRI32(u)
+#define PRIxFAST32	__PRI32(x)
+#define PRIXFAST32	__PRI32(X)
+
+#define SCNdFAST32	__SCN32(d)
+#define SCNiFAST32	__SCN32(i)
+#define SCNoFAST32	__SCN32(o)
+#define SCNuFAST32	__SCN32(u)
+#define SCNxFAST32	__SCN32(x)
+
+
+/* 64-bit types */
+#if defined(__have_longlong64)
+#define __PRI64(x) __STRINGIFY(ll##x)
+#define __SCN64(x) __STRINGIFY(ll##x)
+#elif defined(__have_long64)
+#define __PRI64(x) __STRINGIFY(l##x)
+#define __SCN64(x) __STRINGIFY(l##x)
+#else
+#define __PRI64(x) __STRINGIFY(x)
+#define __SCN64(x) __STRINGIFY(x)
+#endif
+
+#define PRId64		__PRI64(d)
+#define PRIi64		__PRI64(i)
+#define PRIo64		__PRI64(o)
+#define PRIu64		__PRI64(u)
+#define PRIx64		__PRI64(x)
+#define PRIX64		__PRI64(X)
+
+#define SCNd64		__SCN64(d)
+#define SCNi64		__SCN64(i)
+#define SCNo64		__SCN64(o)
+#define SCNu64		__SCN64(u)
+#define SCNx64		__SCN64(x)
+
+#if __int64_t_defined
+#define PRIdLEAST64	__PRI64(d)
+#define PRIiLEAST64	__PRI64(i)
+#define PRIoLEAST64	__PRI64(o)
+#define PRIuLEAST64	__PRI64(u)
+#define PRIxLEAST64	__PRI64(x)
+#define PRIXLEAST64	__PRI64(X)
+
+#define SCNdLEAST64	__SCN64(d)
+#define SCNiLEAST64	__SCN64(i)
+#define SCNoLEAST64	__SCN64(o)
+#define SCNuLEAST64	__SCN64(u)
+#define SCNxLEAST64	__SCN64(x)
+
+
+#define PRIdFAST64	__PRI64(d)
+#define PRIiFAST64	__PRI64(i)
+#define PRIoFAST64	__PRI64(o)
+#define PRIuFAST64	__PRI64(u)
+#define PRIxFAST64	__PRI64(x)
+#define PRIXFAST64	__PRI64(X)
+
+#define SCNdFAST64	__SCN64(d)
+#define SCNiFAST64	__SCN64(i)
+#define SCNoFAST64	__SCN64(o)
+#define SCNuFAST64	__SCN64(u)
+#define SCNxFAST64	__SCN64(x)
+#endif
+
+/* max-bit types */
+#if defined(__have_longlong64)
+#define __PRIMAX(x) __STRINGIFY(ll##x)
+#define __SCNMAX(x) __STRINGIFY(ll##x)
+#elif defined(__have_long64)
+#define __PRIMAX(x) __STRINGIFY(l##x)
+#define __SCNMAX(x) __STRINGIFY(l##x)
+#else
+#define __PRIMAX(x) __STRINGIFY(x)
+#define __SCNMAX(x) __STRINGIFY(x)
+#endif
+
+#define PRIdMAX		__PRIMAX(d)
+#define PRIiMAX		__PRIMAX(i)
+#define PRIoMAX		__PRIMAX(o)
+#define PRIuMAX		__PRIMAX(u)
+#define PRIxMAX		__PRIMAX(x)
+#define PRIXMAX		__PRIMAX(X)
+
+#define SCNdMAX		__SCNMAX(d)
+#define SCNiMAX		__SCNMAX(i)
+#define SCNoMAX		__SCNMAX(o)
+#define SCNuMAX		__SCNMAX(u)
+#define SCNxMAX		__SCNMAX(x)
+
+/* ptr types */
+#if defined(__have_longlong64)
+#define __PRIPTR(x) __STRINGIFY(ll##x)
+#define __SCNPTR(x) __STRINGIFY(ll##x)
+#elif defined(__have_long64)
+#define __PRIPTR(x) __STRINGIFY(l##x)
+#define __SCNPTR(x) __STRINGIFY(l##x)
+#else
+#define __PRIPTR(x) __STRINGIFY(x)
+#define __SCNPTR(x) __STRINGIFY(x)
+#endif
+
+#define PRIdPTR		__PRIPTR(d)
+#define PRIiPTR		__PRIPTR(i)
+#define PRIoPTR		__PRIPTR(o)
+#define PRIuPTR		__PRIPTR(u)
+#define PRIxPTR		__PRIPTR(x)
+#define PRIXPTR		__PRIPTR(X)
+
+#define SCNdPTR		__SCNPTR(d)
+#define SCNiPTR		__SCNPTR(i)
+#define SCNoPTR		__SCNPTR(o)
+#define SCNuPTR		__SCNPTR(u)
+#define SCNxPTR		__SCNPTR(x)
+
+
+typedef struct {
+  intmax_t	quot;
+  intmax_t	rem;
+} imaxdiv_t;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern intmax_t  imaxabs(intmax_t j);
+extern imaxdiv_t imaxdiv(intmax_t numer, intmax_t denomer);
+extern intmax_t  strtoimax(const char *__restrict, char **__restrict, int);
+extern uintmax_t strtoumax(const char *__restrict, char **__restrict, int);
+extern intmax_t  wcstoimax(const wchar_t *__restrict, wchar_t **__restrict, int);
+extern uintmax_t wcstoumax(const wchar_t *__restrict, wchar_t **__restrict, int);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
--- newlib-1.13.0/newlib/libc/include/machine/time.h	2000-12-04 19:06:37.000000000 +0000
+++ newlib-psp/newlib/libc/include/machine/time.h	2006-05-13 20:29:19.000000000 +0000
@@ -9,6 +9,10 @@
 #endif
 #endif /* !__rtems__ */
 
+#if defined(__psp__)
+#define _CLOCKS_PER_SEC_  1000000
+#endif
+
 #endif	/* _MACHTIME_H_ */
 
 
--- newlib-1.13.0/newlib/libc/include/stdint.h	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/include/stdint.h	2006-05-13 20:29:20.000000000 +0000
@@ -0,0 +1,401 @@
+/*
+ * Copyright (c) 2004, 2005 by
+ * Ralf Corsepius, Ulm/Germany. All rights reserved.
+ *
+ * Permission to use, copy, modify, and distribute this software
+ * is freely granted, provided that this notice is preserved.
+ */
+
+/*
+ * @todo - Add support for wint_t types.
+ */
+
+#ifndef _STDINT_H
+#define _STDINT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if defined(__GNUC__) &amp;&amp; \
+  ( (__GNUC__ &gt;= 4) || \
+    ( (__GNUC__ &gt;= 3) &amp;&amp; defined(__GNUC_MINOR__) &amp;&amp; (__GNUC_MINOR__ &gt; 2) ) )
+/* gcc &gt; 3.2 implicitly defines the values we are interested */
+#define __STDINT_EXP(x) __##x##__
+#else
+#define __STDINT_EXP(x) x
+#include &lt;limits.h&gt;
+#endif
+
+/* Check if "long long" is 64bit wide */
+/* Modern GCCs provide __LONG_LONG_MAX__, SUSv3 wants LLONG_MAX */
+#if ( defined(__LONG_LONG_MAX__) &amp;&amp; (__LONG_LONG_MAX__ &gt; 0x7fffffff) ) \
+  || ( defined(LLONG_MAX) &amp;&amp; (LLONG_MAX &gt; 0x7fffffff) )
+#define __have_longlong64 1
+#endif
+
+/* Check if "long" is 64bit or 32bit wide */
+#if __STDINT_EXP(LONG_MAX) &gt; 0x7fffffff
+#define __have_long64 1
+#elif __STDINT_EXP(LONG_MAX) == 0x7fffffff
+#define __have_long32 1
+#endif
+
+#if __STDINT_EXP(SCHAR_MAX) == 0x7f
+typedef signed char int8_t ;
+typedef unsigned char uint8_t ;
+#define __int8_t_defined 1
+#endif
+
+#if __int8_t_defined
+typedef signed char int_least8_t;
+typedef unsigned char uint_least8_t;
+#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
+typedef signed int int16_t;
+typedef unsigned int uint16_t;
+#define __int16_t_defined 1
+#elif __STDINT_EXP(SCHAR_MAX) == 0x7fff
+typedef signed char int16_t;
+typedef unsigned char uint16_t;
+#define __int16_t_defined 1
+#endif
+
+#if __int16_t_defined
+typedef int16_t   	int_least16_t;
+typedef uint16_t 	uint_least16_t;
+#define __int_least16_t_defined 1
+
+#if !__int_least8_t_defined
+typedef int16_t	   	int_least8_t;
+typedef uint16_t  	uint_least8_t;
+#define __int_least8_t_defined 1
+#endif
+#endif
+
+#if __STDINT_EXP(INT_MAX) == 0x7fffffffL
+typedef signed int int32_t;
+typedef unsigned int uint32_t;
+#define __int32_t_defined 1
+#elif __STDINT_EXP(LONG_MAX) == 0x7fffffffL
+typedef signed long int32_t;
+typedef unsigned long uint32_t;
+#define __int32_t_defined 1
+#elif __STDINT_EXP(SHRT_MAX) == 0x7fffffffL
+typedef signed short int32_t;
+typedef unsigned short uint32_t;
+#define __int32_t_defined 1
+#elif __STDINT_EXP(SCHAR_MAX) == 0x7fffffffL
+typedef signed char int32_t;
+typedef unsigned char uint32_t;
+#define __int32_t_defined 1
+#endif
+
+#if __int32_t_defined
+typedef int32_t   	int_least32_t;
+typedef uint32_t 	uint_least32_t;
+#define __int_least32_t_defined 1
+
+#if !__int_least8_t_defined
+typedef int32_t	   	int_least8_t;
+typedef uint32_t  	uint_least8_t;
+#define __int_least8_t_defined 1
+#endif
+
+#if !__int_least16_t_defined
+typedef int32_t	   	int_least16_t;
+typedef uint32_t  	uint_least16_t;
+#define __int_least16_t_defined 1
+#endif
+#endif
+
+#if __have_long64
+typedef signed long int64_t;
+typedef unsigned long uint64_t;
+#define __int64_t_defined 1
+#elif __have_longlong64
+typedef signed long long int64_t;
+typedef unsigned long long uint64_t;
+#define __int64_t_defined 1
+#elif  __STDINT_EXP(INT_MAX) &gt; 0x7fffffff
+typedef signed int int64_t;
+typedef unsigned int uint64_t;
+#define __int64_t_defined 1
+#endif
+
+#if __int64_t_defined
+typedef int64_t   	int_least64_t;
+typedef uint64_t 	uint_least64_t;
+#define __int_least64_t_defined 1
+
+#if !__int_least8_t_defined
+typedef int64_t	   	int_least8_t;
+typedef uint64_t  	uint_least8_t;
+#define __int_least8_t_defined 1
+#endif
+
+#if !__int_least16_t_defined
+typedef int64_t	   	int_least16_t;
+typedef uint64_t  	uint_least16_t;
+#define __int_least16_t_defined 1
+#endif
+
+#if !__int_least32_t_defined
+typedef int64_t	   	int_least32_t;
+typedef uint64_t  	uint_least32_t;
+#define __int_least32_t_defined 1
+#endif
+#endif
+
+/*
+ * Fastest minimum-width integer types
+ *
+ * Assume int to be the fastest type for all types with a width 
+ * less than __INT_MAX__ rsp. INT_MAX
+ */
+#if __STDINT_EXP(INT_MAX) &gt;= 0x7f
+  typedef signed int int_fast8_t;
+  typedef unsigned int uint_fast8_t;
+#define __int_fast8_t_defined 1
+#endif
+
+#if __STDINT_EXP(INT_MAX) &gt;= 0x7fff
+  typedef signed int int_fast16_t;
+  typedef unsigned int uint_fast16_t;
+#define __int_fast16_t_defined 1
+#endif
+
+#if __STDINT_EXP(INT_MAX) &gt;= 0x7fffffff
+  typedef signed int int_fast32_t;
+  typedef unsigned int uint_fast32_t;
+#define __int_fast32_t_defined 1
+#endif
+
+#if __STDINT_EXP(INT_MAX) &gt; 0x7fffffff
+  typedef signed int int_fast64_t;
+  typedef unsigned int uint_fast64_t;
+#define __int_fast64_t_defined 1
+#endif
+
+/*
+ * Fall back to [u]int_least&lt;N&gt;_t for [u]int_fast&lt;N&gt;_t types
+ * not having been defined, yet.
+ * Leave undefined, if [u]int_least&lt;N&gt;_t should not be available.
+ */
+#if !__int_fast8_t_defined
+#if __int_least8_t_defined
+  typedef int_least8_t int_fast8_t;
+  typedef uint_least8_t uint_fast8_t;
+#define __int_fast8_t_defined 1
+#endif
+#endif
+
+#if !__int_fast16_t_defined
+#if __int_least16_t_defined
+  typedef int_least16_t int_fast16_t;
+  typedef uint_least16_t uint_fast16_t;
+#define __int_fast16_t_defined 1
+#endif
+#endif
+
+#if !__int_fast32_t_defined
+#if __int_least32_t_defined
+  typedef int_least32_t int_fast32_t;
+  typedef uint_least32_t uint_fast32_t;
+#define __int_fast32_t_defined 1
+#endif
+#endif
+
+#if !__int_fast64_t_defined
+#if __int_least64_t_defined
+  typedef int_least64_t int_fast64_t;
+  typedef uint_least64_t uint_fast64_t;
+#define __int_fast64_t_defined 1
+#endif
+#endif
+
+/* Greatest-width integer types */
+/* Modern GCCs provide __INTMAX_TYPE__ */
+#if defined(__INTMAX_TYPE__)
+  typedef __INTMAX_TYPE__ intmax_t;
+#elif __have_longlong64
+  typedef signed long long intmax_t;
+#else
+  typedef signed long intmax_t;
+#endif
+
+/* Modern GCCs provide __UINTMAX_TYPE__ */
+#if defined(__UINTMAX_TYPE__)
+  typedef __UINTMAX_TYPE__ uintmax_t;
+#elif __have_longlong64
+  typedef unsigned long long uintmax_t;
+#else
+  typedef unsigned long uintmax_t;
+#endif
+
+/*
+ * GCC doesn't provide an appropriate macro for [u]intptr_t
+ * For now, use __PTRDIFF_TYPE__
+ */
+#if defined(__PTRDIFF_TYPE__)
+typedef signed __PTRDIFF_TYPE__ intptr_t;
+typedef unsigned __PTRDIFF_TYPE__ uintptr_t;
+#else
+/*
+ * Fallback to hardcoded values, 
+ * should be valid on cpu's with 32bit int/32bit void*
+ */
+typedef signed long intptr_t;
+typedef unsigned long uintptr_t;
+#endif
+
+/* Limits of Specified-Width Integer Types */
+
+#if __int8_t_defined
+#define INT8_MIN 	-128
+#define INT8_MAX 	 127
+#define UINT8_MAX 	 255
+#endif
+
+#if __int_least8_t_defined
+#define INT_LEAST8_MIN 	-128
+#define INT_LEAST8_MAX 	 127
+#define UINT_LEAST8_MAX	 255
+#else
+#error required type int_least8_t missing
+#endif
+
+#if __int16_t_defined
+#define INT16_MIN 	-32768
+#define INT16_MAX 	 32767
+#define UINT16_MAX 	 65535
+#endif
+
+#if __int_least16_t_defined
+#define INT_LEAST16_MIN	-32768
+#define INT_LEAST16_MAX	 32767
+#define UINT_LEAST16_MAX 65535
+#else
+#error required type int_least16_t missing
+#endif
+
+#if __int32_t_defined
+#define INT32_MIN 	 (-2147483647-1)
+#define INT32_MAX 	 2147483647
+#define UINT32_MAX       4294967295U
+#endif
+
+#if __int_least32_t_defined
+#define INT_LEAST32_MIN  (-2147483647-1)
+#define INT_LEAST32_MAX  2147483647
+#define UINT_LEAST32_MAX 4294967295U
+#else
+#error required type int_least32_t missing
+#endif
+
+#if __int64_t_defined
+#if __have_long64
+#define INT64_MIN 	(-9223372036854775807L-1L)
+#define INT64_MAX 	 9223372036854775807L
+#define UINT64_MAX 	18446744073709551615U
+#elif __have_longlong64
+#define INT64_MIN 	(-9223372036854775807LL-1LL)
+#define INT64_MAX 	 9223372036854775807LL
+#define UINT64_MAX 	18446744073709551615ULL
+#endif
+#endif
+
+#if __int_least64_t_defined
+#if __have_long64
+#define INT_LEAST64_MIN  (-9223372036854775807L-1L)
+#define INT_LEAST64_MAX  9223372036854775807L
+#define UINT_LEAST64_MAX 18446744073709551615U
+#elif __have_longlong64
+#define INT_LEAST64_MIN  (-9223372036854775807LL-1LL)
+#define INT_LEAST64_MAX  9223372036854775807LL
+#define UINT_LEAST64_MAX 18446744073709551615ULL
+#endif
+#endif
+
+#if __int_fast8_t_defined
+#define INT_FAST8_MIN	INT8_MIN
+#define INT_FAST8_MAX	INT8_MAX
+#define UINT_FAST8_MAX	UINT8_MAX
+#endif
+
+#if __int_fast16_t_defined
+#define INT_FAST16_MIN	INT16_MIN
+#define INT_FAST16_MAX	INT16_MAX
+#define UINT_FAST16_MAX	UINT16_MAX
+#endif
+
+#if __int_fast32_t_defined
+#define INT_FAST32_MIN	INT32_MIN
+#define INT_FAST32_MAX	INT32_MAX
+#define UINT_FAST32_MAX	UINT32_MAX
+#endif
+
+#if __int_fast64_t_defined
+#define INT_FAST64_MIN	INT64_MIN
+#define INT_FAST64_MAX	INT64_MAX
+#define UINT_FAST64_MAX	UINT64_MAX
+#endif
+
+/* This must match size_t in stddef.h, currently long unsigned int */
+#define SIZE_MIN (-__STDINT_EXP(LONG_MAX) - 1L)
+#define SIZE_MAX __STDINT_EXP(LONG_MAX)
+
+/* This must match sig_atomic_t in &lt;signal.h&gt; (currently int) */
+#define SIG_ATOMIC_MIN (-__STDINT_EXP(INT_MAX) - 1)
+#define SIG_ATOMIC_MAX __STDINT_EXP(INT_MAX)
+
+/* This must match ptrdiff_t  in &lt;stddef.h&gt; (currently long int) */
+#define PTRDIFF_MIN (-__STDINT_EXP(LONG_MAX) - 1L)
+#define PTRDIFF_MAX __STDINT_EXP(LONG_MAX)
+
+/** Macros for minimum-width integer constant expressions */
+#define INT8_C(x)	x
+#define UINT8_C(x)	x##U
+
+#define INT16_C(x)	x
+#define UINT16_C(x)	x##U
+
+#if __have_long32
+#define INT32_C(x)	x##L
+#define UINT32_C(x)	x##UL
+#else
+#define INT32_C(x)	x
+#define UINT32_C(x)	x##U
+#endif
+
+#if __int64_t_defined
+#if __have_longlong64
+#define INT64_C(x)	x##LL
+#define UINT64_C(x)	x##ULL
+#else
+#define INT64_C(x)	x##L
+#define UINT64_C(x)	x##UL
+#endif
+#endif
+
+/** Macros for greatest-width integer constant expression */
+#if __have_longlong64
+#define INTMAX_C(x)	x##LL
+#define UINTMAX_C(x)	x##ULL
+#else
+#define INTMAX_C(x)	x##L
+#define UINTMAX_C(x)	x##UL
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _STDINT_H */
--- newlib-1.13.0/newlib/libc/include/sys/config.h	2004-06-22 21:54:51.000000000 +0000
+++ newlib-psp/newlib/libc/include/sys/config.h	2006-05-13 20:29:20.000000000 +0000
@@ -94,6 +94,12 @@
 #endif
 #endif
 
+/* We compile newlib with -G0 for PSP, but if we're compiling an app with $gp enabled,
+   then _impure_ptr is expected to live in .sdata. */
+#if defined(__psp__)
+#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
+#endif
+
 #ifdef __xstormy16__
 #define __SMALL_BITFIELDS
 #undef INT_MAX
--- newlib-1.13.0/newlib/libc/include/sys/types.h	2003-07-02 20:32:07.000000000 +0000
+++ newlib-psp/newlib/libc/include/sys/types.h	2006-05-13 20:29:20.000000000 +0000
@@ -188,52 +188,6 @@
 
 typedef unsigned short nlink_t;
 
-/* We don't define fd_set and friends if we are compiling POSIX
-   source, or if we have included (or may include as indicated
-   by __USE_W32_SOCKETS) the W32api winsock[2].h header which
-   defines Windows versions of them.   Note that a program which
-   includes the W32api winsock[2].h header must know what it is doing;
-   it must not call the cygwin32 select function.
-*/
-# if !(defined (_POSIX_SOURCE) || defined (_WINSOCK_H) || defined (__USE_W32_SOCKETS)) 
-#  define _SYS_TYPES_FD_SET
-#  define	NBBY	8		/* number of bits in a byte */
-/*
- * Select uses bit masks of file descriptors in longs.
- * These macros manipulate such bit fields (the filesystem macros use chars).
- * FD_SETSIZE may be defined by the user, but the default here
- * should be &gt;= NOFILE (param.h).
- */
-#  ifndef	FD_SETSIZE
-#	define	FD_SETSIZE	64
-#  endif
-
-typedef	long	fd_mask;
-#  define	NFDBITS	(sizeof (fd_mask) * NBBY)	/* bits per mask */
-#  ifndef	howmany
-#	define	howmany(x,y)	(((x)+((y)-1))/(y))
-#  endif
-
-/* We use a macro for fd_set so that including Sockets.h afterwards
-   can work.  */
-typedef	struct _types_fd_set {
-	fd_mask	fds_bits[howmany(FD_SETSIZE, NFDBITS)];
-} _types_fd_set;
-
-#define fd_set _types_fd_set
-
-#  define	FD_SET(n, p)	((p)-&gt;fds_bits[(n)/NFDBITS] |= (1L &lt;&lt; ((n) % NFDBITS)))
-#  define	FD_CLR(n, p)	((p)-&gt;fds_bits[(n)/NFDBITS] &amp;= ~(1L &lt;&lt; ((n) % NFDBITS)))
-#  define	FD_ISSET(n, p)	((p)-&gt;fds_bits[(n)/NFDBITS] &amp; (1L &lt;&lt; ((n) % NFDBITS)))
-#  define	FD_ZERO(p)	(__extension__ (void)({ \
-     size_t __i; \
-     char *__tmp = (char *)p; \
-     for (__i = 0; __i &lt; sizeof (*(p)); ++__i) \
-       *__tmp++ = 0; \
-}))
-
-# endif	/* !(defined (_POSIX_SOURCE) || defined (_WINSOCK_H) || defined (__USE_W32_SOCKETS)) */
-
 #undef __MS_types__
 #undef _ST_INT32
 
--- newlib-1.13.0/newlib/libc/sys/psp/Makefile.am	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/Makefile.am	2006-05-11 20:51:00.000000000 +0000
@@ -0,0 +1,65 @@
+## Process this file with automake to generate Makefile.in
+
+AUTOMAKE_OPTIONS = cygnus
+
+INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
+
+noinst_LIBRARIES = lib.a
+
+LIBCGLUE_MULT_OBJS = _close.o _exit.o _fork.o _fstat.o _getpid.o	\
+                     _gettimeofday.o _kill.o _lseek.o _open.o _read.o	\
+                     _sbrk.o _wait.o _write.o clock.o isatty.o time.o	\
+                     _link.o _unlink.o sleep.o opendir.o readdir.o	\
+                     closedir.o getcwd.o chdir.o mkdir.o rmdir.o	\
+                     realpath.o _stat.o truncate.o access.o tzset.o	\
+                     __psp_set_errno.o mlock.o _fcntl.o _rename.o
+
+SOCKET_MULT_OBJS = socket.o accept.o bind.o connect.o getsockopt.o \
+				   listen.o recv.o recvfrom.o send.o sendto.o \
+				   setsockopt.o shutdown.o getsockname.o getpeername.o \
+				   inet_ntoa.o
+				   
+PIPE_OBJS = pipe.o 
+
+FDMAN_OBJS = fdman.o
+
+SELECT_OBJS = select.o
+
+INTERRUPT_OBJS = interrupt.o
+
+XPRINTF_MULT_OBJS = vxprintf.o _xprintf.o __sout.o vsnprintf.o snprintf.o vsprintf.o sprintf.o __mout.o mprintf.o vmprintf.o asprintf.o vasprintf.o __fout.o fprintf.o vfprintf.o printf.o vprintf.o _sprintf_r.o
+
+NETDB_MULT_OBJS = h_errno.o gethostbyaddr.o gethostbyname.o
+
+lib_a_SOURCES = libcglue.c socket.c pspcwd.c xprintf.c netdb.c pipe.c fdman.c select.c interrupt.S
+lib_a_LIBADD  = $(LIBCGLUE_MULT_OBJS) $(SOCKET_MULT_OBJS) $(XPRINTF_MULT_OBJS) \
+				$(NETDB_MULT_OBJS) $(PIPE_OBJS) $(FDMAN_OBJS) $(SELECT_OBJS) $(INTERRUPT_OBJS)
+
+all: crt0.o
+
+$(LIBCGLUE_MULT_OBJS): libcglue.c
+	$(COMPILE) -DF_$* $&lt; -c -o $@
+
+$(SOCKET_MULT_OBJS): socket.c
+	$(COMPILE) -DF_$* $&lt; -c -o $@
+
+$(XPRINTF_MULT_OBJS): xprintf.c
+	$(COMPILE) -DF_$* $&lt; -c -o $@
+
+$(NETDB_MULT_OBJS): netdb.c
+	$(COMPILE) -DF_$* $&lt; -c -o $@
+
+$(PIPE_OBJS): pipe.c
+	$(COMPILE) -DF_$* $&lt; -c -o $@
+
+$(FDMAN_OBJS): fdman.c
+	$(COMPILE) -DF_$* $&lt; -c -o $@
+
+$(SELECT_OBJS): select.c
+	$(COMPILE) -DF_$* $&lt; -c -o $@
+	
+$(INTERRUPT_OBJS): interrupt.S
+	$(COMPILE) -DF_$* $&lt; -c -o $@
+
+ACLOCAL_AMFLAGS = -I ../../..
+CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
--- newlib-1.13.0/newlib/libc/sys/psp/Makefile.in	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/Makefile.in	2006-05-11 20:54:00.000000000 +0000
@@ -0,0 +1,389 @@
+# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = .
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_alias = @build_alias@
+build_triplet = @build@
+host_alias = @host_alias@
+host_triplet = @host@
+target_alias = @target_alias@
+target_triplet = @target@
+AR = @AR@
+AS = @AS@
+CC = @CC@
+CPP = @CPP@
+EXEEXT = @EXEEXT@
+HAVE_LIB = @HAVE_LIB@
+LDFLAGS = @LDFLAGS@
+LIB = @LIB@
+LTLIB = @LTLIB@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+NEWLIB_CFLAGS = @NEWLIB_CFLAGS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+VERSION = @VERSION@
+aext = @aext@
+libm_machine_dir = @libm_machine_dir@
+machine_dir = @machine_dir@
+newlib_basedir = @newlib_basedir@
+oext = @oext@
+sys_dir = @sys_dir@
+
+AUTOMAKE_OPTIONS = cygnus
+
+INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
+
+noinst_LIBRARIES = lib.a
+
+LIBCGLUE_MULT_OBJS = _close.o _exit.o _fork.o _fstat.o _getpid.o	                     _gettimeofday.o _kill.o _lseek.o _open.o _read.o	                     _sbrk.o _wait.o _write.o clock.o isatty.o time.o	                     _link.o _unlink.o sleep.o opendir.o readdir.o	                     closedir.o getcwd.o chdir.o mkdir.o rmdir.o	                     realpath.o _stat.o truncate.o access.o tzset.o	                     __psp_set_errno.o mlock.o _fcntl.o _rename.o
+
+
+SOCKET_MULT_OBJS = socket.o accept.o bind.o connect.o getsockopt.o 				   listen.o recv.o recvfrom.o send.o sendto.o 				   setsockopt.o shutdown.o getsockname.o getpeername.o 				   inet_ntoa.o
+
+
+PIPE_OBJS = pipe.o 
+
+FDMAN_OBJS = fdman.o
+
+SELECT_OBJS = select.o
+
+INTERRUPT_OBJS = interrupt.o
+
+XPRINTF_MULT_OBJS = vxprintf.o _xprintf.o __sout.o vsnprintf.o snprintf.o vsprintf.o sprintf.o __mout.o mprintf.o vmprintf.o asprintf.o vasprintf.o __fout.o fprintf.o vfprintf.o printf.o vprintf.o _sprintf_r.o
+
+NETDB_MULT_OBJS = h_errno.o gethostbyaddr.o gethostbyname.o
+
+lib_a_SOURCES = libcglue.c socket.c pspcwd.c xprintf.c netdb.c pipe.c fdman.c select.c interrupt.S
+lib_a_LIBADD = $(LIBCGLUE_MULT_OBJS) $(SOCKET_MULT_OBJS) $(XPRINTF_MULT_OBJS) 				$(NETDB_MULT_OBJS) $(PIPE_OBJS) $(FDMAN_OBJS) $(SELECT_OBJS) $(INTERRUPT_OBJS)
+
+
+ACLOCAL_AMFLAGS = -I ../../..
+CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs
+CONFIG_CLEAN_FILES = 
+LIBRARIES =  $(noinst_LIBRARIES)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir) 
+CPPFLAGS = @CPPFLAGS@
+LIBS = @LIBS@
+lib_a_DEPENDENCIES =  _close.o _exit.o _fork.o _fstat.o _getpid.o \
+_gettimeofday.o _kill.o _lseek.o _open.o _read.o _sbrk.o _wait.o \
+_write.o clock.o isatty.o time.o _link.o _unlink.o sleep.o opendir.o \
+readdir.o closedir.o getcwd.o chdir.o mkdir.o rmdir.o realpath.o \
+_stat.o truncate.o access.o tzset.o __psp_set_errno.o mlock.o _fcntl.o \
+_rename.o socket.o accept.o bind.o connect.o getsockopt.o listen.o \
+recv.o recvfrom.o send.o sendto.o setsockopt.o shutdown.o getsockname.o \
+getpeername.o inet_ntoa.o vxprintf.o _xprintf.o __sout.o vsnprintf.o \
+snprintf.o vsprintf.o sprintf.o __mout.o mprintf.o vmprintf.o \
+asprintf.o vasprintf.o __fout.o fprintf.o vfprintf.o printf.o vprintf.o \
+_sprintf_r.o h_errno.o gethostbyaddr.o gethostbyname.o pipe.o fdman.o \
+select.o interrupt.o
+lib_a_OBJECTS =  libcglue.o socket.o pspcwd.o xprintf.o netdb.o pipe.o \
+fdman.o select.o interrupt.o
+CFLAGS = @CFLAGS@
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+DIST_COMMON =  README Makefile.am Makefile.in aclocal.m4 configure \
+configure.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+SOURCES = $(lib_a_SOURCES)
+OBJECTS = $(lib_a_OBJECTS)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .o .s
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) &amp;&amp; $(AUTOMAKE) --cygnus Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) \
+	  &amp;&amp; CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in  \
+		../../../acinclude.m4 ../../../aclocal.m4 \
+		../../../libtool.m4
+	cd $(srcdir) &amp;&amp; $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+
+config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	$(SHELL) ./config.status --recheck
+$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
+	cd $(srcdir) &amp;&amp; $(AUTOCONF)
+
+mostlyclean-noinstLIBRARIES:
+
+clean-noinstLIBRARIES:
+	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+distclean-noinstLIBRARIES:
+
+maintainer-clean-noinstLIBRARIES:
+
+.c.o:
+	$(COMPILE) -c $&lt;
+
+.s.o:
+	$(COMPILE) -c $&lt;
+
+.S.o:
+	$(COMPILE) -c $&lt;
+
+mostlyclean-compile:
+	-rm -f *.o core *.core
+
+clean-compile:
+
+distclean-compile:
+	-rm -f *.tab.c
+
+maintainer-clean-compile:
+
+lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES)
+	-rm -f lib.a
+	$(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD)
+	$(RANLIB) lib.a
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+	list='$(SOURCES) $(HEADERS)'; \
+	unique=`for i in $$list; do echo $$i; done | \
+	  awk '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	here=`pwd` &amp;&amp; cd $(srcdir) \
+	  &amp;&amp; mkid -f$$here/ID $$unique $(LISP)
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)'; \
+	unique=`for i in $$list; do echo $$i; done | \
+	  awk '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+	  || (cd $(srcdir) &amp;&amp; etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+	-rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+
+# This target untars the dist file and tries a VPATH configuration.  Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+	-rm -rf $(distdir)
+	GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
+	mkdir $(distdir)/=build
+	mkdir $(distdir)/=inst
+	dc_install_base=`cd $(distdir)/=inst &amp;&amp; pwd`; \
+	cd $(distdir)/=build \
+	  &amp;&amp; ../configure --srcdir=.. --prefix=$$dc_install_base \
+	  &amp;&amp; $(MAKE) $(AM_MAKEFLAGS) \
+	  &amp;&amp; $(MAKE) $(AM_MAKEFLAGS) dvi \
+	  &amp;&amp; $(MAKE) $(AM_MAKEFLAGS) check \
+	  &amp;&amp; $(MAKE) $(AM_MAKEFLAGS) install \
+	  &amp;&amp; $(MAKE) $(AM_MAKEFLAGS) installcheck \
+	  &amp;&amp; $(MAKE) $(AM_MAKEFLAGS) dist
+	-rm -rf $(distdir)
+	@banner="$(distdir).tar.gz is ready for distribution"; \
+	dashes=`echo "$$banner" | sed s/./=/g`; \
+	echo "$$dashes"; \
+	echo "$$banner"; \
+	echo "$$dashes"
+dist: distdir
+	-chmod -R a+r $(distdir)
+	GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
+	-rm -rf $(distdir)
+dist-all: distdir
+	-chmod -R a+r $(distdir)
+	GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
+	-rm -rf $(distdir)
+distdir: $(DISTFILES)
+	-rm -rf $(distdir)
+	mkdir $(distdir)
+	-chmod 777 $(distdir)
+	@for file in $(DISTFILES); do \
+	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2&gt; /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am:
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-info-am: 
+install-info: install-info-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile $(LIBRARIES)
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
+		mostlyclean-tags mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-generic \
+		mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-noinstLIBRARIES distclean-compile \
+		distclean-tags distclean-generic clean-am
+
+distclean: distclean-am
+	-rm -f config.status
+
+maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
+		maintainer-clean-compile maintainer-clean-tags \
+		maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+	-rm -f config.status
+
+.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
+clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile tags mostlyclean-tags distclean-tags \
+clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \
+check-am installcheck-am installcheck install-info-am install-info \
+install-exec-am install-exec install-data-am install-data install-am \
+install uninstall-am uninstall all-redirect all-am all installdirs \
+mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+all: crt0.o
+
+$(LIBCGLUE_MULT_OBJS): libcglue.c
+	$(COMPILE) -DF_$* $&lt; -c -o $@
+
+$(SOCKET_MULT_OBJS): socket.c
+	$(COMPILE) -DF_$* $&lt; -c -o $@
+
+$(XPRINTF_MULT_OBJS): xprintf.c
+	$(COMPILE) -DF_$* $&lt; -c -o $@
+
+$(NETDB_MULT_OBJS): netdb.c
+	$(COMPILE) -DF_$* $&lt; -c -o $@
+
+$(PIPE_OBJS): pipe.c
+	$(COMPILE) -DF_$* $&lt; -c -o $@
+
+$(FDMAN_OBJS): fdman.c
+	$(COMPILE) -DF_$* $&lt; -c -o $@
+
+$(SELECT_OBJS): select.c
+	$(COMPILE) -DF_$* $&lt; -c -o $@
+
+$(INTERRUPT_OBJS): interrupt.S
+	$(COMPILE) -DF_$* $&lt; -c -o $@
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- newlib-1.13.0/newlib/libc/sys/psp/README	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/README	2006-05-13 20:29:25.000000000 +0000
@@ -0,0 +1,16 @@
+Newlib for PSP
+--
+
+This sys/psp directory depends on PSPSDK headers.  It expects them to live in
+${prefix}/psp/sdk/include (see newlib/configure.host).
+
+I used automake 1.4-p6 to generate aclocal.m4 and Makefile.in:
+
+	aclocal -I ../../..
+	automake --cygnus
+
+Autoconf refused to work for me, so I copied configure from sys/sh and modified
+$ac_unique_file to point libcglue.c.
+
+--
+Marcus R. Brown &lt;mrbrown@ocgnet.org&gt;
--- newlib-1.13.0/newlib/libc/sys/psp/aclocal.m4	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/aclocal.m4	2006-05-13 20:29:26.000000000 +0000
@@ -0,0 +1,1185 @@
+dnl aclocal.m4 generated automatically by aclocal 1.4-p6
+
+dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+dnl PARTICULAR PURPOSE.
+
+# lib-prefix.m4 serial 4 (gettext-0.14.2)
+dnl Copyright (C) 2001-2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
+dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
+dnl require excessive bracketing.
+ifdef([AC_HELP_STRING],
+[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
+[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
+
+dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
+dnl to access previously installed libraries. The basic assumption is that
+dnl a user will want packages to use other packages he previously installed
+dnl with the same --prefix option.
+dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
+dnl libraries, but is otherwise very convenient.
+AC_DEFUN([AC_LIB_PREFIX],
+[
+  AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
+  AC_REQUIRE([AC_PROG_CC])
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  dnl By default, look in $includedir and $libdir.
+  use_additional=yes
+  AC_LIB_WITH_FINAL_PREFIX([
+    eval additional_includedir=\"$includedir\"
+    eval additional_libdir=\"$libdir\"
+  ])
+  AC_LIB_ARG_WITH([lib-prefix],
+[  --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
+  --without-lib-prefix    don't search for libraries in includedir and libdir],
+[
+    if test "X$withval" = "Xno"; then
+      use_additional=no
+    else
+      if test "X$withval" = "X"; then
+        AC_LIB_WITH_FINAL_PREFIX([
+          eval additional_includedir=\"$includedir\"
+          eval additional_libdir=\"$libdir\"
+        ])
+      else
+        additional_includedir="$withval/include"
+        additional_libdir="$withval/lib"
+      fi
+    fi
+])
+  if test $use_additional = yes; then
+    dnl Potentially add $additional_includedir to $CPPFLAGS.
+    dnl But don't add it
+    dnl   1. if it's the standard /usr/include,
+    dnl   2. if it's already present in $CPPFLAGS,
+    dnl   3. if it's /usr/local/include and we are using GCC on Linux,
+    dnl   4. if it doesn't exist as a directory.
+    if test "X$additional_includedir" != "X/usr/include"; then
+      haveit=
+      for x in $CPPFLAGS; do
+        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+        if test "X$x" = "X-I$additional_includedir"; then
+          haveit=yes
+          break
+        fi
+      done
+      if test -z "$haveit"; then
+        if test "X$additional_includedir" = "X/usr/local/include"; then
+          if test -n "$GCC"; then
+            case $host_os in
+              linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+            esac
+          fi
+        fi
+        if test -z "$haveit"; then
+          if test -d "$additional_includedir"; then
+            dnl Really add $additional_includedir to $CPPFLAGS.
+            CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
+          fi
+        fi
+      fi
+    fi
+    dnl Potentially add $additional_libdir to $LDFLAGS.
+    dnl But don't add it
+    dnl   1. if it's the standard /usr/lib,
+    dnl   2. if it's already present in $LDFLAGS,
+    dnl   3. if it's /usr/local/lib and we are using GCC on Linux,
+    dnl   4. if it doesn't exist as a directory.
+    if test "X$additional_libdir" != "X/usr/lib"; then
+      haveit=
+      for x in $LDFLAGS; do
+        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+        if test "X$x" = "X-L$additional_libdir"; then
+          haveit=yes
+          break
+        fi
+      done
+      if test -z "$haveit"; then
+        if test "X$additional_libdir" = "X/usr/local/lib"; then
+          if test -n "$GCC"; then
+            case $host_os in
+              linux*) haveit=yes;;
+            esac
+          fi
+        fi
+        if test -z "$haveit"; then
+          if test -d "$additional_libdir"; then
+            dnl Really add $additional_libdir to $LDFLAGS.
+            LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
+          fi
+        fi
+      fi
+    fi
+  fi
+])
+
+dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
+dnl acl_final_exec_prefix, containing the values to which $prefix and
+dnl $exec_prefix will expand at the end of the configure script.
+AC_DEFUN([AC_LIB_PREPARE_PREFIX],
+[
+  dnl Unfortunately, prefix and exec_prefix get only finally determined
+  dnl at the end of configure.
+  if test "X$prefix" = "XNONE"; then
+    acl_final_prefix="$ac_default_prefix"
+  else
+    acl_final_prefix="$prefix"
+  fi
+  if test "X$exec_prefix" = "XNONE"; then
+    acl_final_exec_prefix='${prefix}'
+  else
+    acl_final_exec_prefix="$exec_prefix"
+  fi
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+  prefix="$acl_save_prefix"
+])
+
+dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
+dnl variables prefix and exec_prefix bound to the values they will have
+dnl at the end of the configure script.
+AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
+[
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  $1
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+])
+
+# lib-link.m4 serial 6 (gettext-0.14.3)
+dnl Copyright (C) 2001-2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_PREREQ(2.50)
+
+dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
+dnl the libraries corresponding to explicit and implicit dependencies.
+dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
+dnl augments the CPPFLAGS variable.
+AC_DEFUN([AC_LIB_LINKFLAGS],
+[
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  AC_REQUIRE([AC_LIB_RPATH])
+  define([Name],[translit([$1],[./-], [___])])
+  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+  AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
+    AC_LIB_LINKFLAGS_BODY([$1], [$2])
+    ac_cv_lib[]Name[]_libs="$LIB[]NAME"
+    ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
+    ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
+  ])
+  LIB[]NAME="$ac_cv_lib[]Name[]_libs"
+  LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
+  INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
+  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+  AC_SUBST([LIB]NAME)
+  AC_SUBST([LTLIB]NAME)
+  dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
+  dnl results of this search when this library appears as a dependency.
+  HAVE_LIB[]NAME=yes
+  undefine([Name])
+  undefine([NAME])
+])
+
+dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
+dnl searches for libname and the libraries corresponding to explicit and
+dnl implicit dependencies, together with the specified include files and
+dnl the ability to compile and link the specified testcode. If found, it
+dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
+dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
+dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
+dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
+AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
+[
+  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+  AC_REQUIRE([AC_LIB_RPATH])
+  define([Name],[translit([$1],[./-], [___])])
+  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+
+  dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
+  dnl accordingly.
+  AC_LIB_LINKFLAGS_BODY([$1], [$2])
+
+  dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
+  dnl because if the user has installed lib[]Name and not disabled its use
+  dnl via --without-lib[]Name-prefix, he wants to use it.
+  ac_save_CPPFLAGS="$CPPFLAGS"
+  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+
+  AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
+    ac_save_LIBS="$LIBS"
+    LIBS="$LIBS $LIB[]NAME"
+    AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
+    LIBS="$ac_save_LIBS"
+  ])
+  if test "$ac_cv_lib[]Name" = yes; then
+    HAVE_LIB[]NAME=yes
+    AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
+    AC_MSG_CHECKING([how to link with lib[]$1])
+    AC_MSG_RESULT([$LIB[]NAME])
+  else
+    HAVE_LIB[]NAME=no
+    dnl If $LIB[]NAME didn't lead to a usable library, we don't need
+    dnl $INC[]NAME either.
+    CPPFLAGS="$ac_save_CPPFLAGS"
+    LIB[]NAME=
+    LTLIB[]NAME=
+  fi
+  AC_SUBST([HAVE_LIB]NAME)
+  AC_SUBST([LIB]NAME)
+  AC_SUBST([LTLIB]NAME)
+  undefine([Name])
+  undefine([NAME])
+])
+
+dnl Determine the platform dependent parameters needed to use rpath:
+dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
+dnl hardcode_direct, hardcode_minus_L.
+AC_DEFUN([AC_LIB_RPATH],
+[
+  dnl Tell automake &gt;= 1.10 to complain if config.rpath is missing.
+  m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
+  AC_REQUIRE([AC_PROG_CC])                dnl we use $CC, $GCC, $LDFLAGS
+  AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld
+  AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host
+  AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
+  AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
+    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" &gt; conftest.sh
+    . ./conftest.sh
+    rm -f ./conftest.sh
+    acl_cv_rpath=done
+  ])
+  wl="$acl_cv_wl"
+  libext="$acl_cv_libext"
+  shlibext="$acl_cv_shlibext"
+  hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+  hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+  hardcode_direct="$acl_cv_hardcode_direct"
+  hardcode_minus_L="$acl_cv_hardcode_minus_L"
+  dnl Determine whether the user wants rpath handling at all.
+  AC_ARG_ENABLE(rpath,
+    [  --disable-rpath         do not hardcode runtime library paths],
+    :, enable_rpath=yes)
+])
+
+dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
+dnl the libraries corresponding to explicit and implicit dependencies.
+dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
+AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
+[
+  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+  dnl By default, look in $includedir and $libdir.
+  use_additional=yes
+  AC_LIB_WITH_FINAL_PREFIX([
+    eval additional_includedir=\"$includedir\"
+    eval additional_libdir=\"$libdir\"
+  ])
+  AC_LIB_ARG_WITH([lib$1-prefix],
+[  --with-lib$1-prefix[=DIR]  search for lib$1 in DIR/include and DIR/lib
+  --without-lib$1-prefix     don't search for lib$1 in includedir and libdir],
+[
+    if test "X$withval" = "Xno"; then
+      use_additional=no
+    else
+      if test "X$withval" = "X"; then
+        AC_LIB_WITH_FINAL_PREFIX([
+          eval additional_includedir=\"$includedir\"
+          eval additional_libdir=\"$libdir\"
+        ])
+      else
+        additional_includedir="$withval/include"
+        additional_libdir="$withval/lib"
+      fi
+    fi
+])
+  dnl Search the library and its dependencies in $additional_libdir and
+  dnl $LDFLAGS. Using breadth-first-seach.
+  LIB[]NAME=
+  LTLIB[]NAME=
+  INC[]NAME=
+  rpathdirs=
+  ltrpathdirs=
+  names_already_handled=
+  names_next_round='$1 $2'
+  while test -n "$names_next_round"; do
+    names_this_round="$names_next_round"
+    names_next_round=
+    for name in $names_this_round; do
+      already_handled=
+      for n in $names_already_handled; do
+        if test "$n" = "$name"; then
+          already_handled=yes
+          break
+        fi
+      done
+      if test -z "$already_handled"; then
+        names_already_handled="$names_already_handled $name"
+        dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
+        dnl or AC_LIB_HAVE_LINKFLAGS call.
+        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+        eval value=\"\$HAVE_LIB$uppername\"
+        if test -n "$value"; then
+          if test "$value" = yes; then
+            eval value=\"\$LIB$uppername\"
+            test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
+            eval value=\"\$LTLIB$uppername\"
+            test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
+          else
+            dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
+            dnl that this library doesn't exist. So just drop it.
+            :
+          fi
+        else
+          dnl Search the library lib$name in $additional_libdir and $LDFLAGS
+          dnl and the already constructed $LIBNAME/$LTLIBNAME.
+          found_dir=
+          found_la=
+          found_so=
+          found_a=
+          if test $use_additional = yes; then
+            if test -n "$shlibext" &amp;&amp; test -f "$additional_libdir/lib$name.$shlibext"; then
+              found_dir="$additional_libdir"
+              found_so="$additional_libdir/lib$name.$shlibext"
+              if test -f "$additional_libdir/lib$name.la"; then
+                found_la="$additional_libdir/lib$name.la"
+              fi
+            else
+              if test -f "$additional_libdir/lib$name.$libext"; then
+                found_dir="$additional_libdir"
+                found_a="$additional_libdir/lib$name.$libext"
+                if test -f "$additional_libdir/lib$name.la"; then
+                  found_la="$additional_libdir/lib$name.la"
+                fi
+              fi
+            fi
+          fi
+          if test "X$found_dir" = "X"; then
+            for x in $LDFLAGS $LTLIB[]NAME; do
+              AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+              case "$x" in
+                -L*)
+                  dir=`echo "X$x" | sed -e 's/^X-L//'`
+                  if test -n "$shlibext" &amp;&amp; test -f "$dir/lib$name.$shlibext"; then
+                    found_dir="$dir"
+                    found_so="$dir/lib$name.$shlibext"
+                    if test -f "$dir/lib$name.la"; then
+                      found_la="$dir/lib$name.la"
+                    fi
+                  else
+                    if test -f "$dir/lib$name.$libext"; then
+                      found_dir="$dir"
+                      found_a="$dir/lib$name.$libext"
+                      if test -f "$dir/lib$name.la"; then
+                        found_la="$dir/lib$name.la"
+                      fi
+                    fi
+                  fi
+                  ;;
+              esac
+              if test "X$found_dir" != "X"; then
+                break
+              fi
+            done
+          fi
+          if test "X$found_dir" != "X"; then
+            dnl Found the library.
+            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
+            if test "X$found_so" != "X"; then
+              dnl Linking with a shared library. We attempt to hardcode its
+              dnl directory into the executable's runpath, unless it's the
+              dnl standard /usr/lib.
+              if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
+                dnl No hardcoding is needed.
+                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+              else
+                dnl Use an explicit option to hardcode DIR into the resulting
+                dnl binary.
+                dnl Potentially add DIR to ltrpathdirs.
+                dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+                haveit=
+                for x in $ltrpathdirs; do
+                  if test "X$x" = "X$found_dir"; then
+                    haveit=yes
+                    break
+                  fi
+                done
+                if test -z "$haveit"; then
+                  ltrpathdirs="$ltrpathdirs $found_dir"
+                fi
+                dnl The hardcoding into $LIBNAME is system dependent.
+                if test "$hardcode_direct" = yes; then
+                  dnl Using DIR/libNAME.so during linking hardcodes DIR into the
+                  dnl resulting binary.
+                  LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+                else
+                  if test -n "$hardcode_libdir_flag_spec" &amp;&amp; test "$hardcode_minus_L" = no; then
+                    dnl Use an explicit option to hardcode DIR into the resulting
+                    dnl binary.
+                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+                    dnl Potentially add DIR to rpathdirs.
+                    dnl The rpathdirs will be appended to $LIBNAME at the end.
+                    haveit=
+                    for x in $rpathdirs; do
+                      if test "X$x" = "X$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      rpathdirs="$rpathdirs $found_dir"
+                    fi
+                  else
+                    dnl Rely on "-L$found_dir".
+                    dnl But don't add it if it's already contained in the LDFLAGS
+                    dnl or the already constructed $LIBNAME
+                    haveit=
+                    for x in $LDFLAGS $LIB[]NAME; do
+                      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                      if test "X$x" = "X-L$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
+                    fi
+                    if test "$hardcode_minus_L" != no; then
+                      dnl FIXME: Not sure whether we should use
+                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+                      dnl here.
+                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+                    else
+                      dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
+                      dnl here, because this doesn't fit in flags passed to the
+                      dnl compiler. So give up. No hardcoding. This affects only
+                      dnl very old systems.
+                      dnl FIXME: Not sure whether we should use
+                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+                      dnl here.
+                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+                    fi
+                  fi
+                fi
+              fi
+            else
+              if test "X$found_a" != "X"; then
+                dnl Linking with a static library.
+                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
+              else
+                dnl We shouldn't come here, but anyway it's good to have a
+                dnl fallback.
+                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
+              fi
+            fi
+            dnl Assume the include files are nearby.
+            additional_includedir=
+            case "$found_dir" in
+              */lib | */lib/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
+                additional_includedir="$basedir/include"
+                ;;
+            esac
+            if test "X$additional_includedir" != "X"; then
+              dnl Potentially add $additional_includedir to $INCNAME.
+              dnl But don't add it
+              dnl   1. if it's the standard /usr/include,
+              dnl   2. if it's /usr/local/include and we are using GCC on Linux,
+              dnl   3. if it's already present in $CPPFLAGS or the already
+              dnl      constructed $INCNAME,
+              dnl   4. if it doesn't exist as a directory.
+              if test "X$additional_includedir" != "X/usr/include"; then
+                haveit=
+                if test "X$additional_includedir" = "X/usr/local/include"; then
+                  if test -n "$GCC"; then
+                    case $host_os in
+                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                    esac
+                  fi
+                fi
+                if test -z "$haveit"; then
+                  for x in $CPPFLAGS $INC[]NAME; do
+                    AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                    if test "X$x" = "X-I$additional_includedir"; then
+                      haveit=yes
+                      break
+                    fi
+                  done
+                  if test -z "$haveit"; then
+                    if test -d "$additional_includedir"; then
+                      dnl Really add $additional_includedir to $INCNAME.
+                      INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
+                    fi
+                  fi
+                fi
+              fi
+            fi
+            dnl Look for dependencies.
+            if test -n "$found_la"; then
+              dnl Read the .la file. It defines the variables
+              dnl dlname, library_names, old_library, dependency_libs, current,
+              dnl age, revision, installed, dlopen, dlpreopen, libdir.
+              save_libdir="$libdir"
+              case "$found_la" in
+                */* | *\\*) . "$found_la" ;;
+                *) . "./$found_la" ;;
+              esac
+              libdir="$save_libdir"
+              dnl We use only dependency_libs.
+              for dep in $dependency_libs; do
+                case "$dep" in
+                  -L*)
+                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+                    dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
+                    dnl But don't add it
+                    dnl   1. if it's the standard /usr/lib,
+                    dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
+                    dnl   3. if it's already present in $LDFLAGS or the already
+                    dnl      constructed $LIBNAME,
+                    dnl   4. if it doesn't exist as a directory.
+                    if test "X$additional_libdir" != "X/usr/lib"; then
+                      haveit=
+                      if test "X$additional_libdir" = "X/usr/local/lib"; then
+                        if test -n "$GCC"; then
+                          case $host_os in
+                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                          esac
+                        fi
+                      fi
+                      if test -z "$haveit"; then
+                        haveit=
+                        for x in $LDFLAGS $LIB[]NAME; do
+                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                            dnl Really add $additional_libdir to $LIBNAME.
+                            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
+                          fi
+                        fi
+                        haveit=
+                        for x in $LDFLAGS $LTLIB[]NAME; do
+                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                            dnl Really add $additional_libdir to $LTLIBNAME.
+                            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
+                          fi
+                        fi
+                      fi
+                    fi
+                    ;;
+                  -R*)
+                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
+                    if test "$enable_rpath" != no; then
+                      dnl Potentially add DIR to rpathdirs.
+                      dnl The rpathdirs will be appended to $LIBNAME at the end.
+                      haveit=
+                      for x in $rpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        rpathdirs="$rpathdirs $dir"
+                      fi
+                      dnl Potentially add DIR to ltrpathdirs.
+                      dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+                      haveit=
+                      for x in $ltrpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        ltrpathdirs="$ltrpathdirs $dir"
+                      fi
+                    fi
+                    ;;
+                  -l*)
+                    dnl Handle this in the next round.
+                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+                    ;;
+                  *.la)
+                    dnl Handle this in the next round. Throw away the .la's
+                    dnl directory; it is already contained in a preceding -L
+                    dnl option.
+                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+                    ;;
+                  *)
+                    dnl Most likely an immediate library name.
+                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
+                    LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
+                    ;;
+                esac
+              done
+            fi
+          else
+            dnl Didn't find the library; assume it is in the system directories
+            dnl known to the linker and runtime loader. (All the system
+            dnl directories known to the linker should also be known to the
+            dnl runtime loader, otherwise the system is severely misconfigured.)
+            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
+          fi
+        fi
+      fi
+    done
+  done
+  if test "X$rpathdirs" != "X"; then
+    if test -n "$hardcode_libdir_separator"; then
+      dnl Weird platform: only the last -rpath option counts, the user must
+      dnl pass all path elements in one option. We can arrange that for a
+      dnl single library, but not when more than one $LIBNAMEs are used.
+      alldirs=
+      for found_dir in $rpathdirs; do
+        alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
+      done
+      dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
+      acl_save_libdir="$libdir"
+      libdir="$alldirs"
+      eval flag=\"$hardcode_libdir_flag_spec\"
+      libdir="$acl_save_libdir"
+      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+    else
+      dnl The -rpath options are cumulative.
+      for found_dir in $rpathdirs; do
+        acl_save_libdir="$libdir"
+        libdir="$found_dir"
+        eval flag=\"$hardcode_libdir_flag_spec\"
+        libdir="$acl_save_libdir"
+        LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+      done
+    fi
+  fi
+  if test "X$ltrpathdirs" != "X"; then
+    dnl When using libtool, the option that works for both libraries and
+    dnl executables is -R. The -R options are cumulative.
+    for found_dir in $ltrpathdirs; do
+      LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
+    done
+  fi
+])
+
+dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
+dnl unless already present in VAR.
+dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
+dnl contains two or three consecutive elements that belong together.
+AC_DEFUN([AC_LIB_APPENDTOVAR],
+[
+  for element in [$2]; do
+    haveit=
+    for x in $[$1]; do
+      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+      if test "X$x" = "X$element"; then
+        haveit=yes
+        break
+      fi
+    done
+    if test -z "$haveit"; then
+      [$1]="${[$1]}${[$1]:+ }$element"
+    fi
+  done
+])
+
+# lib-ld.m4 serial 3 (gettext-0.13)
+dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl Subroutines of libtool.m4,
+dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
+dnl with libtool.m4.
+
+dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
+AC_DEFUN([AC_LIB_PROG_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2&gt;&amp;1 &lt;/dev/null` in
+*GNU* | *'with BFD'*)
+  acl_cv_prog_gnu_ld=yes ;;
+*)
+  acl_cv_prog_gnu_ld=no ;;
+esac])
+with_gnu_ld=$acl_cv_prog_gnu_ld
+])
+
+dnl From libtool-1.4. Sets the variable LD.
+AC_DEFUN([AC_LIB_PROG_LD],
+[AC_ARG_WITH(gnu-ld,
+[  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
+test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" &gt;conf$$.sh
+  echo  "exit 0"   &gt;&gt;conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) &gt;/dev/null 2&gt;&amp;1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by GCC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2&gt;&amp;5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2&gt;&amp;5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]* | [A-Za-z]:[\\/]*)]
+      [re_direlt='/[^/][^/]*/\.\./']
+      # Canonicalize the path of ld
+      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" &gt; /dev/null 2&gt;&amp;1; do
+	ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+      done
+      test -z "$LD" &amp;&amp; LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(acl_cv_path_LD,
+[if test -z "$LD"; then
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" &amp;&amp; ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      acl_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some GNU ld's only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$acl_cv_path_LD" -v 2&gt;&amp;1 &lt; /dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no &amp;&amp; break ;;
+      *)
+	test "$with_gnu_ld" != yes &amp;&amp; break ;;
+      esac
+    fi
+  done
+  IFS="$ac_save_ifs"
+else
+  acl_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$acl_cv_path_LD"
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" &amp;&amp; AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_LIB_PROG_LD_GNU
+])
+
+dnl This provides configure definitions used by all the newlib
+dnl configure.in files.
+
+dnl Basic newlib configury.  This calls basic introductory stuff,
+dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST.  It also runs
+dnl configure.host.  The only argument is the relative path to the top
+dnl newlib directory.
+
+AC_DEFUN(NEWLIB_CONFIGURE,
+[
+dnl Default to --enable-multilib
+AC_ARG_ENABLE(multilib,
+[  --enable-multilib         build many library versions (default)],
+[case "${enableval}" in
+  yes) multilib=yes ;;
+  no)  multilib=no ;;
+  *)   AC_MSG_ERROR(bad value ${enableval} for multilib option) ;;
+ esac], [multilib=yes])dnl
+
+dnl Support --enable-target-optspace
+AC_ARG_ENABLE(target-optspace,
+[  --enable-target-optspace  optimize for space],
+[case "${enableval}" in
+  yes) target_optspace=yes ;;
+  no)  target_optspace=no ;;
+  *)   AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;;
+ esac], [target_optspace=])dnl
+
+dnl Support --enable-malloc-debugging - currently only supported for Cygwin
+AC_ARG_ENABLE(malloc-debugging,
+[  --enable-malloc-debugging indicate malloc debugging requested],
+[case "${enableval}" in
+  yes) malloc_debugging=yes ;;
+  no)  malloc_debugging=no ;;
+  *)   AC_MSG_ERROR(bad value ${enableval} for malloc-debugging option) ;;
+ esac], [malloc_debugging=])dnl
+
+dnl Support --enable-newlib-multithread
+AC_ARG_ENABLE(newlib-multithread,
+[  --enable-newlib-multithread        enable support for multiple threads],
+[case "${enableval}" in
+  yes) newlib_multithread=yes ;;
+  no)  newlib_multithread=no ;;
+  *)   AC_MSG_ERROR(bad value ${enableval} for newlib-multithread option) ;;
+ esac], [newlib_multithread=yes])dnl
+
+dnl Support --enable-newlib-iconv
+AC_ARG_ENABLE(newlib-iconv,
+[  --enable-newlib-iconv     enable iconv library support],
+[if test "${newlib_iconv+set}" != set; then
+   case "${enableval}" in
+     yes) newlib_iconv=yes ;;
+     no)  newlib_iconv=no ;;
+     *)   AC_MSG_ERROR(bad value ${enableval} for newlib-iconv option) ;;
+   esac
+ fi], [newlib_iconv=${newlib_iconv}])dnl
+
+dnl Support --enable-newlib-elix-level
+AC_ARG_ENABLE(newlib-elix-level,
+[  --enable-newlib-elix-level         supply desired elix library level (1-4)],
+[case "${enableval}" in
+  0)   newlib_elix_level=0 ;;
+  1)   newlib_elix_level=1 ;;
+  2)   newlib_elix_level=2 ;;
+  3)   newlib_elix_level=3 ;;
+  4)   newlib_elix_level=4 ;;
+  *)   AC_MSG_ERROR(bad value ${enableval} for newlib-elix-level option) ;;
+ esac], [newlib_elix_level=0])dnl
+
+dnl Support --disable-newlib-io-float
+AC_ARG_ENABLE(newlib-io-float,
+[  --disable-newlib-io-float disable printf/scanf family float support],
+[case "${enableval}" in
+  yes) newlib_io_float=yes ;;
+  no)  newlib_io_float=no ;;
+  *)   AC_MSG_ERROR(bad value ${enableval} for newlib-io-float option) ;;
+ esac], [newlib_io_float=yes])dnl
+
+dnl Support --disable-newlib-supplied-syscalls
+AC_ARG_ENABLE(newlib-supplied-syscalls,
+[  --disable-newlib-supplied-syscalls disable newlib from supplying syscalls],
+[case "${enableval}" in
+  yes) newlib_may_supply_syscalls=yes ;;
+  no)  newlib_may_supply_syscalls=no ;;
+  *)   AC_MSG_ERROR(bad value ${enableval} for newlib-supplied-syscalls option) ;;
+ esac], [newlib_may_supply_syscalls=yes])dnl
+
+AM_CONDITIONAL(MAY_SUPPLY_SYSCALLS, test x[$]{newlib_may_supply_syscalls} = xyes)
+
+dnl We may get other options which we don't document:
+dnl --with-target-subdir, --with-multisrctop, --with-multisubdir
+
+test -z "[$]{with_target_subdir}" &amp;&amp; with_target_subdir=.
+
+if test "[$]{srcdir}" = "."; then
+  if test "[$]{with_target_subdir}" != "."; then
+    newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1"
+  else
+    newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1"
+  fi
+else
+  newlib_basedir="[$]{srcdir}/$1"
+fi
+AC_SUBST(newlib_basedir)
+
+AC_CANONICAL_SYSTEM
+
+AM_INIT_AUTOMAKE(newlib, 1.13.0)
+
+# FIXME: We temporarily define our own version of AC_PROG_CC.  This is
+# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS.  We
+# are probably using a cross compiler, which will not be able to fully
+# link an executable.  This should really be fixed in autoconf
+# itself.
+
+AC_DEFUN(LIB_AC_PROG_CC,
+[AC_BEFORE([$0], [AC_PROG_CPP])dnl
+AC_CHECK_PROG(CC, gcc, gcc)
+if test -z "$CC"; then
+  AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
+  test -z "$CC" &amp;&amp; AC_MSG_ERROR([no acceptable cc found in \$PATH])
+fi
+
+AC_PROG_CC_GNU
+
+if test $ac_cv_prog_gcc = yes; then
+  GCC=yes
+dnl Check whether -g works, even if CFLAGS is set, in case the package
+dnl plays around with CFLAGS (such as to build both debugging and
+dnl normal versions of a library), tasteless as that idea is.
+  ac_test_CFLAGS="${CFLAGS+set}"
+  ac_save_CFLAGS="$CFLAGS"
+  CFLAGS=
+  AC_PROG_CC_G
+  if test "$ac_test_CFLAGS" = set; then
+    CFLAGS="$ac_save_CFLAGS"
+  elif test $ac_cv_prog_cc_g = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-O2"
+  fi
+else
+  GCC=
+  test "${CFLAGS+set}" = set || CFLAGS="-g"
+fi
+])
+
+LIB_AC_PROG_CC
+
+AC_CHECK_TOOL(AS, as)
+AC_CHECK_TOOL(AR, ar)
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+
+AC_PROG_INSTALL
+
+AM_MAINTAINER_MODE
+
+# We need AC_EXEEXT to keep automake happy in cygnus mode.  However,
+# at least currently, we never actually build a program, so we never
+# need to use $(EXEEXT).  Moreover, the test for EXEEXT normally
+# fails, because we are probably configuring with a cross compiler
+# which can't create executables.  So we include AC_EXEEXT to keep
+# automake happy, but we don't execute it, since we don't care about
+# the result.
+if false; then
+  AC_EXEEXT
+fi
+
+. [$]{newlib_basedir}/configure.host
+
+newlib_cflags="[$]{newlib_cflags} -fno-builtin"
+
+NEWLIB_CFLAGS=${newlib_cflags}
+AC_SUBST(NEWLIB_CFLAGS)
+
+LDFLAGS=${ldflags}
+AC_SUBST(LDFLAGS)
+
+AM_CONDITIONAL(ELIX_LEVEL_0, test x[$]{newlib_elix_level} = x0)
+AM_CONDITIONAL(ELIX_LEVEL_1, test x[$]{newlib_elix_level} = x1)
+AM_CONDITIONAL(ELIX_LEVEL_2, test x[$]{newlib_elix_level} = x2)
+AM_CONDITIONAL(ELIX_LEVEL_3, test x[$]{newlib_elix_level} = x3)
+AM_CONDITIONAL(ELIX_LEVEL_4, test x[$]{newlib_elix_level} = x4)
+
+AM_CONDITIONAL(USE_LIBTOOL, test x[$]{use_libtool} = xyes)
+
+# Hard-code OBJEXT.  Normally it is set by AC_OBJEXT, but we
+# use oext, which is set in configure.host based on the target platform.
+OBJEXT=${oext}
+
+AC_SUBST(OBJEXT)
+AC_SUBST(oext)
+AC_SUBST(aext)
+
+AC_SUBST(libm_machine_dir)
+AC_SUBST(machine_dir)
+AC_SUBST(sys_dir)
+])
+
+# Do all the work for Automake.  This macro actually does too much --
+# some checks are only needed if your package does certain things.
+# But this isn't really a big deal.
+
+# serial 1
+
+dnl Usage:
+dnl AM_INIT_AUTOMAKE(package,version, [no-define])
+
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])
+PACKAGE=[$1]
+AC_SUBST(PACKAGE)
+VERSION=[$2]
+AC_SUBST(VERSION)
+dnl test to see if srcdir already configured
+if test "`cd $srcdir &amp;&amp; pwd`" != "`pwd`" &amp;&amp; test -f $srcdir/config.status; then
+  AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+fi
+ifelse([$3],,
+AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
+AC_REQUIRE([AM_SANITY_CHECK])
+AC_REQUIRE([AC_ARG_PROGRAM])
+dnl FIXME This is truly gross.
+missing_dir=`cd $ac_aux_dir &amp;&amp; pwd`
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir)
+AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir)
+AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
+AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
+AC_REQUIRE([AC_PROG_MAKE_SET])])
+
+# Copyright 2002  Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION so it can be traced.
+# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+	 [AM_AUTOMAKE_VERSION([1.4-p6])])
+
+#
+# Check to make sure that the build environment is sane.
+#
+
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp &gt; conftestfile
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   set X `ls -Lt $srcdir/configure conftestfile 2&gt; /dev/null`
+   if test "[$]*" = "X"; then
+      # -L didn't work.
+      set X `ls -t $srcdir/configure conftestfile`
+   fi
+   if test "[$]*" != "X $srcdir/configure conftestfile" \
+      &amp;&amp; test "[$]*" != "X conftestfile $srcdir/configure"; then
+
+      # If neither matched, then we have a broken ls.  This can happen
+      # if, for instance, CONFIG_SHELL is bash and it inherits a
+      # broken ls alias from the environment.  This has actually
+      # happened.  Such a system could not be considered "sane".
+      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+alias in your environment])
+   fi
+
+   test "[$]2" = conftestfile
+   )
+then
+   # Ok.
+   :
+else
+   AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+rm -f conftest*
+AC_MSG_RESULT(yes)])
+
+dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
+dnl The program must properly implement --version.
+AC_DEFUN([AM_MISSING_PROG],
+[AC_MSG_CHECKING(for working $2)
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf.  Sigh.
+if ($2 --version) &lt; /dev/null &gt; /dev/null 2&gt;&amp;1; then
+   $1=$2
+   AC_MSG_RESULT(found)
+else
+   $1="$3/missing $2"
+   AC_MSG_RESULT(missing)
+fi
+AC_SUBST($1)])
+
+# Define a conditional.
+
+AC_DEFUN([AM_CONDITIONAL],
+[AC_SUBST($1_TRUE)
+AC_SUBST($1_FALSE)
+if $2; then
+  $1_TRUE=
+  $1_FALSE='#'
+else
+  $1_TRUE='#'
+  $1_FALSE=
+fi])
+
+# Add --enable-maintainer-mode option to configure.
+# From Jim Meyering
+
+# serial 1
+
+AC_DEFUN([AM_MAINTAINER_MODE],
+[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+  dnl maintainer-mode is disabled by default
+  AC_ARG_ENABLE(maintainer-mode,
+[  --enable-maintainer-mode enable make rules and dependencies not useful
+                          (and sometimes confusing) to the casual installer],
+      USE_MAINTAINER_MODE=$enableval,
+      USE_MAINTAINER_MODE=no)
+  AC_MSG_RESULT($USE_MAINTAINER_MODE)
+  AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes)
+  MAINT=$MAINTAINER_MODE_TRUE
+  AC_SUBST(MAINT)dnl
+]
+)
+
--- newlib-1.13.0/newlib/libc/sys/psp/arpa/inet.h	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/arpa/inet.h	2006-05-13 20:29:22.000000000 +0000
@@ -0,0 +1,26 @@
+/* arpa/inet.h - Functions for converting IP addresses between strings and numbers */
+
+#ifndef _ARPA_INET_H_
+#define _ARPA_INET_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include &lt;netinet/in.h&gt;
+
+in_addr_t sceNetInetInetAddr(const char *ip);
+int sceNetInetInetAton(const char *ip, struct in_addr *in);
+const char* sceNetInetInetNtop(int af, const void *src, char *dst, socklen_t cnt);
+int sceNetInetInetPton(int af, const char *src, void *dst);
+
+char *inet_ntoa(struct in_addr in);
+#define inet_addr sceNetInetInetAddr
+#define inet_aton sceNetInetInetAton
+#define inet_ntop sceNetInetInetNtop
+#define inet_pton sceNetInetInetPton
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* _ARPA_INET_H_ */
--- newlib-1.13.0/newlib/libc/sys/psp/configure	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/configure	2006-05-13 20:29:25.000000000 +0000
@@ -0,0 +1,1880 @@
+#! /bin/sh
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 2.13 
+# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+
+# Defaults:
+ac_help=
+ac_default_prefix=/usr/local
+# Any additions from configure.in:
+ac_help="$ac_help
+  --enable-multilib         build many library versions (default)"
+ac_help="$ac_help
+  --enable-target-optspace  optimize for space"
+ac_help="$ac_help
+  --enable-malloc-debugging indicate malloc debugging requested"
+ac_help="$ac_help
+  --enable-newlib-multithread        enable support for multiple threads"
+ac_help="$ac_help
+  --enable-newlib-iconv     enable iconv library support"
+ac_help="$ac_help
+  --enable-newlib-elix-level         supply desired elix library level (1-4)"
+ac_help="$ac_help
+  --disable-newlib-io-float disable printf/scanf family float support"
+ac_help="$ac_help
+  --disable-newlib-supplied-syscalls disable newlib from supplying syscalls"
+ac_help="$ac_help
+  --enable-maintainer-mode enable make rules and dependencies not useful
+                          (and sometimes confusing) to the casual installer"
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+# Initialize some other variables.
+subdirs=
+MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+# Maximum number of lines to put in a shell here document.
+ac_max_here_lines=12
+
+ac_prev=
+for ac_option
+do
+
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval "$ac_prev=\$ac_option"
+    ac_prev=
+    continue
+  fi
+
+  case "$ac_option" in
+  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) ac_optarg= ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case "$ac_option" in
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir="$ac_optarg" ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build="$ac_optarg" ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file="$ac_optarg" ;;
+
+  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+  | --da=*)
+    datadir="$ac_optarg" ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1&gt;&amp;2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    eval "enable_${ac_feature}=no" ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1&gt;&amp;2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix="$ac_optarg" ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he)
+    # Omit some internal or obsolete options to make the list less imposing.
+    # This message is too long to be a string in the A/UX 3.1 sh.
+    cat &lt;&lt; EOF
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+  --cache-file=FILE       cache test results in FILE
+  --help                  print this message
+  --no-create             do not create output files
+  --quiet, --silent       do not print \`checking...' messages
+  --version               print the version of autoconf that created configure
+Directory and file names:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [same as prefix]
+  --bindir=DIR            user executables in DIR [EPREFIX/bin]
+  --sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]
+  --libexecdir=DIR        program executables in DIR [EPREFIX/libexec]
+  --datadir=DIR           read-only architecture-independent data in DIR
+                          [PREFIX/share]
+  --sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data in DIR
+                          [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]
+  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]
+  --includedir=DIR        C header files in DIR [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]
+  --infodir=DIR           info documentation in DIR [PREFIX/info]
+  --mandir=DIR            man documentation in DIR [PREFIX/man]
+  --srcdir=DIR            find the sources in DIR [configure dir or ..]
+  --program-prefix=PREFIX prepend PREFIX to installed program names
+  --program-suffix=SUFFIX append SUFFIX to installed program names
+  --program-transform-name=PROGRAM
+                          run sed PROGRAM on installed program names
+EOF
+    cat &lt;&lt; EOF
+Host type:
+  --build=BUILD           configure for building on BUILD [BUILD=HOST]
+  --host=HOST             configure for HOST [guessed]
+  --target=TARGET         configure for TARGET [TARGET=HOST]
+Features and packages:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --x-includes=DIR        X include files are in DIR
+  --x-libraries=DIR       X library files are in DIR
+EOF
+    if test -n "$ac_help"; then
+      echo "--enable and --with options recognized:$ac_help"
+    fi
+    exit 0 ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host="$ac_optarg" ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir="$ac_optarg" ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir="$ac_optarg" ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir="$ac_optarg" ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir="$ac_optarg" ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst \
+  | --locals | --local | --loca | --loc | --lo)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+    localstatedir="$ac_optarg" ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir="$ac_optarg" ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir="$ac_optarg" ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix="$ac_optarg" ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix="$ac_optarg" ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix="$ac_optarg" ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name="$ac_optarg" ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir="$ac_optarg" ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir="$ac_optarg" ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site="$ac_optarg" ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir="$ac_optarg" ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir="$ac_optarg" ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target="$ac_optarg" ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers)
+    echo "configure generated by autoconf version 2.13"
+    exit 0 ;;
+
+  -with-* | --with-*)
+    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1&gt;&amp;2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "with_${ac_package}='$ac_optarg'" ;;
+
+  -without-* | --without-*)
+    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1&gt;&amp;2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    eval "with_${ac_package}=no" ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes="$ac_optarg" ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries="$ac_optarg" ;;
+
+  -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1&gt;&amp;2; exit 1; }
+    ;;
+
+  *)
+    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+      echo "configure: warning: $ac_option: invalid host type" 1&gt;&amp;2
+    fi
+    if test "x$nonopt" != xNONE; then
+      { echo "configure: error: can only configure for one host and one target at a time" 1&gt;&amp;2; exit 1; }
+    fi
+    nonopt="$ac_option"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1&gt;&amp;2; exit 1; }
+fi
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 6 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+  exec 6&gt;/dev/null
+else
+  exec 6&gt;&amp;1
+fi
+exec 5&gt;./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1&gt;&amp;5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+  case "$ac_arg" in
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c) ;;
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+  *" "*|*"	"*|*[\[\]\~\#\$\^\&amp;\*\(\)\{\}\\\|\;\&lt;\&gt;\?]*)
+  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+  esac
+done
+
+# NLS nuisances.
+# Only set these to C if already set.  These must not be set unconditionally
+# because not all systems understand e.g. LANG=C (notably SCO).
+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+# Non-C LC_CTYPE values break the ctype check.
+if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo &gt; confdefs.h
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=libcglue.c
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then its parent.
+  ac_prog=$0
+  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+  test "x$ac_confdir" = "x$ac_prog" &amp;&amp; ac_confdir=.
+  srcdir=$ac_confdir
+  if test ! -r $srcdir/$ac_unique_file; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+  if test "$ac_srcdir_defaulted" = yes; then
+    { echo "configure: error: can not find sources in $ac_confdir or .." 1&gt;&amp;2; exit 1; }
+  else
+    { echo "configure: error: can not find sources in $srcdir" 1&gt;&amp;2; exit 1; }
+  fi
+fi
+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+  if test "x$prefix" != xNONE; then
+    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+  else
+    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+  fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+  if test -r "$ac_site_file"; then
+    echo "loading site script $ac_site_file"
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  echo "loading cache $cache_file"
+  . $cache_file
+else
+  echo "creating cache $cache_file"
+  &gt; $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1&gt;&amp;5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1&gt;&amp;5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+ac_exeext=
+ac_objext=o
+if (echo "testing\c"; echo 1,2,3) | grep c &gt;/dev/null; then
+  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn &gt;/dev/null; then
+    ac_n= ac_c='
+' ac_t='	'
+  else
+    ac_n=-n ac_c= ac_t=
+  fi
+else
+  ac_n= ac_c='\c' ac_t=
+fi
+
+
+
+ac_aux_dir=
+for ac_dir in ../../../.. $srcdir/../../../..; do
+  if test -f $ac_dir/install-sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f $ac_dir/install.sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1&gt;&amp;2; exit 1; }
+fi
+ac_config_guess=$ac_aux_dir/config.guess
+ac_config_sub=$ac_aux_dir/config.sub
+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+
+am__api_version="1.4"
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1&gt;&amp;6
+echo "configure:578: checking for a BSD compatible install" &gt;&amp;5
+if test -z "$INSTALL"; then
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6
+else
+    IFS="${IFS= 	}"; ac_save_IFS="$IFS"; IFS=":"
+  for ac_dir in $PATH; do
+    # Account for people who put trailing slashes in PATH elements.
+    case "$ac_dir/" in
+    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+    *)
+      # OSF1 and SCO ODT 3.0 have their own names for install.
+      # Don't use installbsd from OSF since it installs stuff as root
+      # by default.
+      for ac_prog in ginstall scoinst install; do
+        if test -f $ac_dir/$ac_prog; then
+	  if test $ac_prog = install &amp;&amp;
+            grep dspmsg $ac_dir/$ac_prog &gt;/dev/null 2&gt;&amp;1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    :
+	  else
+	    ac_cv_path_install="$ac_dir/$ac_prog -c"
+	    break 2
+	  fi
+	fi
+      done
+      ;;
+    esac
+  done
+  IFS="$ac_save_IFS"
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL="$ac_cv_path_install"
+  else
+    # As a last resort, use the slow shell script.  We don't cache a
+    # path for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the path is relative.
+    INSTALL="$ac_install_sh"
+  fi
+fi
+echo "$ac_t""$INSTALL" 1&gt;&amp;6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" &amp;&amp; INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" &amp;&amp; INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+
+test -z "$INSTALL_DATA" &amp;&amp; INSTALL_DATA='${INSTALL} -m 644'
+
+echo $ac_n "checking whether build environment is sane""... $ac_c" 1&gt;&amp;6
+echo "configure:631: checking whether build environment is sane" &gt;&amp;5
+# Just in case
+sleep 1
+echo timestamp &gt; conftestfile
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   set X `ls -Lt $srcdir/configure conftestfile 2&gt; /dev/null`
+   if test "$*" = "X"; then
+      # -L didn't work.
+      set X `ls -t $srcdir/configure conftestfile`
+   fi
+   if test "$*" != "X $srcdir/configure conftestfile" \
+      &amp;&amp; test "$*" != "X conftestfile $srcdir/configure"; then
+
+      # If neither matched, then we have a broken ls.  This can happen
+      # if, for instance, CONFIG_SHELL is bash and it inherits a
+      # broken ls alias from the environment.  This has actually
+      # happened.  Such a system could not be considered "sane".
+      { echo "configure: error: ls -t appears to fail.  Make sure there is not a broken
+alias in your environment" 1&gt;&amp;2; exit 1; }
+   fi
+
+   test "$2" = conftestfile
+   )
+then
+   # Ok.
+   :
+else
+   { echo "configure: error: newly created file is older than distributed files!
+Check your system clock" 1&gt;&amp;2; exit 1; }
+fi
+rm -f conftest*
+echo "$ac_t""yes" 1&gt;&amp;6
+if test "$program_transform_name" = s,x,x,; then
+  program_transform_name=
+else
+  # Double any \ or $.  echo might interpret backslashes.
+  cat &lt;&lt;\EOF_SED &gt; conftestsed
+s,\\,\\\\,g; s,\$,$$,g
+EOF_SED
+  program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
+  rm -f conftestsed
+fi
+test "$program_prefix" != NONE &amp;&amp;
+  program_transform_name="s,^,${program_prefix},; $program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &amp;&amp;
+  program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
+
+# sed with no file args requires a program.
+test "$program_transform_name" = "" &amp;&amp; program_transform_name="s,x,x,"
+
+echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1&gt;&amp;6
+echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" &gt;&amp;5
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6
+else
+  cat &gt; conftestmake &lt;&lt;\EOF
+all:
+	@echo 'ac_maketemp="${MAKE}"'
+EOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+eval `${MAKE-make} -f conftestmake 2&gt;/dev/null | grep temp=`
+if test -n "$ac_maketemp"; then
+  eval ac_cv_prog_make_${ac_make}_set=yes
+else
+  eval ac_cv_prog_make_${ac_make}_set=no
+fi
+rm -f conftestmake
+fi
+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+  echo "$ac_t""yes" 1&gt;&amp;6
+  SET_MAKE=
+else
+  echo "$ac_t""no" 1&gt;&amp;6
+  SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+if test $host != $build; then
+  ac_tool_prefix=${host_alias}-
+else
+  ac_tool_prefix=
+fi
+
+echo $ac_n "checking for Cygwin environment""... $ac_c" 1&gt;&amp;6
+echo "configure:721: checking for Cygwin environment" &gt;&amp;5
+if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6
+else
+  cat &gt; conftest.$ac_ext &lt;&lt;EOF
+#line 726 "configure"
+#include "confdefs.h"
+
+int main() {
+
+#ifndef __CYGWIN__
+#define __CYGWIN__ __CYGWIN32__
+#endif
+return __CYGWIN__;
+; return 0; }
+EOF
+if { (eval echo configure:737: \"$ac_compile\") 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then
+  rm -rf conftest*
+  ac_cv_cygwin=yes
+else
+  echo "configure: failed program was:" &gt;&amp;5
+  cat conftest.$ac_ext &gt;&amp;5
+  rm -rf conftest*
+  ac_cv_cygwin=no
+fi
+rm -f conftest*
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_cygwin" 1&gt;&amp;6
+CYGWIN=
+test "$ac_cv_cygwin" = yes &amp;&amp; CYGWIN=yes
+echo $ac_n "checking for mingw32 environment""... $ac_c" 1&gt;&amp;6
+echo "configure:754: checking for mingw32 environment" &gt;&amp;5
+if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6
+else
+  cat &gt; conftest.$ac_ext &lt;&lt;EOF
+#line 759 "configure"
+#include "confdefs.h"
+
+int main() {
+return __MINGW32__;
+; return 0; }
+EOF
+if { (eval echo configure:766: \"$ac_compile\") 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then
+  rm -rf conftest*
+  ac_cv_mingw32=yes
+else
+  echo "configure: failed program was:" &gt;&amp;5
+  cat conftest.$ac_ext &gt;&amp;5
+  rm -rf conftest*
+  ac_cv_mingw32=no
+fi
+rm -f conftest*
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_mingw32" 1&gt;&amp;6
+MINGW32=
+test "$ac_cv_mingw32" = yes &amp;&amp; MINGW32=yes
+
+# Check whether --enable-multilib or --disable-multilib was given.
+if test "${enable_multilib+set}" = set; then
+  enableval="$enable_multilib"
+  case "${enableval}" in
+  yes) multilib=yes ;;
+  no)  multilib=no ;;
+  *)   { echo "configure: error: bad value ${enableval} for multilib option" 1&gt;&amp;2; exit 1; } ;;
+ esac
+else
+  multilib=yes
+fi
+
+# Check whether --enable-target-optspace or --disable-target-optspace was given.
+if test "${enable_target_optspace+set}" = set; then
+  enableval="$enable_target_optspace"
+  case "${enableval}" in
+  yes) target_optspace=yes ;;
+  no)  target_optspace=no ;;
+  *)   { echo "configure: error: bad value ${enableval} for target-optspace option" 1&gt;&amp;2; exit 1; } ;;
+ esac
+else
+  target_optspace=
+fi
+
+# Check whether --enable-malloc-debugging or --disable-malloc-debugging was given.
+if test "${enable_malloc_debugging+set}" = set; then
+  enableval="$enable_malloc_debugging"
+  case "${enableval}" in
+  yes) malloc_debugging=yes ;;
+  no)  malloc_debugging=no ;;
+  *)   { echo "configure: error: bad value ${enableval} for malloc-debugging option" 1&gt;&amp;2; exit 1; } ;;
+ esac
+else
+  malloc_debugging=
+fi
+
+# Check whether --enable-newlib-multithread or --disable-newlib-multithread was given.
+if test "${enable_newlib_multithread+set}" = set; then
+  enableval="$enable_newlib_multithread"
+  case "${enableval}" in
+  yes) newlib_multithread=yes ;;
+  no)  newlib_multithread=no ;;
+  *)   { echo "configure: error: bad value ${enableval} for newlib-multithread option" 1&gt;&amp;2; exit 1; } ;;
+ esac
+else
+  newlib_multithread=yes
+fi
+
+# Check whether --enable-newlib-iconv or --disable-newlib-iconv was given.
+if test "${enable_newlib_iconv+set}" = set; then
+  enableval="$enable_newlib_iconv"
+  if test "${newlib_iconv+set}" != set; then
+   case "${enableval}" in
+     yes) newlib_iconv=yes ;;
+     no)  newlib_iconv=no ;;
+     *)   { echo "configure: error: bad value ${enableval} for newlib-iconv option" 1&gt;&amp;2; exit 1; } ;;
+   esac
+ fi
+else
+  newlib_iconv=${newlib_iconv}
+fi
+
+# Check whether --enable-newlib-elix-level or --disable-newlib-elix-level was given.
+if test "${enable_newlib_elix_level+set}" = set; then
+  enableval="$enable_newlib_elix_level"
+  case "${enableval}" in
+  0)   newlib_elix_level=0 ;;
+  1)   newlib_elix_level=1 ;;
+  2)   newlib_elix_level=2 ;;
+  3)   newlib_elix_level=3 ;;
+  4)   newlib_elix_level=4 ;;
+  *)   { echo "configure: error: bad value ${enableval} for newlib-elix-level option" 1&gt;&amp;2; exit 1; } ;;
+ esac
+else
+  newlib_elix_level=0
+fi
+
+# Check whether --enable-newlib-io-float or --disable-newlib-io-float was given.
+if test "${enable_newlib_io_float+set}" = set; then
+  enableval="$enable_newlib_io_float"
+  case "${enableval}" in
+  yes) newlib_io_float=yes ;;
+  no)  newlib_io_float=no ;;
+  *)   { echo "configure: error: bad value ${enableval} for newlib-io-float option" 1&gt;&amp;2; exit 1; } ;;
+ esac
+else
+  newlib_io_float=yes
+fi
+
+# Check whether --enable-newlib-supplied-syscalls or --disable-newlib-supplied-syscalls was given.
+if test "${enable_newlib_supplied_syscalls+set}" = set; then
+  enableval="$enable_newlib_supplied_syscalls"
+  case "${enableval}" in
+  yes) newlib_may_supply_syscalls=yes ;;
+  no)  newlib_may_supply_syscalls=no ;;
+  *)   { echo "configure: error: bad value ${enableval} for newlib-supplied-syscalls option" 1&gt;&amp;2; exit 1; } ;;
+ esac
+else
+  newlib_may_supply_syscalls=yes
+fi
+
+
+
+if test x${newlib_may_supply_syscalls} = xyes; then
+  MAY_SUPPLY_SYSCALLS_TRUE=
+  MAY_SUPPLY_SYSCALLS_FALSE='#'
+else
+  MAY_SUPPLY_SYSCALLS_TRUE='#'
+  MAY_SUPPLY_SYSCALLS_FALSE=
+fi
+
+
+test -z "${with_target_subdir}" &amp;&amp; with_target_subdir=.
+
+if test "${srcdir}" = "."; then
+  if test "${with_target_subdir}" != "."; then
+    newlib_basedir="${srcdir}/${with_multisrctop}../../../.."
+  else
+    newlib_basedir="${srcdir}/${with_multisrctop}../../.."
+  fi
+else
+  newlib_basedir="${srcdir}/../../.."
+fi
+
+
+
+# Do some error checking and defaulting for the host and target type.
+# The inputs are:
+#    configure --host=HOST --target=TARGET --build=BUILD NONOPT
+#
+# The rules are:
+# 1. You are not allowed to specify --host, --target, and nonopt at the
+#    same time.
+# 2. Host defaults to nonopt.
+# 3. If nonopt is not specified, then host defaults to the current host,
+#    as determined by config.guess.
+# 4. Target and build default to nonopt.
+# 5. If nonopt is not specified, then target and build default to host.
+
+# The aliases save the names the user supplied, while $host etc.
+# will get canonicalized.
+case $host---$target---$nonopt in
+NONE---*---* | *---NONE---* | *---*---NONE) ;;
+*) { echo "configure: error: can only configure for one host and one target at a time" 1&gt;&amp;2; exit 1; } ;;
+esac
+
+
+# Make sure we can run config.sub.
+if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 &gt;/dev/null 2&gt;&amp;1; then :
+else { echo "configure: error: can not run $ac_config_sub" 1&gt;&amp;2; exit 1; }
+fi
+
+echo $ac_n "checking host system type""... $ac_c" 1&gt;&amp;6
+echo "configure:936: checking host system type" &gt;&amp;5
+
+host_alias=$host
+case "$host_alias" in
+NONE)
+  case $nonopt in
+  NONE)
+    if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
+    else { echo "configure: error: can not guess host type; you must specify one" 1&gt;&amp;2; exit 1; }
+    fi ;;
+  *) host_alias=$nonopt ;;
+  esac ;;
+esac
+
+host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
+host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+echo "$ac_t""$host" 1&gt;&amp;6
+
+echo $ac_n "checking target system type""... $ac_c" 1&gt;&amp;6
+echo "configure:957: checking target system type" &gt;&amp;5
+
+target_alias=$target
+case "$target_alias" in
+NONE)
+  case $nonopt in
+  NONE) target_alias=$host_alias ;;
+  *) target_alias=$nonopt ;;
+  esac ;;
+esac
+
+target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias`
+target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+echo "$ac_t""$target" 1&gt;&amp;6
+
+echo $ac_n "checking build system type""... $ac_c" 1&gt;&amp;6
+echo "configure:975: checking build system type" &gt;&amp;5
+
+build_alias=$build
+case "$build_alias" in
+NONE)
+  case $nonopt in
+  NONE) build_alias=$host_alias ;;
+  *) build_alias=$nonopt ;;
+  esac ;;
+esac
+
+build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
+build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+echo "$ac_t""$build" 1&gt;&amp;6
+
+test "$host_alias" != "$target_alias" &amp;&amp;
+  test "$program_prefix$program_suffix$program_transform_name" = \
+    NONENONEs,x,x, &amp;&amp;
+  program_prefix=${target_alias}-
+
+
+
+PACKAGE=newlib
+
+VERSION=1.13.0
+
+if test "`cd $srcdir &amp;&amp; pwd`" != "`pwd`" &amp;&amp; test -f $srcdir/config.status; then
+  { echo "configure: error: source directory already configured; run "make distclean" there first" 1&gt;&amp;2; exit 1; }
+fi
+cat &gt;&gt; confdefs.h &lt;&lt;EOF
+#define PACKAGE "$PACKAGE"
+EOF
+
+cat &gt;&gt; confdefs.h &lt;&lt;EOF
+#define VERSION "$VERSION"
+EOF
+
+
+
+missing_dir=`cd $ac_aux_dir &amp;&amp; pwd`
+echo $ac_n "checking for working aclocal-${am__api_version}""... $ac_c" 1&gt;&amp;6
+echo "configure:1018: checking for working aclocal-${am__api_version}" &gt;&amp;5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf.  Sigh.
+if (aclocal-${am__api_version} --version) &lt; /dev/null &gt; /dev/null 2&gt;&amp;1; then
+   ACLOCAL=aclocal-${am__api_version}
+   echo "$ac_t""found" 1&gt;&amp;6
+else
+   ACLOCAL="$missing_dir/missing aclocal-${am__api_version}"
+   echo "$ac_t""missing" 1&gt;&amp;6
+fi
+
+echo $ac_n "checking for working autoconf""... $ac_c" 1&gt;&amp;6
+echo "configure:1031: checking for working autoconf" &gt;&amp;5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf.  Sigh.
+if (autoconf --version) &lt; /dev/null &gt; /dev/null 2&gt;&amp;1; then
+   AUTOCONF=autoconf
+   echo "$ac_t""found" 1&gt;&amp;6
+else
+   AUTOCONF="$missing_dir/missing autoconf"
+   echo "$ac_t""missing" 1&gt;&amp;6
+fi
+
+echo $ac_n "checking for working automake-${am__api_version}""... $ac_c" 1&gt;&amp;6
+echo "configure:1044: checking for working automake-${am__api_version}" &gt;&amp;5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf.  Sigh.
+if (automake-${am__api_version} --version) &lt; /dev/null &gt; /dev/null 2&gt;&amp;1; then
+   AUTOMAKE=automake-${am__api_version}
+   echo "$ac_t""found" 1&gt;&amp;6
+else
+   AUTOMAKE="$missing_dir/missing automake-${am__api_version}"
+   echo "$ac_t""missing" 1&gt;&amp;6
+fi
+
+echo $ac_n "checking for working autoheader""... $ac_c" 1&gt;&amp;6
+echo "configure:1057: checking for working autoheader" &gt;&amp;5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf.  Sigh.
+if (autoheader --version) &lt; /dev/null &gt; /dev/null 2&gt;&amp;1; then
+   AUTOHEADER=autoheader
+   echo "$ac_t""found" 1&gt;&amp;6
+else
+   AUTOHEADER="$missing_dir/missing autoheader"
+   echo "$ac_t""missing" 1&gt;&amp;6
+fi
+
+echo $ac_n "checking for working makeinfo""... $ac_c" 1&gt;&amp;6
+echo "configure:1070: checking for working makeinfo" &gt;&amp;5
+# Run test in a subshell; some versions of sh will print an error if
+# an executable is not found, even if stderr is redirected.
+# Redirect stdin to placate older versions of autoconf.  Sigh.
+if (makeinfo --version) &lt; /dev/null &gt; /dev/null 2&gt;&amp;1; then
+   MAKEINFO=makeinfo
+   echo "$ac_t""found" 1&gt;&amp;6
+else
+   MAKEINFO="$missing_dir/missing makeinfo"
+   echo "$ac_t""missing" 1&gt;&amp;6
+fi
+
+
+
+# FIXME: We temporarily define our own version of AC_PROG_CC.  This is
+# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS.  We
+# are probably using a cross compiler, which will not be able to fully
+# link an executable.  This should really be fixed in autoconf
+# itself.
+
+
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1&gt;&amp;6
+echo "configure:1095: checking for $ac_word" &gt;&amp;5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" &amp;&amp; ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="gcc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1&gt;&amp;6
+else
+  echo "$ac_t""no" 1&gt;&amp;6
+fi
+
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1&gt;&amp;6
+echo "configure:1125: checking for $ac_word" &gt;&amp;5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_prog_rejected=no
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" &amp;&amp; ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+        ac_prog_rejected=yes
+	continue
+      fi
+      ac_cv_prog_CC="cc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# -gt 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    set dummy "$ac_dir/$ac_word" "$@"
+    shift
+    ac_cv_prog_CC="$@"
+  fi
+fi
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1&gt;&amp;6
+else
+  echo "$ac_t""no" 1&gt;&amp;6
+fi
+
+  test -z "$CC" &amp;&amp; { echo "configure: error: no acceptable cc found in \$PATH" 1&gt;&amp;2; exit 1; }
+fi
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1&gt;&amp;6
+echo "configure:1174: checking whether we are using GNU C" &gt;&amp;5
+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6
+else
+  cat &gt; conftest.c &lt;&lt;EOF
+#ifdef __GNUC__
+  yes;
+#endif
+EOF
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1183: \"$ac_try\") 1&gt;&amp;5; (eval $ac_try) 2&gt;&amp;5; }; } | egrep yes &gt;/dev/null 2&gt;&amp;1; then
+  ac_cv_prog_gcc=yes
+else
+  ac_cv_prog_gcc=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gcc" 1&gt;&amp;6
+
+if test $ac_cv_prog_gcc = yes; then
+  GCC=yes
+  ac_test_CFLAGS="${CFLAGS+set}"
+  ac_save_CFLAGS="$CFLAGS"
+  CFLAGS=
+  echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1&gt;&amp;6
+echo "configure:1198: checking whether ${CC-cc} accepts -g" &gt;&amp;5
+if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6
+else
+  echo 'void f(){}' &gt; conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2&gt;&amp;1`"; then
+  ac_cv_prog_cc_g=yes
+else
+  ac_cv_prog_cc_g=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_prog_cc_g" 1&gt;&amp;6
+  if test "$ac_test_CFLAGS" = set; then
+    CFLAGS="$ac_save_CFLAGS"
+  elif test $ac_cv_prog_cc_g = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-O2"
+  fi
+else
+  GCC=
+  test "${CFLAGS+set}" = set || CFLAGS="-g"
+fi
+
+
+# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
+set dummy ${ac_tool_prefix}as; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1&gt;&amp;6
+echo "configure:1229: checking for $ac_word" &gt;&amp;5
+if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6
+else
+  if test -n "$AS"; then
+  ac_cv_prog_AS="$AS" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" &amp;&amp; ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_AS="${ac_tool_prefix}as"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_AS" &amp;&amp; ac_cv_prog_AS="as"
+fi
+fi
+AS="$ac_cv_prog_AS"
+if test -n "$AS"; then
+  echo "$ac_t""$AS" 1&gt;&amp;6
+else
+  echo "$ac_t""no" 1&gt;&amp;6
+fi
+
+
+
+# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1&gt;&amp;6
+echo "configure:1261: checking for $ac_word" &gt;&amp;5
+if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6
+else
+  if test -n "$AR"; then
+  ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" &amp;&amp; ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_AR="${ac_tool_prefix}ar"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_AR" &amp;&amp; ac_cv_prog_AR="ar"
+fi
+fi
+AR="$ac_cv_prog_AR"
+if test -n "$AR"; then
+  echo "$ac_t""$AR" 1&gt;&amp;6
+else
+  echo "$ac_t""no" 1&gt;&amp;6
+fi
+
+
+
+# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1&gt;&amp;6
+echo "configure:1293: checking for $ac_word" &gt;&amp;5
+if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" &amp;&amp; ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+  echo "$ac_t""$RANLIB" 1&gt;&amp;6
+else
+  echo "$ac_t""no" 1&gt;&amp;6
+fi
+
+
+if test -z "$ac_cv_prog_RANLIB"; then
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1&gt;&amp;6
+echo "configure:1325: checking for $ac_word" &gt;&amp;5
+if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" &amp;&amp; ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_RANLIB="ranlib"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_RANLIB" &amp;&amp; ac_cv_prog_RANLIB=":"
+fi
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+  echo "$ac_t""$RANLIB" 1&gt;&amp;6
+else
+  echo "$ac_t""no" 1&gt;&amp;6
+fi
+
+else
+  RANLIB=":"
+fi
+fi
+
+
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1&gt;&amp;6
+echo "configure:1370: checking for a BSD compatible install" &gt;&amp;5
+if test -z "$INSTALL"; then
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6
+else
+    IFS="${IFS= 	}"; ac_save_IFS="$IFS"; IFS=":"
+  for ac_dir in $PATH; do
+    # Account for people who put trailing slashes in PATH elements.
+    case "$ac_dir/" in
+    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+    *)
+      # OSF1 and SCO ODT 3.0 have their own names for install.
+      # Don't use installbsd from OSF since it installs stuff as root
+      # by default.
+      for ac_prog in ginstall scoinst install; do
+        if test -f $ac_dir/$ac_prog; then
+	  if test $ac_prog = install &amp;&amp;
+            grep dspmsg $ac_dir/$ac_prog &gt;/dev/null 2&gt;&amp;1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    :
+	  else
+	    ac_cv_path_install="$ac_dir/$ac_prog -c"
+	    break 2
+	  fi
+	fi
+      done
+      ;;
+    esac
+  done
+  IFS="$ac_save_IFS"
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL="$ac_cv_path_install"
+  else
+    # As a last resort, use the slow shell script.  We don't cache a
+    # path for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the path is relative.
+    INSTALL="$ac_install_sh"
+  fi
+fi
+echo "$ac_t""$INSTALL" 1&gt;&amp;6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" &amp;&amp; INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" &amp;&amp; INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+
+test -z "$INSTALL_DATA" &amp;&amp; INSTALL_DATA='${INSTALL} -m 644'
+
+
+echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1&gt;&amp;6
+echo "configure:1424: checking whether to enable maintainer-specific portions of Makefiles" &gt;&amp;5
+    # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then
+  enableval="$enable_maintainer_mode"
+  USE_MAINTAINER_MODE=$enableval
+else
+  USE_MAINTAINER_MODE=no
+fi
+
+  echo "$ac_t""$USE_MAINTAINER_MODE" 1&gt;&amp;6
+  
+
+if test $USE_MAINTAINER_MODE = yes; then
+  MAINTAINER_MODE_TRUE=
+  MAINTAINER_MODE_FALSE='#'
+else
+  MAINTAINER_MODE_TRUE='#'
+  MAINTAINER_MODE_FALSE=
+fi
+  MAINT=$MAINTAINER_MODE_TRUE
+  
+
+
+# We need AC_EXEEXT to keep automake happy in cygnus mode.  However,
+# at least currently, we never actually build a program, so we never
+# need to use $(EXEEXT).  Moreover, the test for EXEEXT normally
+# fails, because we are probably configuring with a cross compiler
+# which can't create executables.  So we include AC_EXEEXT to keep
+# automake happy, but we don't execute it, since we don't care about
+# the result.
+if false; then
+  
+
+echo $ac_n "checking for executable suffix""... $ac_c" 1&gt;&amp;6
+echo "configure:1458: checking for executable suffix" &gt;&amp;5
+if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6
+else
+  if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
+  ac_cv_exeext=.exe
+else
+  rm -f conftest*
+  echo 'int main () { return 0; }' &gt; conftest.$ac_ext
+  ac_cv_exeext=
+  if { (eval echo configure:1468: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; }; then
+    for file in conftest.*; do
+      case $file in
+      *.c | *.o | *.obj) ;;
+      *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
+      esac
+    done
+  else
+    { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1&gt;&amp;2; exit 1; }
+  fi
+  rm -f conftest*
+  test x"${ac_cv_exeext}" = x &amp;&amp; ac_cv_exeext=no
+fi
+fi
+
+EXEEXT=""
+test x"${ac_cv_exeext}" != xno &amp;&amp; EXEEXT=${ac_cv_exeext}
+echo "$ac_t""${ac_cv_exeext}" 1&gt;&amp;6
+ac_exeext=$EXEEXT
+
+fi
+
+. ${newlib_basedir}/configure.host
+
+newlib_cflags="${newlib_cflags} -fno-builtin"
+
+NEWLIB_CFLAGS=${newlib_cflags}
+
+
+LDFLAGS=${ldflags}
+
+
+
+
+if test x${newlib_elix_level} = x0; then
+  ELIX_LEVEL_0_TRUE=
+  ELIX_LEVEL_0_FALSE='#'
+else
+  ELIX_LEVEL_0_TRUE='#'
+  ELIX_LEVEL_0_FALSE=
+fi
+
+
+if test x${newlib_elix_level} = x1; then
+  ELIX_LEVEL_1_TRUE=
+  ELIX_LEVEL_1_FALSE='#'
+else
+  ELIX_LEVEL_1_TRUE='#'
+  ELIX_LEVEL_1_FALSE=
+fi
+
+
+if test x${newlib_elix_level} = x2; then
+  ELIX_LEVEL_2_TRUE=
+  ELIX_LEVEL_2_FALSE='#'
+else
+  ELIX_LEVEL_2_TRUE='#'
+  ELIX_LEVEL_2_FALSE=
+fi
+
+
+if test x${newlib_elix_level} = x3; then
+  ELIX_LEVEL_3_TRUE=
+  ELIX_LEVEL_3_FALSE='#'
+else
+  ELIX_LEVEL_3_TRUE='#'
+  ELIX_LEVEL_3_FALSE=
+fi
+
+
+if test x${newlib_elix_level} = x4; then
+  ELIX_LEVEL_4_TRUE=
+  ELIX_LEVEL_4_FALSE='#'
+else
+  ELIX_LEVEL_4_TRUE='#'
+  ELIX_LEVEL_4_FALSE=
+fi
+
+
+
+if test x${use_libtool} = xyes; then
+  USE_LIBTOOL_TRUE=
+  USE_LIBTOOL_FALSE='#'
+else
+  USE_LIBTOOL_TRUE='#'
+  USE_LIBTOOL_FALSE=
+fi
+
+# Hard-code OBJEXT.  Normally it is set by AC_OBJEXT, but we
+# use oext, which is set in configure.host based on the target platform.
+OBJEXT=${oext}
+
+
+
+
+
+
+
+
+
+
+trap '' 1 2 15
+cat &gt; confcache &lt;&lt;\EOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs.  It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already.  You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(set) 2&gt;&amp;1 |
+  case `(ac_space=' '; set | grep ac_space) 2&gt;&amp;1` in
+  *ac_space=\ *)
+    # `set' does not quote correctly, so add quotes (double-quote substitution
+    # turns \\\\ into \\, and sed turns \\ into \).
+    sed -n \
+      -e "s/'/'\\\\''/g" \
+      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+    ;;
+  *)
+    # `set' quotes correctly as required by POSIX, so do not add quotes.
+    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+    ;;
+  esac &gt;&gt; confcache
+if cmp -s $cache_file confcache; then
+  :
+else
+  if test -w $cache_file; then
+    echo "updating cache $cache_file"
+    cat confcache &gt; $cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
+fi
+rm -f confcache
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE &amp;&amp; prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE &amp;&amp; exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[ 	]*VPATH[ 	]*=[^:]*$/d'
+fi
+
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+cat &gt; conftest.defs &lt;&lt;\EOF
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
+s%[ 	`~#$^&amp;*(){}\\|;'"&lt;&gt;?]%\\&amp;%g
+s%\[%\\&amp;%g
+s%\]%\\&amp;%g
+s%\$%$$%g
+EOF
+DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+rm -f conftest.defs
+
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat &gt; $CONFIG_STATUS &lt;&lt;EOF
+#! /bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2&gt;/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+  case "\$ac_option" in
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+    echo "$CONFIG_STATUS generated by autoconf version 2.13"
+    exit 0 ;;
+  -help | --help | --hel | --he | --h)
+    echo "\$ac_cs_usage"; exit 0 ;;
+  *) echo "\$ac_cs_usage"; exit 1 ;;
+  esac
+done
+
+ac_given_srcdir=$srcdir
+ac_given_INSTALL="$INSTALL"
+
+trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+EOF
+cat &gt;&gt; $CONFIG_STATUS &lt;&lt;EOF
+
+# Protect against being on the right side of a sed subst in config.status.
+sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&amp;%]/\\\\&amp;/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' &gt; conftest.subs &lt;&lt;\\CEOF
+$ac_vpsub
+$extrasub
+s%@SHELL@%$SHELL%g
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@bindir@%$bindir%g
+s%@sbindir@%$sbindir%g
+s%@libexecdir@%$libexecdir%g
+s%@datadir@%$datadir%g
+s%@sysconfdir@%$sysconfdir%g
+s%@sharedstatedir@%$sharedstatedir%g
+s%@localstatedir@%$localstatedir%g
+s%@libdir@%$libdir%g
+s%@includedir@%$includedir%g
+s%@oldincludedir@%$oldincludedir%g
+s%@infodir@%$infodir%g
+s%@mandir@%$mandir%g
+s%@MAY_SUPPLY_SYSCALLS_TRUE@%$MAY_SUPPLY_SYSCALLS_TRUE%g
+s%@MAY_SUPPLY_SYSCALLS_FALSE@%$MAY_SUPPLY_SYSCALLS_FALSE%g
+s%@newlib_basedir@%$newlib_basedir%g
+s%@host@%$host%g
+s%@host_alias@%$host_alias%g
+s%@host_cpu@%$host_cpu%g
+s%@host_vendor@%$host_vendor%g
+s%@host_os@%$host_os%g
+s%@target@%$target%g
+s%@target_alias@%$target_alias%g
+s%@target_cpu@%$target_cpu%g
+s%@target_vendor@%$target_vendor%g
+s%@target_os@%$target_os%g
+s%@build@%$build%g
+s%@build_alias@%$build_alias%g
+s%@build_cpu@%$build_cpu%g
+s%@build_vendor@%$build_vendor%g
+s%@build_os@%$build_os%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@PACKAGE@%$PACKAGE%g
+s%@VERSION@%$VERSION%g
+s%@ACLOCAL@%$ACLOCAL%g
+s%@AUTOCONF@%$AUTOCONF%g
+s%@AUTOMAKE@%$AUTOMAKE%g
+s%@AUTOHEADER@%$AUTOHEADER%g
+s%@MAKEINFO@%$MAKEINFO%g
+s%@SET_MAKE@%$SET_MAKE%g
+s%@CC@%$CC%g
+s%@AS@%$AS%g
+s%@AR@%$AR%g
+s%@RANLIB@%$RANLIB%g
+s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g
+s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g
+s%@MAINT@%$MAINT%g
+s%@EXEEXT@%$EXEEXT%g
+s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g
+s%@ELIX_LEVEL_0_TRUE@%$ELIX_LEVEL_0_TRUE%g
+s%@ELIX_LEVEL_0_FALSE@%$ELIX_LEVEL_0_FALSE%g
+s%@ELIX_LEVEL_1_TRUE@%$ELIX_LEVEL_1_TRUE%g
+s%@ELIX_LEVEL_1_FALSE@%$ELIX_LEVEL_1_FALSE%g
+s%@ELIX_LEVEL_2_TRUE@%$ELIX_LEVEL_2_TRUE%g
+s%@ELIX_LEVEL_2_FALSE@%$ELIX_LEVEL_2_FALSE%g
+s%@ELIX_LEVEL_3_TRUE@%$ELIX_LEVEL_3_TRUE%g
+s%@ELIX_LEVEL_3_FALSE@%$ELIX_LEVEL_3_FALSE%g
+s%@ELIX_LEVEL_4_TRUE@%$ELIX_LEVEL_4_TRUE%g
+s%@ELIX_LEVEL_4_FALSE@%$ELIX_LEVEL_4_FALSE%g
+s%@USE_LIBTOOL_TRUE@%$USE_LIBTOOL_TRUE%g
+s%@USE_LIBTOOL_FALSE@%$USE_LIBTOOL_FALSE%g
+s%@OBJEXT@%$OBJEXT%g
+s%@oext@%$oext%g
+s%@aext@%$aext%g
+s%@libm_machine_dir@%$libm_machine_dir%g
+s%@machine_dir@%$machine_dir%g
+s%@sys_dir@%$sys_dir%g
+
+CEOF
+EOF
+
+cat &gt;&gt; $CONFIG_STATUS &lt;&lt;\EOF
+
+# Split the substitutions into bite-sized pieces for seds with
+# small command number limits, like on Digital OSF/1 and HP-UX.
+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ac_file=1 # Number of current file.
+ac_beg=1 # First line for current file.
+ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ac_more_lines=:
+ac_sed_cmds=""
+while $ac_more_lines; do
+  if test $ac_beg -gt 1; then
+    sed "1,${ac_beg}d; ${ac_end}q" conftest.subs &gt; conftest.s$ac_file
+  else
+    sed "${ac_end}q" conftest.subs &gt; conftest.s$ac_file
+  fi
+  if test ! -s conftest.s$ac_file; then
+    ac_more_lines=false
+    rm -f conftest.s$ac_file
+  else
+    if test -z "$ac_sed_cmds"; then
+      ac_sed_cmds="sed -f conftest.s$ac_file"
+    else
+      ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+    fi
+    ac_file=`expr $ac_file + 1`
+    ac_beg=$ac_end
+    ac_end=`expr $ac_end + $ac_max_sed_cmds`
+  fi
+done
+if test -z "$ac_sed_cmds"; then
+  ac_sed_cmds=cat
+fi
+EOF
+
+cat &gt;&gt; $CONFIG_STATUS &lt;&lt;EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
+EOF
+cat &gt;&gt; $CONFIG_STATUS &lt;&lt;\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+  # Remove last slash and all that follows it.  Not all systems have dirname.
+  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+  if test "$ac_dir" != "$ac_file" &amp;&amp; test "$ac_dir" != .; then
+    # The file is in a subdirectory.
+    test ! -d "$ac_dir" &amp;&amp; mkdir "$ac_dir"
+    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+    # A "../" for each directory in $ac_dir_suffix.
+    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+  else
+    ac_dir_suffix= ac_dots=
+  fi
+
+  case "$ac_given_srcdir" in
+  .)  srcdir=.
+      if test -z "$ac_dots"; then top_srcdir=.
+      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+  *) # Relative path.
+    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+    top_srcdir="$ac_dots$ac_given_srcdir" ;;
+  esac
+
+  case "$ac_given_INSTALL" in
+  [/$]*) INSTALL="$ac_given_INSTALL" ;;
+  *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+  esac
+
+  echo creating "$ac_file"
+  rm -f "$ac_file"
+  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+  case "$ac_file" in
+  *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+  *) ac_comsub= ;;
+  esac
+
+  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+  sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
+" $ac_file_inputs | (eval "$ac_sed_cmds") &gt; $ac_file
+fi; done
+rm -f conftest.s*
+
+EOF
+cat &gt;&gt; $CONFIG_STATUS &lt;&lt;EOF
+
+EOF
+cat &gt;&gt; $CONFIG_STATUS &lt;&lt;\EOF
+
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
--- newlib-1.13.0/newlib/libc/sys/psp/configure.in	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/configure.in	2006-05-13 20:29:25.000000000 +0000
@@ -0,0 +1,12 @@
+dnl This is the newlib/libc/sys/psp configure.in file.
+dnl Process this file with autoconf to produce a configure script.
+
+AC_PREREQ(2.5)
+AC_INIT(libcglue.c)
+
+dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. 
+AC_CONFIG_AUX_DIR(../../../..)
+
+NEWLIB_CONFIGURE(../../..)
+
+AC_OUTPUT(Makefile)
--- newlib-1.13.0/newlib/libc/sys/psp/crt0.c	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/crt0.c	2006-05-13 20:29:25.000000000 +0000
@@ -0,0 +1,3 @@
+/* The real crt0.c lives in PSPSDK. */
+
+void _start() { }
--- newlib-1.13.0/newlib/libc/sys/psp/fdman.c	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/fdman.c	2006-05-13 20:29:25.000000000 +0000
@@ -0,0 +1,115 @@
+/*
+ * PSP Software Development Kit - http://www.pspdev.org
+ * -----------------------------------------------------------------------
+ * Licensed under the BSD license, see LICENSE in PSPSDK root for details.
+ *
+ * fdman.c - File descriptor management.
+ *
+ * Copyright (c) 2006 Rafael Cabezas &lt;rafpsp@gmail.com&gt;
+ */
+#include &lt;psptypes.h&gt;
+#include &lt;errno.h&gt;
+#include "fdman.h"
+
+extern int  pspDisableInterrupts();
+extern void pspEnableInterrupts(int); 
+
+static __psp_descriptormap_type  __psp_descriptor_data_pool[__PSP_FILENO_MAX];
+__psp_descriptormap_type        *__psp_descriptormap       [__PSP_FILENO_MAX];
+
+void __psp_fdman_init()
+{
+	int scefd;
+
+	/* Initialize descriptor data*/
+	memset(__psp_descriptor_data_pool, 0, sizeof(__psp_descriptormap_type) *__PSP_FILENO_MAX);
+	/* Initialize descriptor map*/
+	memset(__psp_descriptormap,        0, sizeof(__psp_descriptormap_type*)*__PSP_FILENO_MAX);
+
+	scefd = sceKernelStdin();
+	if ((scefd &gt;= 0) &amp;&amp; (scefd &lt; __PSP_FILENO_MAX)) {
+		__psp_descriptormap[0] = &amp;__psp_descriptor_data_pool[0];
+		__psp_descriptormap[0]-&gt;sce_descriptor = scefd;
+		__psp_descriptormap[0]-&gt;type = __PSP_DESCRIPTOR_TYPE_TTY;
+	}
+	scefd = sceKernelStdout();
+	if ((scefd &gt;= 0) &amp;&amp; (scefd &lt; __PSP_FILENO_MAX)) {
+		__psp_descriptormap[1] = &amp;__psp_descriptor_data_pool[1];
+		__psp_descriptormap[1]-&gt;sce_descriptor = scefd;
+		__psp_descriptormap[1]-&gt;type = __PSP_DESCRIPTOR_TYPE_TTY;
+	}
+	scefd = sceKernelStderr();
+	if ((scefd &gt;= 0) &amp;&amp; (scefd &lt; __PSP_FILENO_MAX)) {
+		__psp_descriptormap[2] = &amp;__psp_descriptor_data_pool[2];
+		__psp_descriptormap[2]-&gt;sce_descriptor = scefd;
+		__psp_descriptormap[2]-&gt;type = __PSP_DESCRIPTOR_TYPE_TTY;
+	}
+}
+
+int __psp_fdman_get_new_descriptor()
+{
+	int i = 0;
+	int inten;
+
+	inten = pspDisableInterrupts(); /* lock here to make thread safe */
+	for (i = 0; i &lt; __PSP_FILENO_MAX; i++) {
+		if (__psp_descriptormap[i] == NULL) {
+			__psp_descriptormap[i] = &amp;__psp_descriptor_data_pool[i];
+			__psp_descriptormap[i]-&gt;ref_count++;
+			pspEnableInterrupts(inten); /* release lock */
+			return i;
+		}
+	}
+	pspEnableInterrupts(inten); /* release lock */
+		
+	errno = ENOMEM;
+	return -1;
+}
+
+int __psp_fdman_get_dup_descriptor(int fd)
+{
+	int i = 0;
+	int inten;
+	
+	if (!__PSP_IS_FD_VALID(fd)) {
+		errno = EBADF;
+		return -1;
+	}
+
+	inten = pspDisableInterrupts(); /* lock here to make thread safe */
+	for (i = 0; i &lt; __PSP_FILENO_MAX; i++) {
+		if (__psp_descriptormap[i] == NULL) {
+			__psp_descriptormap[i] = &amp;__psp_descriptor_data_pool[fd];
+			__psp_descriptormap[i]-&gt;ref_count++;
+			pspEnableInterrupts(inten); /* release lock */
+			return i;
+		}
+	}
+	pspEnableInterrupts(inten); /* release lock */
+	
+	errno = ENOMEM;
+	return -1;
+}
+
+void __psp_fdman_release_descriptor(int fd)
+{
+	if (!__PSP_IS_FD_VALID(fd)) {
+		errno = EBADF;
+		return;
+	}
+
+	__psp_descriptormap[fd]-&gt;ref_count--;
+	
+	if (__psp_descriptormap[fd]-&gt;ref_count == 0) {
+		
+		if (__psp_descriptormap[fd]-&gt;filename != NULL) {
+			free(__psp_descriptormap[fd]-&gt;filename);
+		}
+		__psp_descriptormap[fd]-&gt;filename       = NULL;
+		__psp_descriptormap[fd]-&gt;sce_descriptor = 0;
+		__psp_descriptormap[fd]-&gt;type           = 0;
+		__psp_descriptormap[fd]-&gt;flags          = 0;
+		
+	}
+	__psp_descriptormap[fd] = NULL;
+}
--- newlib-1.13.0/newlib/libc/sys/psp/fdman.h	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/fdman.h	2006-05-13 20:29:26.000000000 +0000
@@ -0,0 +1,44 @@
+/*
+ * PSP Software Development Kit - http://www.pspdev.org
+ * -----------------------------------------------------------------------
+ * Licensed under the BSD license, see LICENSE in PSPSDK root for details.
+ *
+ * fdman.h - File descriptor management.
+ *
+ * Copyright (c) 2006 Rafael Cabezas &lt;rafpsp@gmail.com&gt;
+ */
+
+#ifndef _FDMAN_H_
+	#define _FDMAN_H_
+	
+	#define __PSP_FILENO_MAX 1024
+
+	#define __PSP_IS_FD_VALID(FD) \
+			( (FD &gt;= 0) &amp;&amp; (FD &lt; __PSP_FILENO_MAX) &amp;&amp; (__psp_descriptormap[FD] != NULL) )
+
+	#define __PSP_IS_FD_OF_TYPE(FD, TYPE) \
+			( (__PSP_IS_FD_VALID(FD)) &amp;&amp; (__psp_descriptormap[FD]-&gt;type == TYPE) )
+			
+	typedef enum {
+		__PSP_DESCRIPTOR_TYPE_FILE  ,
+		__PSP_DESCRIPTOR_TYPE_PIPE ,
+		__PSP_DESCRIPTOR_TYPE_SOCKET,
+		__PSP_DESCRIPTOR_TYPE_TTY
+	} __psp_fdman_fd_types;
+	
+	typedef struct {
+		char * filename;
+		u8     type;
+		u32    sce_descriptor;
+		u32    flags;
+		u32    ref_count;
+	} __psp_descriptormap_type;
+	 
+	extern __psp_descriptormap_type *__psp_descriptormap[__PSP_FILENO_MAX];
+	
+	void __psp_fdman_init();
+	int  __psp_fdman_get_new_descriptor();
+	int  __psp_fdman_get_dup_descriptor(int fd);
+	void __psp_fdman_release_descriptor(int fd);
+
+#endif
--- newlib-1.13.0/newlib/libc/sys/psp/include/netdb.h	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/include/netdb.h	2006-05-13 20:29:22.000000000 +0000
@@ -0,0 +1,36 @@
+/* Simple gethostbyname and gethostbyaddr replacements, note not thread safe */
+#ifndef __NETDB_H__
+#define __NETDB_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define	NETDB_INTERNAL	-1	/* see errno */
+#define	NETDB_SUCCESS	0	/* no problem */
+#define	HOST_NOT_FOUND	1 /* Authoritative Answer Host not found */
+#define	TRY_AGAIN	2 /* Non-Authoritative Host not found, or SERVERFAIL */
+#define	NO_RECOVERY	3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */
+#define	NO_DATA		4 /* Valid name, no data record of requested type */
+#define	NO_ADDRESS	NO_DATA		/* no address, look for MX record */
+
+extern int h_errno;
+
+struct hostent
+{
+	char *h_name;
+	char **h_aliases;
+	int  h_addrtype;
+	int  h_length;
+	char **h_addr_list;
+	char *h_addr;
+};
+
+struct hostent *gethostbyaddr(const void *addr, int len, int type);
+struct hostent *gethostbyname(const char *name);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
--- newlib-1.13.0/newlib/libc/sys/psp/interrupt.S	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/interrupt.S	2006-05-13 20:29:25.000000000 +0000
@@ -0,0 +1,66 @@
+
+	.set noreorder
+	.set noat
+
+	.global pspDisableInterrupts
+	.ent    pspDisableInterrupts
+
+pspDisableInterrupts:
+	mfic	$v0, $0
+	mtic	$0, $0
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	jr		$ra
+	nop
+
+	.end pspDisableInterrupts
+
+	.global pspEnableInterrupts
+	.ent    pspEnableInterrupts
+
+pspEnableInterrupts:
+	mtic	$a0, $0
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	jr		$ra
+	nop
+
+	.end pspEnableInterrupts
--- newlib-1.13.0/newlib/libc/sys/psp/libcglue.c	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/libcglue.c	2006-05-11 20:55:00.000000000 +0000
@@ -0,0 +1,919 @@
+/*
+ * PSP Software Development Kit - http://www.pspdev.org
+ * -----------------------------------------------------------------------
+ * Licensed under the BSD license, see LICENSE in PSPSDK root for details.
+ *
+ * libcglue.c - Newlib-compatible system calls.
+ *
+ * Copyright (c) 2005 Marcus R. Brown &lt;mrbrown@ocgnet.org&gt;
+ * Copyright (c) 2005 James Forshaw &lt;tyranid@gmail.com&gt;
+ * Copyright (c) 2005 John Kelley &lt;ps2dev@kelley.ca&gt;
+ * Copyright (c) 2005 Jim Paris &lt;jim@jtan.com&gt;
+ * 
+ */
+#include &lt;errno.h&gt;
+#include &lt;malloc.h&gt;
+#include &lt;reent.h&gt;
+#include &lt;stdarg.h&gt;
+#include &lt;stdlib.h&gt;
+#include &lt;string.h&gt;
+#include &lt;time.h&gt;
+#include &lt;sys/fcntl.h&gt;
+#include &lt;sys/stat.h&gt;
+#include &lt;sys/time.h&gt;
+#include &lt;sys/times.h&gt;
+#include &lt;sys/types.h&gt;
+#include &lt;sys/unistd.h&gt;
+#include &lt;sys/dirent.h&gt;
+#include &lt;sys/socket.h&gt;
+
+#include &lt;psptypes.h&gt;
+#include &lt;pspiofilemgr.h&gt;
+#include &lt;pspmodulemgr.h&gt;
+#include &lt;pspsysmem.h&gt;
+#include &lt;pspthreadman.h&gt;
+#include &lt;psputils.h&gt;
+#include &lt;psputility.h&gt;
+#include &lt;pspstdio.h&gt;
+#include &lt;pspintrman.h&gt;
+#include "fdman.h"
+
+extern char __psp_cwd[MAXPATHLEN + 1];
+extern void __psp_init_cwd(char *argv_0);
+extern int __psp_path_absolute(const char *in, char *out, int len);
+extern int  pspDisableInterrupts();
+extern void pspEnableInterrupts(int); 
+
+/* The following functions are defined in socket.c.  They have weak linkage so
+   that the user doesn't have to link against the PSP network libraries if they
+   don't use the sockets API. */
+extern int __psp_socket_close(int s) __attribute__((weak));
+extern ssize_t __psp_socket_recv(int s, void *buf, size_t len, int flags) __attribute__((weak));
+extern ssize_t __psp_socket_send(int s, const void *buf, size_t len, int flags) __attribute__((weak));
+
+extern int pipe(int fildes[2]);
+extern int __psp_pipe_close(int filedes);
+extern int __psp_pipe_nonblocking_read(int fd, void *buf, size_t len);
+extern int __psp_pipe_read(int fd, void *buf, size_t len);
+extern int __psp_pipe_write(int fd, const void *buf, size_t size);
+extern int __psp_pipe_nonblocking_write(int fd, const void *buf, size_t len);
+
+int __psp_set_errno(int code);
+
+#ifdef F___psp_set_errno
+int __psp_set_errno(int code)
+{
+	if ((code &amp; 0x80010000) == 0x80010000) {
+		errno = code &amp; 0xFFFF;
+		return -1;
+	}
+	return code;
+}
+#endif
+
+#ifdef F_getcwd
+char *getcwd(char *buf, size_t size)
+{
+	if(!buf) {
+		errno = EINVAL;
+		return NULL;
+	}		
+
+	if(strlen(__psp_cwd) &gt;= size) {
+		errno = ERANGE;
+		return NULL;
+	}
+
+	strcpy(buf, __psp_cwd);
+	return buf;
+}
+#endif
+
+#ifdef F_chdir
+int chdir(const char *path)
+{
+	char dest[MAXPATHLEN + 1];
+	SceUID uid;
+
+	if(__psp_path_absolute(path, dest, MAXPATHLEN) &lt; 0) {
+		errno = ENAMETOOLONG;
+		return -1;
+	}
+
+	/* sceIoChdir doesn't give an indication of whether it worked,
+	   so test for existence by attempting to open the dir */
+	uid = sceIoDopen(dest);
+	if(uid &lt; 0) {
+		errno = ENOTDIR;
+		return -1;
+	}
+	sceIoDclose(uid);
+
+	sceIoChdir(dest);
+	strcpy(__psp_cwd, dest);
+	return 0;
+}
+#endif
+
+#ifdef F_mkdir
+int mkdir(const char *pathname, mode_t mode)
+{
+	char dest[MAXPATHLEN + 1];
+
+	if(__psp_path_absolute(pathname, dest, MAXPATHLEN) &lt; 0) {
+		errno = ENAMETOOLONG;
+		return -1;
+	}
+
+	return __psp_set_errno(sceIoMkdir(dest, mode));
+}
+#endif
+
+#ifdef F_rmdir
+int rmdir(const char *pathname)
+{
+	char dest[MAXPATHLEN + 1];
+
+	if(__psp_path_absolute(pathname, dest, MAXPATHLEN) &lt; 0) {
+		errno = ENAMETOOLONG;
+		return -1;
+	}
+
+	return __psp_set_errno(sceIoRmdir(dest));
+}
+#endif
+
+#ifdef F_realpath
+char *realpath(const char *path, char *resolved_path)
+{
+	if(!path || !resolved_path) {
+		errno = EINVAL;
+		return NULL;
+	}
+	if(__psp_path_absolute(path, resolved_path, MAXPATHLEN) &lt; 0) {
+		errno = ENAMETOOLONG;
+		return NULL;
+	}
+	if(access(resolved_path, F_OK) &lt; 0) {
+		errno = ENOENT;
+		return NULL;
+	}
+	return resolved_path;
+}
+#endif
+
+/* Wrappers of the standard open(), close(), read(), write(), unlink(), rename() and lseek() routines. */
+#ifdef F__open
+int _open(const char *name, int flags, int mode)
+{
+	int scefd, fd;
+	int sce_flags;
+	char dest[MAXPATHLEN + 1];
+
+	if(__psp_path_absolute(name, dest, MAXPATHLEN) &lt; 0) {
+		errno = ENAMETOOLONG;
+		return -1;
+	}
+
+	/* O_RDONLY starts at 0, where PSP_O_RDONLY starts at 1, so remap the read/write
+	   flags by adding 1. */
+	sce_flags = (flags &amp; O_ACCMODE) + 1;
+
+	/* Translate standard open flags into the flags understood by the PSP kernel. */
+	if (flags &amp; O_APPEND) {
+		sce_flags |= PSP_O_APPEND;
+	}
+	if (flags &amp; O_CREAT) {
+		sce_flags |= PSP_O_CREAT;
+	}
+	if (flags &amp; O_TRUNC) {
+		sce_flags |= PSP_O_TRUNC;
+	}
+	if (flags &amp; O_EXCL) {
+		sce_flags |= PSP_O_EXCL;
+	}
+	if (flags &amp; O_NONBLOCK) {
+		sce_flags |= PSP_O_NBLOCK;
+	}
+	
+	scefd = sceIoOpen(dest, sce_flags, mode);
+	if (scefd &gt;= 0) {
+		fd = __psp_fdman_get_new_descriptor();
+		if (fd != -1) {
+			__psp_descriptormap[fd]-&gt;sce_descriptor = scefd;
+			__psp_descriptormap[fd]-&gt;type     		= __PSP_DESCRIPTOR_TYPE_FILE;
+			__psp_descriptormap[fd]-&gt;flags    		= flags;
+			__psp_descriptormap[fd]-&gt;filename 		= strdup(dest);
+			return fd;
+		}
+		else {
+			sceIoClose(scefd);
+			errno = ENOMEM;
+			return -1;
+		}
+	} 
+	else {
+		return __psp_set_errno(scefd);
+	}
+	
+}
+#endif
+
+#ifdef F__close
+int _close(int fd)
+{
+	int ret = 0;
+
+	if (!__PSP_IS_FD_VALID(fd)) {
+		errno = EBADF;
+		return -1;
+	}
+
+	switch(__psp_descriptormap[fd]-&gt;type)
+	{
+		case __PSP_DESCRIPTOR_TYPE_FILE:
+		case __PSP_DESCRIPTOR_TYPE_TTY:
+			if (__psp_descriptormap[fd]-&gt;ref_count == 1) {
+				ret = __psp_set_errno(sceIoClose(__psp_descriptormap[fd]-&gt;sce_descriptor));
+			}
+			__psp_fdman_release_descriptor(fd);
+			return ret;
+			break;
+		case __PSP_DESCRIPTOR_TYPE_PIPE:
+			return __psp_pipe_close(fd);
+			break;
+		case __PSP_DESCRIPTOR_TYPE_SOCKET:
+			if (__psp_socket_close != NULL) {
+				ret = __psp_socket_close(fd);
+				return ret;
+			}
+			break;
+		default:
+			break;
+	}
+
+	errno = EBADF;
+	return -1;
+}
+#endif
+
+#ifdef F__read
+int _read(int fd, void *buf, size_t size)
+{
+	if (!__PSP_IS_FD_VALID(fd)) {
+		errno = EBADF;
+		return -1;
+	}
+
+	switch(__psp_descriptormap[fd]-&gt;type)
+	{
+		case __PSP_DESCRIPTOR_TYPE_FILE:
+		case __PSP_DESCRIPTOR_TYPE_TTY:
+			return __psp_set_errno(sceIoRead(__psp_descriptormap[fd]-&gt;sce_descriptor, buf, size));
+			break;
+		case __PSP_DESCRIPTOR_TYPE_PIPE:
+			if (__psp_descriptormap[fd]-&gt;flags &amp; O_NONBLOCK) {
+				return __psp_pipe_nonblocking_read(fd, buf, size);
+			}
+			else {
+				return __psp_pipe_read(fd, buf, size);
+			}
+			break;
+		case __PSP_DESCRIPTOR_TYPE_SOCKET:
+			if (__psp_socket_recv != NULL) {
+				return __psp_socket_recv(fd, buf, size, 0);
+			}
+			break;
+		default:
+			break;
+	}
+
+	errno = EBADF;
+	return -1;
+
+}
+#endif
+
+#ifdef F__write
+int _write(int fd, const void *buf, size_t size)
+{
+	if (!__PSP_IS_FD_VALID(fd)) {
+		errno = EBADF;
+		return -1;
+	}
+
+	switch(__psp_descriptormap[fd]-&gt;type)
+	{
+		case __PSP_DESCRIPTOR_TYPE_FILE:
+		case __PSP_DESCRIPTOR_TYPE_TTY:
+			return __psp_set_errno(sceIoWrite(__psp_descriptormap[fd]-&gt;sce_descriptor, buf, size));
+			break;
+		case __PSP_DESCRIPTOR_TYPE_PIPE:
+			if (__psp_descriptormap[fd]-&gt;flags &amp; O_NONBLOCK) {
+				return __psp_pipe_nonblocking_write(fd, buf, size);
+			}
+			else {
+				return __psp_pipe_write(fd, buf, size);
+			}
+			break;
+			break;
+		case __PSP_DESCRIPTOR_TYPE_SOCKET:
+			if (__psp_socket_send != NULL) {
+				return __psp_socket_send(fd, buf, size, 0);
+			}
+			break;
+		default:
+			break;
+	}
+
+	errno = EBADF;
+	return -1;
+}
+#endif
+
+#ifdef F__lseek
+off_t _lseek(int fd, off_t offset, int whence)
+{
+	if (!__PSP_IS_FD_VALID(fd)) {
+		errno = EBADF;
+		return -1;
+	}
+
+	switch(__psp_descriptormap[fd]-&gt;type)
+	{
+		case __PSP_DESCRIPTOR_TYPE_FILE:
+			/* We don't have to do anything with the whence argument because SEEK_* == PSP_SEEK_*. */
+			return (off_t) __psp_set_errno(sceIoLseek(__psp_descriptormap[fd]-&gt;sce_descriptor, offset, whence));
+			break;
+		case __PSP_DESCRIPTOR_TYPE_PIPE:
+			break;
+		case __PSP_DESCRIPTOR_TYPE_SOCKET:
+			break;
+		default:
+			break;
+	}
+
+	errno = EBADF;
+	return -1;
+
+}
+#endif
+
+#ifdef F__unlink
+int _unlink(const char *path)
+{
+	char dest[MAXPATHLEN + 1];
+
+	if(__psp_path_absolute(path, dest, MAXPATHLEN) &lt; 0) {
+		errno = ENAMETOOLONG;
+		return -1;
+	}
+
+	return __psp_set_errno(sceIoRemove(dest));
+}
+#endif
+
+#ifdef F__link
+int _link(const char *name1, const char *name2)
+{
+	errno = ENOSYS;
+	return -1; /* not supported */
+}
+#endif
+
+#ifdef F__rename
+int _rename(const char *old, const char *new)
+{
+	char oldname[MAXPATHLEN + 1];
+	char newname[MAXPATHLEN + 1];
+
+	if(__psp_path_absolute(old, oldname, MAXPATHLEN) &lt; 0) {
+		errno = ENAMETOOLONG;
+		return -1;
+	}
+	
+	if(__psp_path_absolute(new, newname, MAXPATHLEN) &lt; 0) {
+		errno = ENAMETOOLONG;
+		return -1;
+	}
+
+	return __psp_set_errno(sceIoRename(oldname, newname));
+}
+#endif
+
+#ifdef F_opendir
+DIR *opendir(const char *filename)
+{
+	char dest[MAXPATHLEN + 1];
+	DIR *dirp;
+	SceUID uid;
+
+	/* Normalize pathname so that opendir(".") works */
+	if(__psp_path_absolute(filename, dest, MAXPATHLEN) &lt; 0) {
+		errno = ENOENT;
+		return NULL;
+	}
+
+	dirp = (DIR *)malloc(sizeof(DIR));
+
+	uid = sceIoDopen(dest);
+
+	if (uid &lt; 0)
+	{
+		free(dirp);
+		(void) __psp_set_errno(uid);
+		return NULL;
+	}
+
+	dirp-&gt;uid = uid;
+
+	return dirp;
+}
+#endif
+
+#ifdef F_readdir
+struct dirent *readdir(DIR *dirp)
+{
+	int ret;
+
+	/* Zero the dirent, to avoid possible problems with sceIoDread */
+	memset(&amp;dirp-&gt;de, 0, sizeof(struct dirent));
+
+	ret = sceIoDread(dirp-&gt;uid, (SceIoDirent *)&amp;dirp-&gt;de);
+	if (ret == 0) {
+		/* EOF */
+		errno = 0;
+		return NULL;
+	}
+	if (ret &lt; 0) {
+		(void) __psp_set_errno(ret);
+		return NULL;
+	}
+
+	return &amp;dirp-&gt;de;
+}
+#endif
+
+#ifdef F_closedir
+int closedir(DIR *dirp)
+{
+	if (dirp != NULL)
+	{
+		int uid;
+		uid = dirp-&gt;uid;
+		free (dirp);
+		return __psp_set_errno(sceIoDclose(uid));
+	}
+	errno = EBADF;
+	return -1; 
+}
+#endif
+
+/* Time routines.  These wrap around the routines provided by the kernel. */
+#ifdef F__gettimeofday
+int _gettimeofday(struct timeval *tp, struct timezone *tzp)
+{
+	return __psp_set_errno(sceKernelLibcGettimeofday(tp, tzp));
+}
+
+#endif
+
+#if defined(F_clock)
+clock_t clock(void)
+{
+	return sceKernelLibcClock();
+}
+#endif
+
+#if defined(F_time)
+time_t time(time_t *t)
+{
+	return __psp_set_errno(sceKernelLibcTime(t));
+}
+#endif
+
+#if defined(F_sleep)
+unsigned int sleep(unsigned int secs) {
+	while(secs--) {	
+		sceKernelDelayThreadCB(1000000);
+	}
+	return 0;
+}
+#endif
+
+/* PSP-compatible sbrk(). */
+#if defined(F__sbrk) || defined(F_glue__sbrk)
+/* TODO: Currently our default heap is set to the maximum available block size
+   when sbrk() is first called.  Sony seems to always use a default of 64KB,
+   with the expectation that user programs will override the default size with
+   their own desired size.  The only reason I can think of them doing this is
+   to allow each PRX to have their own seperate heap.  I think that their
+   method is overkill for most user programs.
+
+   What I'd like to do instead is to use the default of 64KB for PRXes as Sony
+   does, but use the maximum available block size for executables.  This avoids
+   the requirement of specifying the heap size manually in user programs.
+   However, we currently don't have a clean way to distinguish PRXes and normal
+   executables, so this code needs to be revisited once we do come up with a
+   way. */
+#define DEFAULT_PRX_HEAP_SIZE_KB 64
+
+/* If defined it specifies the desired size of the heap, in KB. */
+extern unsigned int sce_newlib_heap_kb_size __attribute__((weak));
+extern int __pspsdk_is_prx __attribute__((weak));
+
+/* UID of the memory block that represents the heap. */
+static SceUID __psp_heap_blockid;
+
+void * _sbrk(ptrdiff_t incr)
+{
+	static void * heap_bottom = NULL;
+	static void * heap_top = NULL;
+	static void * heap_ptr = NULL;
+
+	/* Has our heap been initialized? */
+	if (heap_bottom == NULL) {
+		/* No, initialize the heap. */
+		SceSize heap_size;
+
+		if (&amp;sce_newlib_heap_kb_size != NULL) {
+			heap_size = sce_newlib_heap_kb_size * 1024;
+		} else {
+			if (&amp;__pspsdk_is_prx != NULL) {
+				heap_size = DEFAULT_PRX_HEAP_SIZE_KB * 1024;
+			} else {
+				heap_size = sceKernelMaxFreeMemSize();
+			}
+		}
+
+		__psp_heap_blockid = sceKernelAllocPartitionMemory(2, "block", PSP_SMEM_Low, heap_size, NULL);
+		if (__psp_heap_blockid &gt; 0) {
+			heap_bottom = sceKernelGetBlockHeadAddr(__psp_heap_blockid);
+			heap_ptr = heap_bottom;
+			heap_top = (unsigned char *) heap_bottom + heap_size;
+		}
+	}
+
+	void * heap_addr = (void *) -1;
+	void * next_heap_ptr = (void *) ((ptrdiff_t) heap_ptr + incr);
+	if ((heap_bottom != NULL) &amp;&amp; (next_heap_ptr &gt;= heap_bottom) &amp;&amp; (next_heap_ptr &lt; heap_top)) {
+		heap_addr = heap_ptr;
+		heap_ptr = next_heap_ptr;
+	}
+
+	return heap_addr;
+}
+
+/* Free the heap. */
+int __psp_free_heap(void)
+{
+	if (__psp_heap_blockid &gt; 0) {
+		return sceKernelFreePartitionMemory(__psp_heap_blockid);
+	}
+
+	return __psp_heap_blockid;
+}
+#endif
+
+/* Other POSIX routines that must be defined. */
+#ifdef F__fstat
+int _fstat(int fd, struct stat *sbuf)
+{
+	int ret;
+	SceOff oldpos;
+	if (!__PSP_IS_FD_VALID(fd)) {
+		errno = EBADF;
+		return -1;
+	}
+
+	switch(__psp_descriptormap[fd]-&gt;type)
+	{
+		case __PSP_DESCRIPTOR_TYPE_TTY:
+			memset(sbuf, '\0', sizeof(struct stat));
+			sbuf-&gt;st_mode = S_IFCHR;
+			return 0;
+			break;		
+		case __PSP_DESCRIPTOR_TYPE_FILE:
+			if (__psp_descriptormap[fd]-&gt;filename != NULL) {
+				ret = stat(__psp_descriptormap[fd]-&gt;filename, sbuf);
+				
+				/* Find true size of the open file */
+				oldpos = sceIoLseek(__psp_descriptormap[fd]-&gt;sce_descriptor, 0, SEEK_CUR);
+				if (oldpos != (off_t) -1) {
+					sbuf-&gt;st_size = (off_t) sceIoLseek(__psp_descriptormap[fd]-&gt;sce_descriptor, 0, SEEK_END);
+					sceIoLseek(__psp_descriptormap[fd]-&gt;sce_descriptor, oldpos, SEEK_SET);
+				}
+				return ret;
+			}
+			break;
+		case __PSP_DESCRIPTOR_TYPE_PIPE:
+		case __PSP_DESCRIPTOR_TYPE_SOCKET:
+		default:
+			break;
+	}
+
+	errno = EBADF;
+	return -1;
+}
+#endif
+
+#ifdef F_isatty
+int isatty(int fd)
+{
+	if (!__PSP_IS_FD_VALID(fd)) {
+		errno = EBADF;
+		return 0;
+	}
+
+	if (__psp_descriptormap[fd]-&gt;type == __PSP_DESCRIPTOR_TYPE_TTY) {
+		return 1;
+	}
+	else {
+		return 0;
+	}
+}
+#endif
+
+#ifdef F__stat
+static time_t psp_to_epoch_time(ScePspDateTime psp_time)
+{
+	struct tm conv_time;
+	conv_time.tm_year = psp_time.year;
+	conv_time.tm_mon = psp_time.month;
+	conv_time.tm_mday = psp_time.day;
+	conv_time.tm_hour = psp_time.hour;
+	conv_time.tm_min = psp_time.minute;
+	conv_time.tm_sec = psp_time.second;
+	conv_time.tm_isdst = -1;
+	return mktime(&amp;conv_time);
+}
+
+int _stat(const char *filename, struct stat *buf)
+{
+	SceIoStat psp_stat;
+	char dest[MAXPATHLEN + 1];
+	int ret;
+
+	if(__psp_path_absolute(filename, dest, MAXPATHLEN) &lt; 0) {
+		errno = ENAMETOOLONG;
+		return -1;
+	}
+
+	memset(buf, '\0', sizeof(struct stat));
+	ret = sceIoGetstat(dest, &amp;psp_stat);
+	if (ret &lt; 0) {
+		return __psp_set_errno(ret);
+	}
+	
+	buf-&gt;st_ctime = psp_to_epoch_time(psp_stat.st_ctime);
+	buf-&gt;st_atime = psp_to_epoch_time(psp_stat.st_atime);
+	buf-&gt;st_mtime = psp_to_epoch_time(psp_stat.st_mtime);
+
+	buf-&gt;st_mode = (psp_stat.st_mode &amp; 0xfff) |
+		       ((FIO_S_ISLNK(psp_stat.st_mode))?(S_IFLNK):(0)) |
+		       ((FIO_S_ISREG(psp_stat.st_mode))?(S_IFREG):(0)) |
+		       ((FIO_S_ISDIR(psp_stat.st_mode))?(S_IFDIR):(0));
+	buf-&gt;st_size = psp_stat.st_size;
+	return 0;
+}
+#endif
+
+/* from stat.h in ps2sdk, this function may be correct */
+#define FIO_CST_SIZE	0x0004
+
+#ifdef F_truncate
+int truncate(const char *filename, off_t length)
+{
+	SceIoStat psp_stat;
+	char dest[MAXPATHLEN + 1];
+
+	if(__psp_path_absolute(filename, dest, MAXPATHLEN) &lt; 0) {
+		errno = ENAMETOOLONG;
+		return -1;
+	}
+
+	psp_stat.st_size = length;
+	if(length &lt; 0)
+	{
+		errno = EINVAL;
+		return -1;
+	}
+	return __psp_set_errno(sceIoChstat(dest, &amp;psp_stat, FIO_CST_SIZE));
+}
+#endif
+
+/* Unsupported newlib system calls. */
+#ifdef F__fork
+pid_t fork(void)
+{
+	errno = ENOSYS;
+	return (pid_t) -1;
+}
+#endif
+
+#ifdef F__getpid
+pid_t _getpid(void)
+{
+	errno = ENOSYS;
+	return (pid_t) -1;
+}
+#endif
+
+#ifdef F__kill
+int _kill(int unused, int unused2)
+{
+	errno = ENOSYS;
+	return -1;
+}
+#endif
+
+#ifdef F__wait
+pid_t _wait(int *unused)
+{
+	errno = ENOSYS;
+	return (pid_t) -1;
+}
+#endif
+
+#ifdef F_access
+int access(const char *fn, int flags)
+{
+	struct stat s;
+	if (stat(fn, &amp;s))
+		return -1;
+	if (s.st_mode &amp; S_IFDIR)
+		return 0;
+	if (flags &amp; W_OK)
+	{
+		if (s.st_mode &amp; S_IWRITE)
+			return 0;
+		errno = EACCES;
+		return -1;
+	}
+	return 0;
+}
+#endif
+
+#ifdef F__fcntl
+int _fcntl(int fd, int cmd, ...)
+{
+	if (!__PSP_IS_FD_VALID(fd)) {
+		errno = EBADF;
+		return -1;
+	}
+
+	switch (cmd)
+	{
+		case F_DUPFD:
+		{
+			return __psp_fdman_get_dup_descriptor(fd);
+			break;
+		}
+		case F_GETFL:
+		{
+			return __psp_descriptormap[fd]-&gt;flags;
+			break;
+		}
+		case F_SETFL:
+		{
+			int newfl;
+			va_list args;
+	
+			va_start (args, cmd);         /* Initialize the argument list. */
+			newfl =  va_arg(args, int);
+			va_end (args);                /* Clean up. */
+
+			__psp_descriptormap[fd]-&gt;flags = newfl;
+
+			switch(__psp_descriptormap[fd]-&gt;type)
+			{
+				case __PSP_DESCRIPTOR_TYPE_FILE:
+					break;
+				case __PSP_DESCRIPTOR_TYPE_PIPE:
+					break;
+				case __PSP_DESCRIPTOR_TYPE_SOCKET:
+					if (newfl &amp; O_NONBLOCK)
+					{
+						int one = 1;
+						return setsockopt(fd, SOL_SOCKET, SO_NONBLOCK, (char *)&amp;one, sizeof(one));
+					}
+					else
+					{
+						int zero = 0;
+						return setsockopt(fd, SOL_SOCKET, SO_NONBLOCK, (char *)&amp;zero, sizeof(zero));
+					}
+					break;
+				default:
+					break;
+			}
+			return 0;
+			break;
+		}
+	}
+
+	errno = EBADF;
+	return -1;
+}
+#endif /* F__fcntl */
+
+#ifdef F_tzset
+void tzset(void)
+{
+	static int initialized = 0;
+
+	if (!initialized)
+	{
+		initialized = 1;
+
+		/* Don't init if TZ has already been set once, this probably means the user
+		   wanted to override what we would set below. */
+		if (getenv("TZ") == NULL)
+		{
+			/* Initialize timezone from PSP configuration */
+			int tzOffset = 0;
+			sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_TIMEZONE, &amp;tzOffset);
+			int tzOffsetAbs = tzOffset &lt; 0 ? -tzOffset : tzOffset;
+			int hours = tzOffsetAbs / 60;
+			int minutes = tzOffsetAbs - hours * 60;
+			int pspDaylight = 0;
+			sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_DAYLIGHTSAVINGS, &amp;pspDaylight);
+			static char tz[18];
+			sprintf(tz, "GMT%s%02i:%02i%s", tzOffset &lt; 0 ? "+" : "-", hours, minutes, pspDaylight ? "daylight" : "");
+			setenv("TZ", tz, 1);
+		}
+	}
+
+	_tzset_r(_REENT);
+}
+#endif
+
+#ifdef F_mlock
+static unsigned int lock_count = 0;
+static unsigned int intr_flags = 0;
+
+void __malloc_lock(struct _reent *ptr)
+{
+	unsigned int flags = pspDisableInterrupts();
+
+	if (lock_count == 0) {
+		intr_flags = flags;
+	}
+
+	lock_count++;
+}
+
+void __malloc_unlock(struct _reent *ptr)
+{
+	if (--lock_count == 0) {
+		pspEnableInterrupts(intr_flags);
+	}
+}
+#endif
+
+/* Exit. */
+#if defined(F__exit) || defined(F_glue__exit)
+extern int sce_newlib_nocreate_thread_in_start __attribute__((weak));
+
+extern int __psp_free_heap(void);
+
+void _exit(int status)
+{
+	if (&amp;sce_newlib_nocreate_thread_in_start == NULL) {
+		/* Free the heap created by _sbrk(). */
+		__psp_free_heap();
+
+		sceKernelSelfStopUnloadModule(1, 0, NULL);
+	} else {
+		if (status == 0) {
+			/* Free the heap created by _sbrk(). */
+			__psp_free_heap();
+		}
+
+		sceKernelExitThread(status);
+	}
+
+	while (1) ;
+}
+
+/* Note: This function is being linked into _exit.o.  
+
+   Because __psp_libc_init is a weak import in crt0.c, the linker
+   chooses to ignore an object file in libc.a that contains just this
+   function, since it's not necessary for successful compilation.
+
+   By putting it instead in _exit.o, which is already used by crt0.c,
+   the linker sees __psp_libc_init and resolves the symbol properly.
+*/
+void __psp_libc_init(int argc, char *argv[])
+{
+	(void) argc;
+
+	/* Initialize cwd from this program's path */
+	__psp_init_cwd(argv[0]);
+
+	/* Initialize filedescriptor management */
+	__psp_fdman_init();
+}
+
+#endif /* F__exit */
+
--- newlib-1.13.0/newlib/libc/sys/psp/netdb.c	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/netdb.c	2006-05-13 20:29:26.000000000 +0000
@@ -0,0 +1,101 @@
+/* Simple gethostbyname and gethostbyaddr replacements using the resolver lib */
+#include &lt;stdio.h&gt;
+#include &lt;netdb.h&gt;
+#include &lt;netinet/in.h&gt;
+#include &lt;arpa/inet.h&gt;
+#include &lt;sys/socket.h&gt;
+#include &lt;pspkerneltypes.h&gt;
+#include &lt;pspnet_resolver.h&gt;
+
+#define MAX_NAME 512
+
+#ifdef F_h_errno
+int h_errno = NETDB_SUCCESS;
+#endif
+
+#ifdef F_gethostbyaddr
+struct hostent *gethostbyaddr(const void *addr, int len, int type)
+{
+	static struct hostent ent;
+	char buf[1024];
+	static char sname[MAX_NAME] = "";
+	static struct in_addr saddr = { 0 };
+	static char *addrlist[2] = { (char *) &amp;saddr, NULL };
+	int rid;
+	int err;
+
+	if((len != sizeof(struct in_addr)) || (type != AF_INET) || (addr == NULL))
+	{
+		h_errno = HOST_NOT_FOUND;
+		return NULL;
+	}
+
+	memcpy(&amp;saddr, addr, len);
+
+	if(sceNetResolverCreate(&amp;rid, buf, sizeof(buf)) &lt; 0)
+	{
+		h_errno = NO_RECOVERY;
+		return NULL;
+	}
+
+	err = sceNetResolverStartAtoN(rid, &amp;saddr, sname, sizeof(sname), 2, 3);
+	sceNetResolverDelete(rid);
+	if(err &lt; 0)
+	{
+		h_errno = HOST_NOT_FOUND;
+		return NULL;
+	}
+
+	ent.h_name = sname;
+	ent.h_aliases = 0;
+	ent.h_addrtype = AF_INET;
+	ent.h_length = sizeof(struct in_addr);
+	ent.h_addr_list = addrlist;
+	ent.h_addr = (char *) &amp;saddr;
+
+	return &amp;ent;
+}
+#endif
+
+#ifdef F_gethostbyname
+struct hostent *gethostbyname(const char *name)
+{
+	static struct hostent ent;
+	char buf[1024];
+	static char sname[MAX_NAME] = "";
+	static struct in_addr saddr = { 0 };
+	static char *addrlist[2] = { (char *) &amp;saddr, NULL };
+	int rid;
+
+	if(sceNetInetInetAton(name, &amp;saddr) == 0)
+	{
+		int err;
+
+		if(sceNetResolverCreate(&amp;rid, buf, sizeof(buf)) &lt; 0)
+		{
+			h_errno = NO_RECOVERY;
+			return NULL;
+		}
+
+		err = sceNetResolverStartNtoA(rid, name, &amp;saddr, 2, 3);
+		sceNetResolverDelete(rid);
+		if(err &lt; 0)
+		{
+			h_errno = HOST_NOT_FOUND;
+			return NULL;
+		}
+
+	}
+
+	snprintf(sname, MAX_NAME, "%s", name);
+	ent.h_name = sname;
+	ent.h_aliases = 0;
+	ent.h_addrtype = AF_INET;
+	ent.h_length = sizeof(struct in_addr);
+	ent.h_addr_list = addrlist;
+	ent.h_addr = (char *) &amp;saddr;
+
+	return &amp;ent;
+}
+
+#endif
--- newlib-1.13.0/newlib/libc/sys/psp/netinet/in.h	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/netinet/in.h	2006-05-13 20:29:23.000000000 +0000
@@ -0,0 +1,271 @@
+/*	$NetBSD: in.h,v 1.71 2005/08/05 09:21:25 elad Exp $	*/
+
+/*
+ * Copyright (c) 1982, 1986, 1990, 1993
+ *	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.
+ * 3. 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.
+ *
+ *	@(#)in.h	8.3 (Berkeley) 1/3/94
+ */
+
+/*
+ * Constants and structures defined by the internet system,
+ * Per RFC 790, September 1981, and numerous additions.
+ */
+
+#ifndef _NETINET_IN_H_
+#define	_NETINET_IN_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include &lt;sys/socket.h&gt;
+
+typedef uint32_t in_addr_t;
+typedef uint16_t	in_port_t;
+
+/*
+ * Protocols
+ */
+#define	IPPROTO_IP		0		/* dummy for IP */
+#define	IPPROTO_HOPOPTS		0		/* IP6 hop-by-hop options */
+#define	IPPROTO_ICMP		1		/* control message protocol */
+#define	IPPROTO_IGMP		2		/* group mgmt protocol */
+#define	IPPROTO_GGP		3		/* gateway^2 (deprecated) */
+#define	IPPROTO_IPV4		4 		/* IP header */
+#define	IPPROTO_IPIP		4		/* IP inside IP */
+#define	IPPROTO_TCP		6		/* tcp */
+#define	IPPROTO_EGP		8		/* exterior gateway protocol */
+#define	IPPROTO_PUP		12		/* pup */
+#define	IPPROTO_UDP		17		/* user datagram protocol */
+#define	IPPROTO_IDP		22		/* xns idp */
+#define	IPPROTO_TP		29 		/* tp-4 w/ class negotiation */
+#define	IPPROTO_IPV6		41		/* IP6 header */
+#define	IPPROTO_ROUTING		43		/* IP6 routing header */
+#define	IPPROTO_FRAGMENT	44		/* IP6 fragmentation header */
+#define	IPPROTO_RSVP		46		/* resource reservation */
+#define	IPPROTO_GRE		47		/* GRE encaps RFC 1701 */
+#define	IPPROTO_ESP		50 		/* encap. security payload */
+#define	IPPROTO_AH		51 		/* authentication header */
+#define	IPPROTO_MOBILE		55		/* IP Mobility RFC 2004 */
+#define	IPPROTO_IPV6_ICMP	58		/* IPv6 ICMP */
+#define	IPPROTO_ICMPV6		58		/* ICMP6 */
+#define	IPPROTO_NONE		59		/* IP6 no next header */
+#define	IPPROTO_DSTOPTS		60		/* IP6 destination option */
+#define	IPPROTO_EON		80		/* ISO cnlp */
+#define	IPPROTO_ETHERIP		97		/* Ethernet-in-IP */
+#define	IPPROTO_ENCAP		98		/* encapsulation header */
+#define	IPPROTO_PIM		103		/* Protocol indep. multicast */
+#define	IPPROTO_IPCOMP		108		/* IP Payload Comp. Protocol */
+#define	IPPROTO_VRRP		112		/* VRRP RFC 2338 */
+
+#define	IPPROTO_RAW		255		/* raw IP packet */
+#define	IPPROTO_MAX		256
+
+/* last return value of *_input(), meaning "all job for this pkt is done".  */
+#define	IPPROTO_DONE		257
+
+/* sysctl placeholder for (FAST_)IPSEC */
+#define CTL_IPPROTO_IPSEC	258
+
+
+/*
+ * Local port number conventions:
+ *
+ * Ports &lt; IPPORT_RESERVED are reserved for privileged processes (e.g. root),
+ * unless a kernel is compiled with IPNOPRIVPORTS defined.
+ *
+ * When a user does a bind(2) or connect(2) with a port number of zero,
+ * a non-conflicting local port address is chosen.
+ *
+ * The default range is IPPORT_ANONMIN to IPPORT_ANONMAX, although
+ * that is settable by sysctl(3); net.inet.ip.anonportmin and
+ * net.inet.ip.anonportmax respectively.
+ *
+ * A user may set the IPPROTO_IP option IP_PORTRANGE to change this
+ * default assignment range.
+ *
+ * The value IP_PORTRANGE_DEFAULT causes the default behavior.
+ *
+ * The value IP_PORTRANGE_HIGH is the same as IP_PORTRANGE_DEFAULT,
+ * and exists only for FreeBSD compatibility purposes.
+ *
+ * The value IP_PORTRANGE_LOW changes the range to the "low" are
+ * that is (by convention) restricted to privileged processes.
+ * This convention is based on "vouchsafe" principles only.
+ * It is only secure if you trust the remote host to restrict these ports.
+ * The range is IPPORT_RESERVEDMIN to IPPORT_RESERVEDMAX.
+ */
+
+#define	IPPORT_RESERVED		1024
+#define	IPPORT_ANONMIN		49152
+#define	IPPORT_ANONMAX		65535
+#define	IPPORT_RESERVEDMIN	600
+#define	IPPORT_RESERVEDMAX	(IPPORT_RESERVED-1)
+
+/*
+ * Internet address (a structure for historical reasons)
+ */
+struct in_addr {
+	in_addr_t s_addr;
+} __attribute__((__packed__));
+
+#define	__IPADDR(x)	((uint32_t)(x))
+
+#define	IN_CLASSA(i)		(((uint32_t)(i) &amp; __IPADDR(0x80000000)) == \
+				 __IPADDR(0x00000000))
+#define	IN_CLASSA_NET		__IPADDR(0xff000000)
+#define	IN_CLASSA_NSHIFT	24
+#define	IN_CLASSA_HOST		__IPADDR(0x00ffffff)
+#define	IN_CLASSA_MAX		128
+
+#define	IN_CLASSB(i)		(((uint32_t)(i) &amp; __IPADDR(0xc0000000)) == \
+				 __IPADDR(0x80000000))
+#define	IN_CLASSB_NET		__IPADDR(0xffff0000)
+#define	IN_CLASSB_NSHIFT	16
+#define	IN_CLASSB_HOST		__IPADDR(0x0000ffff)
+#define	IN_CLASSB_MAX		65536
+
+#define	IN_CLASSC(i)		(((uint32_t)(i) &amp; __IPADDR(0xe0000000)) == \
+				 __IPADDR(0xc0000000))
+#define	IN_CLASSC_NET		__IPADDR(0xffffff00)
+#define	IN_CLASSC_NSHIFT	8
+#define	IN_CLASSC_HOST		__IPADDR(0x000000ff)
+
+#define	IN_CLASSD(i)		(((uint32_t)(i) &amp; __IPADDR(0xf0000000)) == \
+				 __IPADDR(0xe0000000))
+/* These ones aren't really net and host fields, but routing needn't know. */
+#define	IN_CLASSD_NET		__IPADDR(0xf0000000)
+#define	IN_CLASSD_NSHIFT	28
+#define	IN_CLASSD_HOST		__IPADDR(0x0fffffff)
+#define	IN_MULTICAST(i)		IN_CLASSD(i)
+
+#define	IN_EXPERIMENTAL(i)	(((uint32_t)(i) &amp; __IPADDR(0xf0000000)) == \
+				 __IPADDR(0xf0000000))
+#define	IN_BADCLASS(i)		(((uint32_t)(i) &amp; __IPADDR(0xf0000000)) == \
+				 __IPADDR(0xf0000000))
+
+#define	IN_LOCAL_GROUP(i)	(((uint32_t)(i) &amp; __IPADDR(0xffffff00)) == \
+				 __IPADDR(0xe0000000))
+
+#define	INADDR_ANY		__IPADDR(0x00000000)
+#define	INADDR_LOOPBACK		__IPADDR(0x7f000001)
+#define	INADDR_BROADCAST	__IPADDR(0xffffffff)	/* must be masked */
+
+#define	INADDR_UNSPEC_GROUP	__IPADDR(0xe0000000)	/* 224.0.0.0 */
+#define	INADDR_ALLHOSTS_GROUP	__IPADDR(0xe0000001)	/* 224.0.0.1 */
+#define	INADDR_ALLRTRS_GROUP	__IPADDR(0xe0000002)	/* 224.0.0.2 */
+#define	INADDR_MAX_LOCAL_GROUP	__IPADDR(0xe00000ff)	/* 224.0.0.255 */
+
+#define	IN_LOOPBACKNET		127			/* official! */
+
+/*
+ * Socket address, internet style.
+ */
+struct sockaddr_in {
+	uint8_t		sin_len;
+	sa_family_t	sin_family;
+	in_port_t	sin_port;
+	struct in_addr	sin_addr;
+	int8_t	sin_zero[8];
+};
+
+#define	INET_ADDRSTRLEN                 16
+
+/*
+ * Structure used to describe IP options.
+ * Used to store options internally, to pass them to a process,
+ * or to restore options retrieved earlier.
+ * The ip_dst is used for the first-hop gateway when using a source route
+ * (this gets put into the header proper).
+ */
+struct ip_opts {
+	struct in_addr	ip_dst;		/* first hop, 0 w/o src rt */
+#if defined(__cplusplus)
+	int8_t	Ip_opts[40];	/* actually variable in size */
+#else
+	int8_t	ip_opts[40];	/* actually variable in size */
+#endif
+};
+
+/*
+ * Options for use with [gs]etsockopt at the IP level.
+ * First word of comment is data type; bool is stored in int.
+ */
+#define	IP_OPTIONS		1    /* buf/ip_opts; set/get IP options */
+#define	IP_HDRINCL		2    /* int; header is included with data */
+#define	IP_TOS			3    /* int; IP type of service and preced. */
+#define	IP_TTL			4    /* int; IP time to live */
+#define	IP_RECVOPTS		5    /* bool; receive all IP opts w/dgram */
+#define	IP_RECVRETOPTS		6    /* bool; receive IP opts for response */
+#define	IP_RECVDSTADDR		7    /* bool; receive IP dst addr w/dgram */
+#define	IP_RETOPTS		8    /* ip_opts; set/get IP options */
+#define	IP_MULTICAST_IF		9    /* in_addr; set/get IP multicast i/f  */
+#define	IP_MULTICAST_TTL	10   /* u_char; set/get IP multicast ttl */
+#define	IP_MULTICAST_LOOP	11   /* u_char; set/get IP multicast loopback */
+#define	IP_ADD_MEMBERSHIP	12   /* ip_mreq; add an IP group membership */
+#define	IP_DROP_MEMBERSHIP	13   /* ip_mreq; drop an IP group membership */
+#define	IP_PORTRANGE		19   /* int; range to use for ephemeral port */
+#define	IP_RECVIF		20   /* bool; receive reception if w/dgram */
+#define	IP_ERRORMTU		21   /* int; get MTU of last xmit = EMSGSIZE */
+#if 1 /*IPSEC*/
+#define	IP_IPSEC_POLICY		22 /* struct; get/set security policy */
+#endif
+
+/*
+ * Defaults and limits for options
+ */
+#define	IP_DEFAULT_MULTICAST_TTL  1	/* normally limit m'casts to 1 hop  */
+#define	IP_DEFAULT_MULTICAST_LOOP 1	/* normally hear sends if a member  */
+#define	IP_MAX_MEMBERSHIPS	20	/* per socket; must fit in one mbuf */
+
+/*
+ * Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
+ */
+struct ip_mreq {
+	struct	in_addr imr_multiaddr;	/* IP multicast address of group */
+	struct	in_addr imr_interface;	/* local IP address of interface */
+};
+
+/*
+ * Argument for IP_PORTRANGE:
+ * - which range to search when port is unspecified at bind() or connect()
+ */
+#define	IP_PORTRANGE_DEFAULT	0	/* default range */
+#define	IP_PORTRANGE_HIGH	1	/* same as DEFAULT (FreeBSD compat) */
+#define	IP_PORTRANGE_LOW	2	/* use privileged range */
+
+#define ntohs(x) __builtin_allegrex_wsbh(x)
+#define ntohl(x) __builtin_allegrex_wsbw(x)
+#define htons(x) __builtin_allegrex_wsbh(x)
+#define htonl(x) __builtin_allegrex_wsbw(x)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !_NETINET_IN_H_ */
--- newlib-1.13.0/newlib/libc/sys/psp/netinet/tcp.h	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/netinet/tcp.h	2006-05-13 20:29:23.000000000 +0000
@@ -0,0 +1,12 @@
+#ifndef __NETINET_TCP_H__
+#define __NETINET_TCP_H__
+
+#include &lt;netinet/in.h&gt;
+
+#define SOL_TCP    IPPROTO_TCP
+
+/* Socket options */
+#define	TCP_NODELAY	0x01	/* don't delay send to coalesce packets */
+#define	TCP_MAXSEG	0x02	/* set maximum segment size */
+
+#endif
--- newlib-1.13.0/newlib/libc/sys/psp/pipe.c	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/pipe.c	2006-05-13 20:29:26.000000000 +0000
@@ -0,0 +1,236 @@
+/*
+ * PSP Software Development Kit - http://www.pspdev.org
+ * -----------------------------------------------------------------------
+ * Licensed under the BSD license, see LICENSE in PSPSDK root for details.
+ *
+ * pipe.c - Socket wrappers to provide similar functions to normal unix
+ *
+ * Copyright (c) 2006 Rafael Cabezas &lt;rafpsp@gmail.com&gt;
+ * 
+ */
+#include &lt;stdio.h&gt;
+#include &lt;errno.h&gt;
+#include &lt;sys/syslimits.h&gt;
+#include &lt;sys/fd_set.h&gt;
+
+#include &lt;psptypes.h&gt;
+#include &lt;pspthreadman.h&gt;
+#include &lt;pspmodulemgr.h&gt;
+#include &lt;pspkerror.h&gt;
+#include "fdman.h"
+
+/* Pipe functions */
+/* Returns how many bytes are in the pipe -- waiting to be read */
+static size_t __psp_pipe_peekmsgsize(int fd)
+{
+	SceKernelMppInfo info;
+	info.size = sizeof(info);
+	
+	if (sceKernelReferMsgPipeStatus(__psp_descriptormap[fd]-&gt;sce_descriptor, &amp;info) == 0) {
+		return (info.bufSize - info.freeSize);
+	}
+	else {
+		return -1;
+	}
+}
+
+int pipe(int fildes[2])
+{
+	static int iIndex = 0;
+	char name[32];
+	iIndex++;
+
+	sprintf(name, "__psp_pipe_%02d", iIndex);
+
+	SceUID uid = sceKernelCreateMsgPipe(name, PSP_MEMORY_PARTITION_USER, 0, (void *)PIPE_BUF, NULL);
+
+	if (uid &gt;= 0) {
+		fildes[0] = __psp_fdman_get_new_descriptor();
+		if (fildes[0] != -1) {
+			__psp_descriptormap[fildes[0]]-&gt;sce_descriptor = uid;
+			__psp_descriptormap[fildes[0]]-&gt;type = __PSP_DESCRIPTOR_TYPE_PIPE;
+		} 
+		else {
+			sceKernelDeleteMsgPipe(uid);
+			errno = EFAULT;
+			return -1;
+		}
+		
+		fildes[1] = __psp_fdman_get_dup_descriptor(fildes[0]);
+		if (fildes[1] != -1) {
+			__psp_descriptormap[fildes[1]]-&gt;sce_descriptor = uid;
+			return 0;
+		} 
+		else {
+			sceKernelDeleteMsgPipe(uid);
+			errno = EFAULT;
+			return -1;
+		}
+		
+	}
+	else {
+		errno = EFAULT;
+		return -1;
+	}
+}
+
+int __psp_pipe_close(int fd)
+{
+	int ret = 0;
+
+	if ( __psp_descriptormap[fd]-&gt;ref_count == 1 ) {
+			/**
+			* Delete a message pipe
+			*
+			* @param uid - The UID of the pipe
+			*
+			* @return 0 on success, &lt; 0 on error
+			*/
+			ret = sceKernelDeleteMsgPipe(__psp_descriptormap[fd]-&gt;sce_descriptor);
+	}
+	
+	__psp_fdman_release_descriptor(fd);
+			
+	if(ret &lt; 0) {
+		return __psp_set_errno(ret);
+	}
+	
+	return 0;
+}
+
+int __psp_pipe_nonblocking_read(int fd, void *buf, size_t len)
+{
+	int ret;
+	int sceuid;
+	int size;
+	
+	sceuid = __psp_descriptormap[fd]-&gt;sce_descriptor;
+
+	size = __psp_pipe_peekmsgsize(fd);
+	if (size &gt; 0) {
+		if (size &lt; len) {
+			len = size;
+		}
+	}
+	else {
+		errno = EAGAIN;
+		return -1;
+	}
+ 
+	/**
+	* Receive a message from a pipe
+	*
+	* @param uid - The UID of the pipe
+	* @param message - Pointer to the message
+	* @param size - Size of the message
+	* @param unk1 - Unknown
+	* @param unk2 - Unknown
+	* @param timeout - Timeout for receive
+	*
+	* @return 0 on success, &lt; 0 on error
+	*/
+    ret = sceKernelTryReceiveMsgPipe(sceuid, buf, len, 0, 0);
+	
+	if (ret == 0) {/* Success - Data */
+		return len;
+	}
+	else if (ret == SCE_KERNEL_ERROR_MPP_EMPTY) {/* No data */
+		errno = EAGAIN;
+		return -1;
+	}
+	else {/* Error */
+		return __psp_set_errno(ret);
+	}
+}
+
+int __psp_pipe_read(int fd, void *buf, size_t len)
+{
+	int ret;
+	int sceuid;
+	int size;
+	
+	sceuid = __psp_descriptormap[fd]-&gt;sce_descriptor;
+
+	size = __psp_pipe_peekmsgsize(fd);
+	if (size &gt; 0) {
+		if (size &lt; len) {
+			len = size;
+		}
+	}
+
+	/**
+	* Receive a message from a pipe
+	*
+	* @param uid - The UID of the pipe
+	* @param message - Pointer to the message
+	* @param size - Size of the message
+	* @param unk1 - Unknown
+	* @param unk2 - Unknown
+	* @param timeout - Timeout for receive
+	*
+	* @return 0 on success, &lt; 0 on error
+	*/
+	ret = sceKernelReceiveMsgPipe(sceuid, buf, len, 0, NULL, NULL);
+	
+	if (ret == 0) {/* Success - Data */
+		return len;
+	}
+	else {/* Error */
+		return __psp_set_errno(ret);
+	}
+}
+
+int __psp_pipe_write(int fd, const void *buf, size_t len)
+{
+	int ret;
+	int sceuid;
+	char *cbuf;
+	
+	sceuid = __psp_descriptormap[fd]-&gt;sce_descriptor;
+
+	/**
+	* Send a message to a pipe
+	*
+	* @param uid - The UID of the pipe
+	* @param message - Pointer to the message
+	* @param size - Size of the message
+	* @param unk1 - Unknown
+	* @param unk2 - Unknown
+	* @param timeout - Timeout for send
+	*
+	* @return 0 on success, &lt; 0 on error
+	*/
+	cbuf = (char *)buf;
+	ret = sceKernelSendMsgPipe(sceuid, cbuf, len, 0, NULL, NULL);
+	
+	if (ret == 0) {/* Success - Data */
+		return len;
+	}
+	else {/* Error */
+		return __psp_set_errno(ret);
+	}
+}
+
+int __psp_pipe_nonblocking_write(int fd, const void *buf, size_t len)
+{
+	int ret;
+	int sceuid;
+	char *cbuf;
+	
+	sceuid = __psp_descriptormap[fd]-&gt;sce_descriptor;
+
+	cbuf = (char *)buf;
+	ret = sceKernelTrySendMsgPipe(sceuid, cbuf, len, 0, 0);
+	
+	if (ret == 0) {/* Success - Data */
+		return len;
+	}
+	else if (ret == SCE_KERNEL_ERROR_MPP_FULL) {
+		errno = EAGAIN;
+		return -1;
+	}
+	else {/* Error */
+		return __psp_set_errno(ret);
+	}
+}
+
--- newlib-1.13.0/newlib/libc/sys/psp/pspcwd.c	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/pspcwd.c	2006-05-13 20:29:25.000000000 +0000
@@ -0,0 +1,166 @@
+/*
+ * PSP Software Development Kit - http://www.pspdev.org
+ * -----------------------------------------------------------------------
+ * Licensed under the BSD license, see LICENSE in PSPSDK root for details.
+ *
+ * pspcwd.c - Current working directory emulation helper functions
+ *
+ * Copyright (c) 2005 Marcus R. Brown &lt;mrbrown@ocgnet.org&gt;
+ * Copyright (c) 2005 James Forshaw &lt;tyranid@gmail.com&gt;
+ * Copyright (c) 2005 John Kelley &lt;ps2dev@kelley.ca&gt;
+ * Copyright (c) 2005 Jim Paris &lt;jim@jtan.com&gt;
+ *
+ */
+#include &lt;string.h&gt;
+#include &lt;sys/types.h&gt;
+#include &lt;sys/unistd.h&gt;
+
+#include &lt;psptypes.h&gt;
+#include &lt;pspiofilemgr.h&gt;
+
+char __psp_cwd[MAXPATHLEN + 1] = { 0 };
+
+/* Set the current working directory (CWD) to the path where the module was launched. */
+void __psp_init_cwd(char *argv_0)
+{
+	if (argv_0 != NULL) {
+		char base_path[MAXPATHLEN + 1];
+		char *end;
+
+		strncpy(base_path, argv_0, sizeof(base_path) - 1);
+		base_path[sizeof(base_path) - 1] = '\0';
+		end = strrchr(base_path, '/');
+		if (end != NULL) {
+			*(end + 1) = '\0';
+			chdir(base_path);
+		}
+	}
+}
+
+/* Return the number of bytes taken up by the "drive:" prefix,
+   or -1 if it's not found */
+int __psp_get_drive(const char *d)
+{
+	int i;
+	for(i=0; d[i]; i++) {
+		if(! ((d[i] &gt;= 'a' &amp;&amp; d[i] &lt;= 'z') ||
+		      (d[i] &gt;= '0' &amp;&amp; d[i] &lt;= '9') ))
+			break;
+	}
+	if(d[i] == ':') return i+1;
+	return -1;
+}
+
+/* Like strcpy, but returns 0 if the string doesn't fit */
+int __psp_safe_strcpy(char *out, const char *in, int maxlen)
+{
+	for( ; maxlen &gt; 0 &amp;&amp; *in ; maxlen-- )
+		*(out++) = *(in++);
+	if(maxlen &lt; 1) return 0;
+	*out = 0;
+	return 1;
+}
+
+/* Like strcat, but returns 0 if the string doesn't fit */
+int __psp_safe_strcat(char *out, const char *in, int maxlen)
+{
+	for( ; *out ; out++,maxlen-- )
+		continue;
+	return __psp_safe_strcpy(out, in, maxlen);
+}
+
+/* Normalize a pathname (without leading "drive:") by removing
+   . and .. components, duplicated /, etc. */
+int __psp_path_normalize(char *out, int len)
+{
+	int i, j;
+	int first, next;
+
+	/* First append "/" to make the rest easier */
+	if(!__psp_safe_strcat(out,"/",len)) return -10;
+
+	/* Convert "//" to "/" */
+	for(i=0; out[i+1]; i++) {
+		if(out[i]=='/' &amp;&amp; out[i+1]=='/') {
+			for(j=i+1; out[j]; j++)
+				out[j] = out[j+1];
+			i--;
+		}
+	}
+
+	/* Convert "/./" to "/" */
+	for(i=0; out[i] &amp;&amp; out[i+1] &amp;&amp; out[i+2]; i++) {
+		if(out[i]=='/' &amp;&amp; out[i+1]=='.' &amp;&amp; out[i+2]=='/') {
+			for(j=i+1; out[j]; j++)
+				out[j] = out[j+2];
+			i--;
+		}
+	}
+
+	/* Convert "/asdf/../" to "/" until we can't anymore.  Also
+	 * convert leading "/../" to "/" */
+	first = next = 0;
+	while(1) {
+		/* If a "../" follows, remove it and the parent */
+		if(out[next+1] &amp;&amp; out[next+1]=='.' &amp;&amp; 
+		   out[next+2] &amp;&amp; out[next+2]=='.' &amp;&amp;
+		   out[next+3] &amp;&amp; out[next+3]=='/') {
+			for(j=0; out[first+j+1]; j++)
+				out[first+j+1] = out[next+j+4];
+			first = next = 0;
+			continue;
+		}
+
+		/* Find next slash */
+		first = next;
+		for(next=first+1; out[next] &amp;&amp; out[next] != '/'; next++)
+			continue;
+		if(!out[next]) break;
+	}
+
+	/* Remove trailing "/" */
+	for(i=1; out[i]; i++)
+		continue;
+	if(i &gt;= 1 &amp;&amp; out[i-1] == '/') 
+		out[i-1] = 0;
+
+	return 0;
+}
+
+/* Convert relative path to absolute path. */
+int __psp_path_absolute(const char *in, char *out, int len)
+{
+	int dr;
+
+	/* See what the relative URL starts with */
+	dr = __psp_get_drive(in);
+	if(dr &gt; 0 &amp;&amp; in[dr] == '/') {
+		/* It starts with "drive:/", so it's already absolute */
+		if(!__psp_safe_strcpy(out, in, len))
+			return -1;
+	} else if(in[0] == '/') {
+		/* It's absolute, but missing the drive, so use cwd's drive */
+		if(strlen(__psp_cwd) &gt;= len)
+			return -2;
+		strcpy(out, __psp_cwd);
+		dr = __psp_get_drive(out);
+		out[dr] = 0;
+		if(!__psp_safe_strcat(out, in, len))
+			return -3;
+	} else {
+		/* It's not absolute, so append it to the current cwd */
+		if(strlen(__psp_cwd) &gt;= len)
+			return -4;
+		strcpy(out, __psp_cwd);
+		if(!__psp_safe_strcat(out, "/", len)) 
+			return -6;
+		if(!__psp_safe_strcat(out, in, len)) 
+			return -7;
+	}
+
+	/* Now normalize the pathname portion */
+	dr = __psp_get_drive(out);
+	if(dr &lt; 0) dr = 0;
+	return __psp_path_normalize(out + dr, len - dr);
+}
+
--- newlib-1.13.0/newlib/libc/sys/psp/select.c	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/select.c	2006-05-13 20:29:25.000000000 +0000
@@ -0,0 +1,172 @@
+/*
+ * PSP Software Development Kit - http://www.pspdev.org
+ * -----------------------------------------------------------------------
+ * Licensed under the BSD license, see LICENSE in PSPSDK root for details.
+ *
+ * select.c - Socket wrappers to provide similar functions to normal unix
+ *
+ * Copyright (c) 2006 Rafael Cabezas &lt;rafpsp@gmail.com&gt;
+ * 
+ */
+#include &lt;fcntl.h&gt;
+#include &lt;errno.h&gt;
+#include &lt;sys/select.h&gt;
+#include &lt;psptypes.h&gt;
+#include &lt;pspthreadman.h&gt;
+
+#include "fdman.h"
+
+#define SELECT_POLLING_DELAY_IN_us	100
+
+static int __psp_poll_select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds);
+
+int	select(int n, fd_set *readfds, fd_set *writefds,
+		   fd_set *exceptfds, struct timeval *timeout)
+{
+	int count;
+	clock_t start_time, time;
+	
+	start_time = clock();
+
+	count = 0;
+	
+	if (timeout) {
+		time = (timeout-&gt;tv_sec * CLOCKS_PER_SEC) + (timeout-&gt;tv_usec * (1*1000*1000/CLOCKS_PER_SEC));
+	} 
+	else {
+		time = 0; 
+	}
+	
+	for (;;) {
+		count = __psp_poll_select(n, readfds, writefds, exceptfds);
+		/* If timeout == NULL, then don't timeout! */
+		if ( (count &gt; 0) || ((timeout != NULL) &amp;&amp; ((clock() - start_time) &gt;= time)) ) {
+			break;
+		}
+		else {
+			/* Nothing found, and not timed-out yet; let's yield for SELECT_POLLING_DELAY_IN_us, so we're not in a busy loop */
+			sceKernelDelayThread(SELECT_POLLING_DELAY_IN_us);
+		} 
+	}
+	
+	return count;
+}
+
+#define SCE_FD_SET(n, p) \
+	((p)-&gt;fds_bits[((n) &amp; 0xFF) /__NFDBITS] |= (1 &lt;&lt; ((n) % __NFDBITS)))
+
+static int __psp_poll_select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
+{
+	int fd, count;
+	fd_set ready_readfds, ready_writefds, ready_exceptfds;
+	fd_set scereadfds, scewritefds, sceexceptfds;
+	SceKernelMppInfo info;
+	struct timeval scetv;
+
+	FD_ZERO(&amp;ready_readfds);
+	FD_ZERO(&amp;ready_writefds);
+	FD_ZERO(&amp;ready_exceptfds);
+
+	info.size = sizeof(info);
+	scetv.tv_sec = 0;
+	scetv.tv_usec = 0;
+	count = 0;
+
+	for (fd = 0; fd &lt; n; fd++)
+	{
+		if (__psp_descriptormap[fd] != NULL) {
+			switch(__psp_descriptormap[fd]-&gt;type)
+			{
+				case __PSP_DESCRIPTOR_TYPE_PIPE:
+					if (readfds &amp;&amp; FD_ISSET(fd, readfds)) {
+						if (sceKernelReferMsgPipeStatus(__psp_descriptormap[fd]-&gt;sce_descriptor, &amp;info) == 0) {
+							if (info.bufSize != info.freeSize) {
+								FD_SET(fd, &amp;ready_readfds);
+								count++;
+							}
+						}
+						else {
+							FD_SET(fd, &amp;ready_exceptfds);
+							count++;
+						}
+					}
+					if (writefds &amp;&amp; FD_ISSET(fd, writefds)) {
+						if (sceKernelReferMsgPipeStatus(__psp_descriptormap[fd]-&gt;sce_descriptor, &amp;info) == 0) {
+							if (info.freeSize &gt; 0) {
+								FD_SET(fd, &amp;ready_writefds);
+								count++;
+							}
+						}
+						else {
+							FD_SET(fd, &amp;ready_exceptfds);
+							count++;
+						}
+					}
+					break;
+				case __PSP_DESCRIPTOR_TYPE_FILE:
+					if (readfds &amp;&amp; FD_ISSET(fd, readfds)) {
+						if (readfds &amp;&amp; FD_ISSET(fd, readfds)) {
+							/** Just set it for now */
+							FD_SET(fd, &amp;ready_readfds);
+							count++;
+						}
+					} 
+					break;
+				case __PSP_DESCRIPTOR_TYPE_SOCKET:
+					if (readfds &amp;&amp; FD_ISSET(fd, readfds)) {
+						int sce_ret, sce_fd;
+						sce_fd = __psp_descriptormap[fd]-&gt;sce_descriptor;
+						FD_ZERO(&amp;scereadfds);
+						SCE_FD_SET(sce_fd, &amp;scereadfds);
+						errno = 0;
+						sce_ret = sceNetInetSelect (sce_fd+1, &amp;scereadfds, NULL, NULL, &amp;scetv);
+						if (sce_ret&gt;0) {
+							FD_SET(fd, &amp;ready_readfds);
+							count++;
+						}
+						else if (sce_ret == -1) {
+							errno = sceNetInetGetErrno();
+							if (exceptfds &amp;&amp; FD_ISSET(fd, exceptfds)) {
+								FD_SET(fd, &amp;ready_exceptfds);
+								count++;
+							} else {
+								count = -1;
+							}
+						}
+					}
+					if (writefds &amp;&amp; FD_ISSET(fd, writefds)) {
+						int sce_ret;
+						FD_ZERO(&amp;scewritefds);
+						SCE_FD_SET(__psp_descriptormap[fd]-&gt;sce_descriptor, &amp;scewritefds);
+						sce_ret = sceNetInetSelect (__psp_descriptormap[fd]-&gt;sce_descriptor+1, NULL, &amp;scewritefds, NULL, &amp;scetv);
+						if (sce_ret&gt;0) {
+							FD_SET(fd, &amp;ready_writefds);
+							count++;
+						}
+						else if (sce_ret == -1) {
+							if (exceptfds &amp;&amp; FD_ISSET(fd, exceptfds)) {
+								FD_SET(fd, &amp;ready_exceptfds);
+								count++;
+							} 
+							else {
+								count = -1;
+							}
+						}
+					}
+					break;
+			}
+		}
+	}
+
+	if (count &gt; 0) {
+		if (readfds)
+			*readfds   = ready_readfds;
+		if (writefds)
+			*writefds  = ready_writefds;
+		if (exceptfds)
+			*exceptfds = ready_exceptfds;
+	}
+
+	return count;
+}
+
--- newlib-1.13.0/newlib/libc/sys/psp/socket.c	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/socket.c	2006-05-13 20:29:26.000000000 +0000
@@ -0,0 +1,390 @@
+/*
+ * PSP Software Development Kit - http://www.pspdev.org
+ * -----------------------------------------------------------------------
+ * Licensed under the BSD license, see LICENSE in PSPSDK root for details.
+ *
+ * socket.c - Socket wrappers to provide similar functions to normal unix
+ *
+ * Copyright (c) 2005 Marcus R. Brown &lt;mrbrown@ocgnet.org&gt;
+ * Copyright (c) 2005 James Forshaw &lt;tyranid@gmail.com&gt;
+ * 
+ */
+#include &lt;fcntl.h&gt;
+#include &lt;errno.h&gt;
+#include &lt;sys/socket.h&gt;
+#include &lt;sys/select.h&gt;
+#include &lt;netinet/in.h&gt;
+#include &lt;arpa/inet.h&gt;
+
+#include &lt;psptypes.h&gt;
+#include "fdman.h"
+
+#ifdef F_socket
+int	socket(int domain, int type, int protocol)
+{
+	int sock, scesock;
+	int i;
+
+	scesock = sceNetInetSocket(domain, type, protocol);
+	if(scesock &lt; 0)	{
+		errno = sceNetInetGetErrno();
+		return -1;
+	}
+
+	sock = __psp_fdman_get_new_descriptor();
+	if( sock != -1 )	{
+		__psp_descriptormap[sock]-&gt;sce_descriptor = scesock;
+		__psp_descriptormap[sock]-&gt;type = __PSP_DESCRIPTOR_TYPE_SOCKET;
+	}
+	else {
+		sceNetInetClose(scesock);
+		errno = ENOENT;
+		return -1;
+	}
+
+	return sock;
+}
+
+/* These are glue routines that are called from _close(), _read(), and
+   _write().  They are here so that any program that uses socket() will pull
+   them in and have expanded socket capability. */
+
+int __psp_socket_close(int sock)
+{
+	int ret = 0;
+
+	if (__psp_descriptormap[sock]-&gt;ref_count == 1) {
+		ret = sceNetInetClose(__psp_descriptormap[sock]-&gt;sce_descriptor);
+	}
+
+	__psp_fdman_release_descriptor(sock);
+
+	if(ret &lt; 0)
+	{
+		/* If close is defined likely errno is */
+		errno = sceNetInetGetErrno();
+		return -1;
+	}
+
+	return 0;
+}
+
+ssize_t __psp_socket_recv(int s, void *buf, size_t len, int flags)
+{
+	return recv(s, buf, len, flags);
+}
+
+ssize_t __psp_socket_send(int s, const void *buf, size_t len, int flags)
+{
+	return send(s, buf, len, flags);
+}
+#endif
+
+#ifdef F_accept
+int	accept(int s, struct sockaddr *addr, socklen_t *addrlen)
+{
+	int newscesock, newsock;
+
+	if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
+		errno = EBADF;
+		return -1;
+	}
+
+	newscesock = sceNetInetAccept(__psp_descriptormap[s]-&gt;sce_descriptor, addr, addrlen);
+	if( (newscesock &gt;= 0) ) {
+		newsock = __psp_fdman_get_new_descriptor();
+		if ( newsock != -1 ) {
+			__psp_descriptormap[newsock]-&gt;sce_descriptor = newscesock;
+			__psp_descriptormap[newsock]-&gt;type = __PSP_DESCRIPTOR_TYPE_SOCKET;
+		}
+		else {
+			sceNetInetClose(newscesock);
+			errno = ENOENT;
+			return -1;
+		}
+	}
+	else {
+		errno = ENOENT;
+		return -1;
+	}
+
+	return newsock;
+}
+#endif
+
+#ifdef F_bind
+int	bind(int s, const struct sockaddr *my_addr, socklen_t addrlen)
+{
+	int ret;
+	
+	if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
+		errno = EBADF;
+		return -1;
+	}
+
+	ret = sceNetInetBind(__psp_descriptormap[s]-&gt;sce_descriptor, my_addr, addrlen);
+	if(ret &lt; 0)
+	{
+		errno = sceNetInetGetErrno();
+		return -1;
+	}
+
+	return 0;
+}
+#endif
+
+#ifdef F_connect
+int	connect(int s, const struct sockaddr *serv_addr, socklen_t addrlen)
+{
+	int ret;
+
+	if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
+		errno = EBADF;
+		return -1;
+	}
+
+	ret = sceNetInetConnect(__psp_descriptormap[s]-&gt;sce_descriptor, serv_addr, addrlen);
+	if(ret &lt; 0)
+	{
+		errno = sceNetInetGetErrno();
+		return -1;
+	}
+	
+	return 0;
+}
+#endif
+
+#ifdef F_setsockopt
+int	getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen)
+{
+	int ret;
+
+	if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
+		errno = EBADF;
+		return -1;
+	}
+
+	ret = sceNetInetGetsockopt(__psp_descriptormap[s]-&gt;sce_descriptor, level, optname, optval, optlen);
+	if(ret &lt; 0)
+	{
+		errno = sceNetInetGetErrno();
+		return -1;
+	}
+	
+	return 0;
+}
+#endif
+
+#ifdef F_listen
+int	listen(int s, int backlog)
+{
+	int ret;
+
+	if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
+		errno = EBADF;
+		return -1;
+	}
+
+	ret = sceNetInetListen(__psp_descriptormap[s]-&gt;sce_descriptor, backlog);
+	if(ret &lt; 0)
+	{
+		errno = sceNetInetGetErrno();
+		return -1;
+	}
+
+	return 0;
+}
+#endif
+
+#ifdef F_recv
+ssize_t	recv(int s, void *buf, size_t len, int flags)
+{
+	int ret;
+
+	if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
+		errno = EBADF;
+		return -1;
+	}
+
+	ret = sceNetInetRecv(__psp_descriptormap[s]-&gt;sce_descriptor, buf, len, flags);
+	if(ret &lt; 0)
+	{
+		errno = sceNetInetGetErrno();
+		return -1;
+	}
+
+	return ret;
+}
+#endif
+
+#ifdef F_recvfrom
+ssize_t	recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen)
+{
+	int ret;
+
+	if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
+		errno = EBADF;
+		return -1;
+	}
+
+	ret = sceNetInetRecvfrom(__psp_descriptormap[s]-&gt;sce_descriptor, buf, len, flags, from, fromlen);
+	if(ret &lt; 0)
+	{
+		errno = sceNetInetGetErrno();
+		return -1;
+	}
+
+	return ret;
+}
+#endif
+
+#ifdef F_send
+ssize_t	send(int s, const void *buf, size_t len, int flags)
+{
+	int ret;
+
+	if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
+		errno = EBADF;
+		return -1;
+	}
+
+	ret = sceNetInetSend(__psp_descriptormap[s]-&gt;sce_descriptor, buf, len, flags);
+	if(ret &lt; 0)
+	{
+		errno = sceNetInetGetErrno();
+		return -1;
+	}
+
+	return ret;
+}
+#endif
+
+#ifdef F_sendto
+ssize_t	sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen)
+{
+	int ret;
+
+	if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
+		errno = EBADF;
+		return -1;
+	}
+
+	ret = sceNetInetSendto(__psp_descriptormap[s]-&gt;sce_descriptor, buf, len, flags, to, tolen);
+	if(ret &lt; 0)
+	{
+		errno = sceNetInetGetErrno();
+		return -1;
+	}
+
+	return ret;
+}
+#endif
+
+#ifdef F_setsockopt
+int	setsockopt(int s, int level, int optname, const void *optval, socklen_t optlen)
+{
+	int ret;
+
+	if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
+		errno = EBADF;
+		return -1;
+	}
+
+	ret = sceNetInetSetsockopt(__psp_descriptormap[s]-&gt;sce_descriptor, level, optname, optval, optlen);
+	if(ret &lt; 0)
+	{
+		errno = sceNetInetGetErrno();
+		return -1;
+	}
+	else
+	{
+		if ( (level == SOL_SOCKET) &amp;&amp; (optname == SO_NONBLOCK) ) {
+			if (*((int*)optval) == 1) {
+				__psp_descriptormap[s]-&gt;flags |= O_NONBLOCK;
+			}
+			else {
+				__psp_descriptormap[s]-&gt;flags &amp;= ~O_NONBLOCK;
+			}	
+		}
+	}
+
+	return 0;
+}
+#endif
+
+#ifdef F_shutdown
+int	shutdown(int s, int how)
+{
+	int ret;
+
+	if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
+		errno = EBADF;
+		return -1;
+	}
+
+	ret = sceNetInetShutdown(__psp_descriptormap[s]-&gt;sce_descriptor, how);
+	if(ret &lt; 0)
+	{
+		errno = sceNetInetGetErrno();
+		return -1;
+	}
+
+	return 0;
+}
+#endif
+
+#ifdef F_getpeername
+int	getpeername(int s, struct sockaddr *name, socklen_t *namelen)
+{
+	int ret;
+
+	if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
+		errno = EBADF;
+		return -1;
+	}
+
+	ret = sceNetInetGetpeername(__psp_descriptormap[s]-&gt;sce_descriptor, name, namelen);
+	if(ret &lt; 0)
+	{
+		errno = sceNetInetGetErrno();
+		return -1;
+	}
+
+	return 0;
+}
+#endif
+
+#ifdef F_getsockname
+int	getsockname(int s, struct sockaddr *name, socklen_t *namelen)
+{
+	int ret;
+
+	if (!__PSP_IS_FD_OF_TYPE(s, __PSP_DESCRIPTOR_TYPE_SOCKET)) {
+		errno = EBADF;
+		return -1;
+	}
+
+	ret = sceNetInetGetsockname(__psp_descriptormap[s]-&gt;sce_descriptor, name, namelen);
+	if(ret &lt; 0)
+	{
+		errno = sceNetInetGetErrno();
+		return -1;
+	}
+
+	return 0;
+}
+#endif
+
+#ifdef F_inet_ntoa
+char *inet_ntoa(struct in_addr in)
+{
+	static char ip_addr[INET_ADDRSTRLEN+1];
+
+	if(sceNetInetInetNtop(AF_INET, &amp;in, ip_addr, INET_ADDRSTRLEN) == NULL)
+	{
+		strcpy(ip_addr, "Invalid");
+	}
+
+	return ip_addr;
+}
+#endif
--- newlib-1.13.0/newlib/libc/sys/psp/sys/dirent.h	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/sys/dirent.h	2006-05-13 20:29:25.000000000 +0000
@@ -0,0 +1,39 @@
+#ifndef _SYS_DIRENT_H
+#define _SYS_DIRENT_H
+
+/* PSP dirent.h, based on pspiofilemgr_dirent.h
+   by Jim Paris &lt;jim@jtan.com&gt; */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+	
+#include &lt;pspiofilemgr_dirent.h&gt; 
+	
+#define MAXNAMLEN 255
+	
+/* Same as SceIoDirent, just with a different name. */
+struct dirent {
+	/** File status. */
+	SceIoStat 	d_stat;
+	/** File name. */
+	char 		d_name[256];
+	/** Device-specific data. */
+	void * 		d_private;
+	int 		dummy;
+};
+
+typedef struct {
+	SceUID		uid;
+	struct dirent	de;
+} DIR;
+
+DIR *opendir (const char *);
+struct dirent *readdir (DIR *);
+int closedir (DIR *);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
--- newlib-1.13.0/newlib/libc/sys/psp/sys/errno.h	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/sys/errno.h	2006-05-13 20:29:25.000000000 +0000
@@ -0,0 +1,158 @@
+/* errno.h for PSP, based on newlib/libc/include/sys/errno.h. */
+
+#ifndef _SYS_ERRNO_H_
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define _SYS_ERRNO_H_
+
+#include &lt;sys/reent.h&gt;
+
+#ifndef _REENT_ONLY
+#define errno (*__errno())
+extern int *__errno _PARAMS ((void));
+#endif
+
+/* Please don't use these variables directly.
+   Use strerror instead. */
+extern __IMPORT _CONST char * _CONST _sys_errlist[];
+extern __IMPORT int _sys_nerr;
+#ifdef __CYGWIN__
+extern __IMPORT const char * const sys_errlist[];
+extern __IMPORT int sys_nerr;
+#endif
+
+#define __errno_r(ptr) ((ptr)-&gt;_errno)
+
+#define	EPERM 1		/* Not super-user */
+#define	ENOENT 2	/* No such file or directory */
+#define	ESRCH 3		/* No such process */
+#define	EINTR 4		/* Interrupted system call */
+#define	EIO 5		/* I/O error */
+#define	ENXIO 6		/* No such device or address */
+#define	E2BIG 7		/* Arg list too long */
+#define	ENOEXEC 8	/* Exec format error */
+#define	EBADF 9		/* Bad file number */
+#define	ECHILD 10	/* No children */
+#define	EAGAIN 11	/* No more processes */
+#define	ENOMEM 12	/* Not enough core */
+#define	EACCES 13	/* Permission denied */
+#define	EFAULT 14	/* Bad address */
+#define	ENOTBLK 15	/* Block device required */
+#define	EBUSY 16	/* Mount device busy */
+#define	EEXIST 17	/* File exists */
+#define	EXDEV 18	/* Cross-device link */
+#define	ENODEV 19	/* No such device */
+#define	ENOTDIR 20	/* Not a directory */
+#define	EISDIR 21	/* Is a directory */
+#define	EINVAL 22	/* Invalid argument */
+#define	ENFILE 23	/* Too many open files in system */
+#define	EMFILE 24	/* Too many open files */
+#define	ENOTTY 25	/* Not a typewriter */
+#define	ETXTBSY 26	/* Text file busy */
+#define	EFBIG 27	/* File too large */
+#define	ENOSPC 28	/* No space left on device */
+#define	ESPIPE 29	/* Illegal seek */
+#define	EROFS 30	/* Read only file system */
+#define	EMLINK 31	/* Too many links */
+#define	EPIPE 32	/* Broken pipe */
+#define	EDOM 33		/* Math arg out of domain of func */
+#define	ERANGE 34	/* Math result not representable */
+#define	ENOMSG 35	/* No message of desired type */
+#define	EIDRM 36	/* Identifier removed */
+#define	ECHRNG 37	/* Channel number out of range */
+#define	EL2NSYNC 38	/* Level 2 not synchronized */
+#define	EL3HLT 39	/* Level 3 halted */
+#define	EL3RST 40	/* Level 3 reset */
+#define	ELNRNG 41	/* Link number out of range */
+#define	EUNATCH 42	/* Protocol driver not attached */
+#define	ENOCSI 43	/* No CSI structure available */
+#define	EL2HLT 44	/* Level 2 halted */
+#define	EDEADLK 45	/* Deadlock condition */
+#define	ENOLCK 46	/* No record locks available */
+#define EBADE 50	/* Invalid exchange */
+#define EBADR 51	/* Invalid request descriptor */
+#define EXFULL 52	/* Exchange full */
+#define ENOANO 53	/* No anode */
+#define EBADRQC 54	/* Invalid request code */
+#define EBADSLT 55	/* Invalid slot */
+#define EDEADLOCK 56	/* File locking deadlock error */
+#define EBFONT 57	/* Bad font file fmt */
+#define ENOSTR 60	/* Device not a stream */
+#define ENODATA 61	/* No data (for no delay io) */
+#define ETIME 62	/* Timer expired */
+#define ENOSR 63	/* Out of streams resources */
+#define ENONET 64	/* Machine is not on the network */
+#define ENOPKG 65	/* Package not installed */
+#define EREMOTE 66	/* The object is remote */
+#define ENOLINK 67	/* The link has been severed */
+#define EADV 68		/* Advertise error */
+#define ESRMNT 69	/* Srmount error */
+#define	ECOMM 70	/* Communication error on send */
+#define EPROTO 71	/* Protocol error */
+#define	EMULTIHOP 74	/* Multihop attempted */
+#define	ELBIN 75	/* Inode is remote (not really error) */
+#define	EDOTDOT 76	/* Cross mount point (not really error) */
+#define EBADMSG 77	/* Trying to read unreadable message */
+#define EFTYPE 79	/* Inappropriate file type or format */
+#define ENOTUNIQ 80	/* Given log. name not unique */
+#define EBADFD 81	/* f.d. invalid for this operation */
+#define EREMCHG 82	/* Remote address changed */
+#define ELIBACC 83	/* Can't access a needed shared lib */
+#define ELIBBAD 84	/* Accessing a corrupted shared lib */
+#define ELIBSCN 85	/* .lib section in a.out corrupted */
+#define ELIBMAX 86	/* Attempting to link in too many libs */
+#define ELIBEXEC 87	/* Attempting to exec a shared library */
+#define ENOSYS 88	/* Function not implemented */
+#define ENMFILE 89      /* No more files */
+#define ENOTEMPTY 90	/* Directory not empty */
+#define ENAMETOOLONG 91	/* File or path name too long */
+#define ELOOP 92	/* Too many symbolic links */
+#define EOPNOTSUPP 95	/* Operation not supported on transport endpoint */
+#define EPFNOSUPPORT 96 /* Protocol family not supported */
+#define ECONNRESET 104  /* Connection reset by peer */
+#define ENOBUFS 105	/* No buffer space available */
+#define EAFNOSUPPORT 106 /* Address family not supported by protocol family */
+#define EPROTOTYPE 107	/* Protocol wrong type for socket */
+#define ENOTSOCK 108	/* Socket operation on non-socket */
+#define ENOPROTOOPT 109	/* Protocol not available */
+#define ESHUTDOWN 110	/* Can't send after socket shutdown */
+#define ECONNREFUSED 111	/* Connection refused */
+#define EADDRINUSE 112		/* Address already in use */
+#define ECONNABORTED 113	/* Connection aborted */
+#define ENETUNREACH 114		/* Network is unreachable */
+#define ENETDOWN 115		/* Network interface is not configured */
+#define ETIMEDOUT 116		/* Connection timed out */
+#define EHOSTDOWN 117		/* Host is down */
+#define EHOSTUNREACH 118	/* Host is unreachable */
+#define EINPROGRESS 119		/* Connection already in progress */
+#define EALREADY 120		/* Socket already connected */
+#define EDESTADDRREQ 121	/* Destination address required */
+#define EMSGSIZE 122		/* Message too long */
+#define EPROTONOSUPPORT 123	/* Unknown protocol */
+#define ESOCKTNOSUPPORT 124	/* Socket type not supported */
+#define EADDRNOTAVAIL 125	/* Address not available */
+#define ENETRESET 126
+#define EISCONN 127		/* Socket is already connected */
+#define ENOTCONN 128		/* Socket is not connected */
+#define ETOOMANYREFS 129
+#define EPROCLIM 130
+#define EUSERS 131
+#define EDQUOT 132
+#define ESTALE 133
+#define ENOTSUP 134		/* Not supported */
+#define ENOMEDIUM 135   /* No medium (in tape drive) */
+#define ENOSHARE 136    /* No such host or network path */
+#define ECASECLASH 137  /* Filename exists with different case */
+#define EILSEQ 138
+#define EOVERFLOW 139	/* Value too large for defined data type */
+
+/* From cygwin32.  */
+#define EWOULDBLOCK EAGAIN	/* Operation would block */
+
+#define __ELASTERROR 2000	/* Users can add values starting here */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* _SYS_ERRNO_H */
--- newlib-1.13.0/newlib/libc/sys/psp/sys/fd_set.h	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/sys/fd_set.h	2006-05-13 20:29:25.000000000 +0000
@@ -0,0 +1,69 @@
+/*	$NetBSD: fd_set.h,v 1.1 2005/05/22 12:44:24 kleink Exp $	*/
+
+/*-
+ * Copyright (c) 1992, 1993
+ *	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.
+ * 3. 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.
+ *
+ *	from: @(#)types.h	8.4 (Berkeley) 1/21/94
+ */
+
+#ifndef _SYS_FD_SET_H_
+#define	_SYS_FD_SET_H_
+
+#include &lt;sys/socket.h&gt;
+#include &lt;stdint.h&gt;
+
+/*
+ * Implementation dependent defines, hidden from user space. X/Open does not
+ * specify them.
+ */
+#define	__NBBY		8		/* number of bits in a byte */
+typedef uint32_t	__fd_mask;
+
+/* bits per mask */
+#define __NFDBITS	((unsigned int)sizeof(__fd_mask) * __NBBY)
+
+#define	__howmany(x, y)	(((x) + ((y) - 1)) / (y))
+
+#define	FD_SETSIZE	256
+
+typedef	struct fd_set {
+	__fd_mask	fds_bits[__howmany(FD_SETSIZE, __NFDBITS)];
+} fd_set;
+
+#define	FD_SET(n, p)	\
+	((p)-&gt;fds_bits[(n) /__NFDBITS] |= (1 &lt;&lt; ((n) % __NFDBITS)))
+
+#define	FD_CLR(n, p)	\
+	((p)-&gt;fds_bits[(n) /__NFDBITS] &amp;= ~(1 &lt;&lt; ((n) % __NFDBITS)))
+
+#define	FD_ISSET(n, p)	\
+	((p)-&gt;fds_bits[(n) /__NFDBITS] &amp; (1 &lt;&lt; ((n) % __NFDBITS)))
+
+#define	FD_ZERO(p)	(void)__builtin_memset((p), 0, sizeof(*(p)))
+
+#endif /* _SYS_FD_SET_H_ */
--- newlib-1.13.0/newlib/libc/sys/psp/sys/ioctl.h	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/sys/ioctl.h	2006-05-13 20:29:24.000000000 +0000
@@ -0,0 +1 @@
+/* Empty file, here for compatibility */
--- newlib-1.13.0/newlib/libc/sys/psp/sys/select.h	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/sys/select.h	2006-05-13 20:29:24.000000000 +0000
@@ -0,0 +1,54 @@
+/*	$NetBSD: select.h,v 1.24 2005/05/22 12:44:24 kleink Exp $	*/
+
+/*-
+ * Copyright (c) 1992, 1993
+ *	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.
+ * 3. 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.
+ *
+ *	@(#)select.h	8.2 (Berkeley) 1/4/94
+ */
+
+#ifndef _SYS_SELECT_H_
+#define	_SYS_SELECT_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include &lt;sys/fd_set.h&gt;
+#include &lt;sys/time.h&gt;
+
+int	sceNetInetSelect(int n, fd_set *readfds, fd_set *writefds,
+	    fd_set *exceptfds, struct timeval *timeout);
+
+int	select(int n, fd_set *readfds, fd_set *writefds,
+	    fd_set *exceptfds, struct timeval *timeout);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !_SYS_SELECT_H_ */
--- newlib-1.13.0/newlib/libc/sys/psp/sys/socket.h	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/sys/socket.h	2006-05-13 20:29:25.000000000 +0000
@@ -0,0 +1,294 @@
+/*	$NetBSD: socket.h,v 1.77 2005/11/29 03:12:16 christos Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * 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.
+ * 3. Neither the name of the project 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 PROJECT 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 PROJECT 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.
+ */
+
+/*
+ * Copyright (c) 1982, 1985, 1986, 1988, 1993, 1994
+ *	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.
+ * 3. 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.
+ *
+ *	@(#)socket.h	8.6 (Berkeley) 5/3/95
+ */
+
+#ifndef _SYS_SOCKET_H_
+#define	_SYS_SOCKET_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include &lt;stdint.h&gt;
+#include &lt;stddef.h&gt;
+#include &lt;sys/types.h&gt;
+
+typedef uint8_t sa_family_t;
+typedef uint32_t socklen_t;
+
+/*
+ * Socket types.
+ */
+#define	SOCK_STREAM	1		/* stream socket */
+#define	SOCK_DGRAM	2		/* datagram socket */
+#define	SOCK_RAW	3		/* raw-protocol interface */
+#define	SOCK_RDM	4		/* reliably-delivered message */
+#define	SOCK_SEQPACKET	5		/* sequenced packet stream */
+
+/*
+ * Option flags per-socket.
+ */
+#define	SO_DEBUG	0x0001		/* turn on debugging info recording */
+#define	SO_ACCEPTCONN	0x0002		/* socket has had listen() */
+#define	SO_REUSEADDR	0x0004		/* allow local address reuse */
+#define	SO_KEEPALIVE	0x0008		/* keep connections alive */
+#define	SO_DONTROUTE	0x0010		/* just use interface addresses */
+#define	SO_BROADCAST	0x0020		/* permit sending of broadcast msgs */
+#define	SO_USELOOPBACK	0x0040		/* bypass hardware when possible */
+#define	SO_LINGER	0x0080		/* linger on close if data present */
+#define	SO_OOBINLINE	0x0100		/* leave received OOB data in line */
+#define	SO_REUSEPORT	0x0200		/* allow local address &amp; port reuse */
+#define	SO_TIMESTAMP	0x0400		/* timestamp received dgram traffic */
+
+/*
+ * Additional options, not kept in so_options.
+ */
+#define SO_SNDBUF	0x1001		/* send buffer size */
+#define SO_RCVBUF	0x1002		/* receive buffer size */
+#define SO_SNDLOWAT	0x1003		/* send low-water mark */
+#define SO_RCVLOWAT	0x1004		/* receive low-water mark */
+#define SO_SNDTIMEO	0x1005		/* send timeout */
+#define SO_RCVTIMEO	0x1006		/* receive timeout */
+#define	SO_ERROR	0x1007		/* get error status and clear */
+#define	SO_TYPE		0x1008		/* get socket type */
+#define	SO_OVERFLOWED	0x1009		/* datagrams: return packets dropped */
+#define	SO_NONBLOCK     0x1009		/* non-blocking I/O */
+
+/*
+ * Structure used for manipulating linger option.
+ */
+struct	linger {
+	int	l_onoff;		/* option on/off */
+	int	l_linger;		/* linger time in seconds */
+};
+
+/*
+ * Level number for (get/set)sockopt() to apply to socket itself.
+ */
+#define	SOL_SOCKET	0xffff		/* options for socket level */
+
+/*
+ * Address families.
+ */
+#define	AF_UNSPEC	0		/* unspecified */
+#define	AF_LOCAL	1		/* local to host (pipes, portals) */
+#define	AF_UNIX		AF_LOCAL	/* backward compatibility */
+#define	AF_INET		2		/* internetwork: UDP, TCP, etc. */
+#define	AF_IMPLINK	3		/* arpanet imp addresses */
+#define	AF_PUP		4		/* pup protocols: e.g. BSP */
+#define	AF_CHAOS	5		/* mit CHAOS protocols */
+#define	AF_NS		6		/* XEROX NS protocols */
+#define	AF_ISO		7		/* ISO protocols */
+#define	AF_OSI		AF_ISO
+#define	AF_ECMA		8		/* european computer manufacturers */
+#define	AF_DATAKIT	9		/* datakit protocols */
+#define	AF_CCITT	10		/* CCITT protocols, X.25 etc */
+#define	AF_SNA		11		/* IBM SNA */
+#define AF_DECnet	12		/* DECnet */
+#define AF_DLI		13		/* DEC Direct data link interface */
+#define AF_LAT		14		/* LAT */
+#define	AF_HYLINK	15		/* NSC Hyperchannel */
+#define	AF_APPLETALK	16		/* Apple Talk */
+#define	AF_ROUTE	17		/* Internal Routing Protocol */
+#define	AF_LINK		18		/* Link layer interface */
+#define	AF_COIP		20		/* connection-oriented IP, aka ST II */
+#define	AF_CNT		21		/* Computer Network Technology */
+#define	AF_IPX		23		/* Novell Internet Protocol */
+#define	AF_INET6	24		/* IP version 6 */
+#define AF_ISDN		26		/* Integrated Services Digital Network*/
+#define AF_E164		AF_ISDN		/* CCITT E.164 recommendation */
+#define AF_NATM		27		/* native ATM access */
+#define AF_ARP		28		/* (rev.) addr. res. prot. (RFC 826) */
+#define	AF_MAX		31
+
+/*
+ * Structure used by kernel to store most
+ * addresses.
+ */
+struct sockaddr {
+	uint8_t	sa_len;		/* total length */
+	sa_family_t	sa_family;	/* address family */
+	char		sa_data[14];	/* actually longer; address value */
+};
+
+/*
+ * Protocol families, same as address families for now.
+ */
+#define	PF_UNSPEC	AF_UNSPEC
+#define	PF_LOCAL	AF_LOCAL
+#define	PF_UNIX		PF_LOCAL	/* backward compatibility */
+#define	PF_INET		AF_INET
+#define	PF_IMPLINK	AF_IMPLINK
+#define	PF_PUP		AF_PUP
+#define	PF_CHAOS	AF_CHAOS
+#define	PF_NS		AF_NS
+#define	PF_ISO		AF_ISO
+#define	PF_OSI		AF_ISO
+#define	PF_ECMA		AF_ECMA
+#define	PF_DATAKIT	AF_DATAKIT
+#define	PF_CCITT	AF_CCITT
+#define	PF_SNA		AF_SNA
+#define PF_DECnet	AF_DECnet
+#define PF_DLI		AF_DLI
+#define PF_LAT		AF_LAT
+#define	PF_HYLINK	AF_HYLINK
+#define	PF_APPLETALK	AF_APPLETALK
+#define	PF_ROUTE	AF_ROUTE
+#define	PF_LINK		AF_LINK
+#if defined(_NETBSD_SOURCE)
+#define	PF_XTP		pseudo_AF_XTP	/* really just proto family, no AF */
+#endif
+#define	PF_COIP		AF_COIP
+#define	PF_CNT		AF_CNT
+#define	PF_INET6	AF_INET6
+#define	PF_IPX		AF_IPX		/* same format as AF_NS */
+#if defined(_NETBSD_SOURCE)
+#define PF_RTIP		pseudo_AF_RTIP	/* same format as AF_INET */
+#define PF_PIP		pseudo_AF_PIP
+#endif
+#define PF_ISDN		AF_ISDN		/* same as E164 */
+#define PF_E164		AF_E164
+#define PF_NATM		AF_NATM
+#define PF_ARP		AF_ARP
+#if defined(_NETBSD_SOURCE)
+#define PF_KEY 		pseudo_AF_KEY	/* like PF_ROUTE, only for key mgmt */
+#endif
+
+#define	PF_MAX		AF_MAX
+
+#define	MSG_OOB		0x1		/* process out-of-band data */
+#define	MSG_PEEK	0x2		/* peek at incoming message */
+#define	MSG_DONTROUTE	0x4		/* send without using routing tables */
+#define	MSG_EOR		0x8		/* data completes record */
+#define	MSG_TRUNC	0x10		/* data discarded before delivery */
+#define	MSG_CTRUNC	0x20		/* control data lost before delivery */
+#define	MSG_WAITALL	0x40		/* wait for full request or error */
+#define	MSG_DONTWAIT	0x80		/* this message should be nonblocking */
+#define	MSG_BCAST	0x100		/* this message was rcvd using link-level brdcst */
+#define	MSG_MCAST	0x200		/* this message was rcvd using link-level mcast */
+
+/*
+ * Types of socket shutdown(2).
+ */
+#define	SHUT_RD		0		/* Disallow further receives. */
+#define	SHUT_WR		1		/* Disallow further sends. */
+#define	SHUT_RDWR	2		/* Disallow further sends/receives. */
+
+struct iovec {
+	void	*iov_base;	/* Base address. */
+	size_t	 iov_len;	/* Length. */
+};
+
+struct msghdr {
+	void		*msg_name;	/* optional address */
+	socklen_t	msg_namelen;	/* size of address */
+	struct iovec	*msg_iov;	/* scatter/gather array */
+	int		msg_iovlen;	/* # elements in msg_iov */
+	void		*msg_control;	/* ancillary data, see below */
+	socklen_t	msg_controllen;	/* ancillary data buffer len */
+	int		msg_flags;	/* flags on received message */
+};
+
+/* BSD-compatible socket API. */
+int	accept(int, struct sockaddr * __restrict, socklen_t * __restrict);
+int	bind(int, const struct sockaddr *, socklen_t);
+int	connect(int, const struct sockaddr *, socklen_t);
+int	getpeername(int, struct sockaddr * __restrict, socklen_t * __restrict);
+int	getsockname(int, struct sockaddr * __restrict, socklen_t * __restrict);
+int	getsockopt(int, int, int, void * __restrict, socklen_t * __restrict);
+int	listen(int, int);
+ssize_t	recv(int, void *, size_t, int);
+ssize_t	recvfrom(int, void * __restrict, size_t, int,
+	    struct sockaddr * __restrict, socklen_t * __restrict);
+ssize_t recvmsg(int s, struct msghdr *msg, int flags);
+ssize_t	send(int, const void *, size_t, int);
+ssize_t	sendto(int, const void *,
+	    size_t, int, const struct sockaddr *, socklen_t);
+ssize_t sendmsg(int s, const struct msghdr *msg, int flags);
+int	setsockopt(int, int, int, const void *, socklen_t);
+int	shutdown(int, int);
+int	socket(int, int, int);
+
+/* sceNetInet socket API. */
+int	sceNetInetAccept(int s, struct sockaddr *addr, socklen_t *addrlen);
+int	sceNetInetBind(int s, const struct sockaddr *my_addr, socklen_t addrlen);
+int	sceNetInetConnect(int s, const struct sockaddr *serv_addr, socklen_t addrlen);
+int	sceNetInetGetsockopt(int s, int level, int optname, void *optval, socklen_t *optlen);
+int	sceNetInetListen(int s, int backlog);
+ssize_t	sceNetInetRecv(int s, void *buf, size_t len, int flags);
+ssize_t	sceNetInetRecvfrom(int s, void *buf, size_t flags, int, struct sockaddr *from, socklen_t *fromlen);
+ssize_t sceNetInetRecvmsg(int s, struct msghdr *msg, int flags);
+ssize_t	sceNetInetSend(int s, const void *buf, size_t len, int flags);
+ssize_t	sceNetInetSendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen);
+ssize_t sceNetInetSendmsg(int s, const struct msghdr *msg, int flags);
+int	sceNetInetSetsockopt(int s, int level, int optname, const void *optval, socklen_t optlen);
+int	sceNetInetShutdown(int s, int how);
+int	sceNetInetSocket(int domain, int type, int protocol);
+int sceNetInetClose(int s);
+int sceNetInetGetErrno(void);
+int sceNetInetGetsockname(int s, struct sockaddr *name, socklen_t *namelen);
+int sceNetInetGetpeername(int s, struct sockaddr *name, socklen_t *namelen);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !_SYS_SOCKET_H_ */
--- newlib-1.13.0/newlib/libc/sys/psp/xprintf.c	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/sys/psp/xprintf.c	2006-05-13 20:29:26.000000000 +0000
@@ -0,0 +1,984 @@
+/*
+ * PSP Software Development Kit - http://www.pspdev.org
+ * -----------------------------------------------------------------------
+ * Licensed under the BSD license, see LICENSE in PSPSDK root for details.
+ *
+ * xprintf.c - Various *printf functions.
+ *
+ * Copyright (c) 2005 Marcus R. Brown &lt;mrbrown@ocgnet.org&gt;
+ * Copyright (c) 2005 James Forshaw &lt;tyranid@gmail.com&gt;
+ * Copyright (c) 2005 John Kelley &lt;ps2dev@kelley.ca&gt;
+ *
+ * $Id$
+ */
+/* Code borrowed from mysql's xprintf.c, by Richard Hipp */
+/* This xprintf.c file on which this one is based is in public domain. */
+
+#include &lt;stdio.h&gt;
+#include &lt;string.h&gt;
+#include &lt;malloc.h&gt;
+
+#include &lt;stdarg.h&gt;
+#include &lt;stddef.h&gt;
+
+/*
+** The maximum number of digits of accuracy in a floating-point conversion.
+*/
+#define MAXDIG 20
+
+/* Instead of including ctype.h, use the isdigit() prototype because psplibc doesn't
+   know about newlib, and newlib defines isdigit as a macro that uses _ctype_. */
+int isdigit(int __c);
+
+int vxprintf(void (*func)(char *, int, void *), void *arg, const char *format, va_list ap);
+
+#ifdef F_vxprintf
+/*
+** Conversion types fall into various categories as defined by the
+** following enumeration.
+*/
+
+enum e_type {    /* The type of the format field */
+   RADIX,            /* Integer types.  %d, %x, %o, and so forth */
+   FLOAT,            /* Floating point.  %f */
+   EXP,              /* Exponentional notation. %e and %E */
+   GENERIC,          /* Floating or exponential, depending on exponent. %g */
+   SIZE,             /* Return number of characters processed so far. %n */
+   STRING,           /* Strings. %s */
+   PERCENT,          /* Percent symbol. %% */
+   CHAR,             /* Characters. %c */
+   ERROR,            /* Used to indicate no such conversion type */
+/* The rest are extensions, not normally found in printf() */
+   CHARLIT,          /* Literal characters.  %' */
+   SEEIT,            /* Strings with visible control characters. %S */
+   MEM_STRING,       /* A string which should be deleted after use. %z */
+   ORDINAL,          /* 1st, 2nd, 3rd and so forth */
+};
+
+/*
+** Each builtin conversion character (ex: the 'd' in "%d") is described
+** by an instance of the following structure
+*/
+typedef struct s_info {   /* Information about each format field */
+  int  fmttype;              /* The format field code letter */
+  int  base;                 /* The base for radix conversion */
+  char *charset;             /* The character set for conversion */
+  int  flag_signed;          /* Is the quantity signed? */
+  char *prefix;              /* Prefix on non-zero values in alt format */
+  enum e_type type;          /* Conversion paradigm */
+} info;
+
+/*
+** The following table is searched linearly, so it is good to put the
+** most frequently used conversion types first.
+*/
+static info fmtinfo[] = {
+  { 'd',  10,  "0123456789",       1,    0, RADIX,      },
+  { 's',   0,  0,                  0,    0, STRING,     },
+  { 'S',   0,  0,                  0,    0, SEEIT,      },
+  { 'z',   0,  0,                  0,    0, MEM_STRING, },
+  { 'c',   0,  0,                  0,    0, CHAR,       },
+  { 'o',   8,  "01234567",         0,  "0", RADIX,      },
+  { 'u',  10,  "0123456789",       0,    0, RADIX,      },
+  { 'x',  16,  "0123456789abcdef", 0, "x0", RADIX,      },
+  { 'X',  16,  "0123456789ABCDEF", 0, "X0", RADIX,      },
+  { 'r',  10,  "0123456789",       0,    0, ORDINAL,    },
+  { 'f',   0,  0,                  1,    0, FLOAT,      },
+  { 'e',   0,  "e",                1,    0, EXP,        },
+  { 'E',   0,  "E",                1,    0, EXP,        },
+  { 'g',   0,  "e",                1,    0, GENERIC,    },
+  { 'G',   0,  "E",                1,    0, GENERIC,    },
+  { 'i',  10,  "0123456789",       1,    0, RADIX,      },
+  { 'n',   0,  0,                  0,    0, SIZE,       },
+  { 'S',   0,  0,                  0,    0, SEEIT,      },
+  { '%',   0,  0,                  0,    0, PERCENT,    },
+  { 'b',   2,  "01",               0, "b0", RADIX,      }, /* Binary notation */
+  { 'p',  16,  "0123456789ABCDEF", 0, "x0", RADIX,      }, /* Pointers */
+  { '\'',  0,  0,                  0,    0, CHARLIT,    }, /* Literal char */
+};
+#define NINFO  (sizeof(fmtinfo)/sizeof(info))  /* Size of the fmtinfo table */
+
+/*
+** If NOFLOATINGPOINT is defined, then none of the floating point
+** conversions will work.
+*/
+#ifndef NOFLOATINGPOINT
+/*
+** "*val" is a double such that 0.1 &lt;= *val &lt; 10.0
+** Return the ascii code for the leading digit of *val, then
+** multiply "*val" by 10.0 to renormalize.
+**
+** Example:
+**     input:     *val = 3.14159
+**     output:    *val = 1.4159    function return = '3'
+**
+** The counter *cnt is incremented each time.  After counter exceeds
+** 16 (the number of significant digits in a 64-bit float) '0' is
+** always returned.
+*/
+static int getdigit(long double *val, int *cnt){
+  int digit;
+  long double d;
+  if( (*cnt)++ &gt;= MAXDIG ) return '0';
+  digit = (int)*val;
+  d = digit;
+  digit += '0';
+  *val = (*val - d)*10.0;
+  return digit;
+}
+#endif
+
+/*
+** Setting the size of the BUFFER involves trade-offs.  No %d or %f
+** conversion can have more than BUFSIZE characters.  If the field
+** width is larger than BUFSIZE, it is silently shortened.  On the
+** other hand, this routine consumes more stack space with larger
+** BUFSIZEs.  If you have some threads for which you want to minimize
+** stack space, you should keep BUFSIZE small.
+*/
+#define BUFSIZE 100  /* Size of the output buffer */
+
+/*
+** The root program.  All variations call this core.
+**
+** INPUTS:
+**   func   This is a pointer to a function taking three arguments
+**            1. A pointer to the list of characters to be output
+**               (Note, this list is NOT null terminated.)
+**            2. An integer number of characters to be output.
+**               (Note: This number might be zero.)
+**            3. A pointer to anything.  Same as the "arg" parameter.
+**
+**   arg    This is the pointer to anything which will be passed as the
+**          third argument to "func".  Use it for whatever you like.
+**
+**   fmt    This is the format string, as in the usual print.
+**
+**   ap     This is a pointer to a list of arguments.  Same as in
+**          vfprint.
+**
+** OUTPUTS:
+**          The return value is the total number of characters sent to
+**          the function "func".  Returns -1 on a error.
+**
+** Note that the order in which automatic variables are declared below
+** seems to make a big difference in determining how fast this beast
+** will run.
+*/
+
+int vxprintf(func,arg,format,ap)
+  void (*func)(char*,int,void*);
+  void *arg;
+  const char *format;
+  va_list ap;
+{
+  register const char *fmt; /* The format string. */
+  register int c;           /* Next character in the format string */
+  register char *bufpt;     /* Pointer to the conversion buffer */
+  register int  precision;  /* Precision of the current field */
+  register int  length;     /* Length of the field */
+  register int  idx;        /* A general purpose loop counter */
+  int count;                /* Total number of characters output */
+  int width;                /* Width of the current field */
+  int flag_leftjustify;     /* True if "-" flag is present */
+  int flag_plussign;        /* True if "+" flag is present */
+  int flag_blanksign;       /* True if " " flag is present */
+  int flag_alternateform;   /* True if "#" flag is present */
+  int flag_zeropad;         /* True if field width constant starts with zero */
+  int flag_long;            /* True if "l" flag is present */
+  int flag_center;          /* True if "=" flag is present */
+  unsigned long long longvalue;  /* Value for integer types */
+
+  long double realvalue;    /* Value for real types */
+  info *infop;              /* Pointer to the appropriate info structure */
+  char buf[BUFSIZE];        /* Conversion buffer */
+  char prefix;              /* Prefix character.  "+" or "-" or " " or '\0'. */
+  int  errorflag = 0;       /* True if an error is encountered */
+  enum e_type xtype;        /* Conversion paradigm */
+  char *zMem = 0;           /* String to be freed */
+  static char spaces[] =
+     "                                                    ";
+#define SPACESIZE (sizeof(spaces)-1)
+#ifndef NOFLOATINGPOINT
+  int  exp;                 /* exponent of real numbers */
+  long double rounder;      /* Used for rounding floating point values */
+  int flag_dp;              /* True if decimal point should be shown */
+  int flag_rtz;             /* True if trailing zeros should be removed */
+  int flag_exp;             /* True to force display of the exponent */
+  int nsd;                  /* Number of significant digits returned */
+#endif
+
+  fmt = format;                     /* Put in a register for speed */
+  count = length = 0;
+  bufpt = 0;
+  for(; (c=(*fmt))!=0; ++fmt){
+    if( c!='%' ){
+      register int amt;
+      bufpt = (char *)fmt;
+      amt = 1;
+      while( (c=(*++fmt))!='%' &amp;&amp; c!=0 ) amt++;
+      (*func)(bufpt,amt,arg);
+      count += amt;
+      if( c==0 ) break;
+    }
+    if( (c=(*++fmt))==0 ){
+      errorflag = 1;
+      (*func)("%",1,arg);
+      count++;
+      break;
+    }
+    /* Find out what flags are present */
+    flag_leftjustify = flag_plussign = flag_blanksign =
+     flag_alternateform = flag_zeropad = flag_center = 0;
+    do{
+      switch( c ){
+        case '-':   flag_leftjustify = 1;     c = 0;   break;
+        case '+':   flag_plussign = 1;        c = 0;   break;
+        case ' ':   flag_blanksign = 1;       c = 0;   break;
+        case '#':   flag_alternateform = 1;   c = 0;   break;
+        case '0':   flag_zeropad = 1;         c = 0;   break;
+        case '=':   flag_center = 1;          c = 0;   break;
+        default:                                       break;
+      }
+    }while( c==0 &amp;&amp; (c=(*++fmt))!=0 );
+    if( flag_center ) flag_leftjustify = 0;
+    /* Get the field width */
+    width = 0;
+    if( c=='*' ){
+      width = va_arg(ap,int);
+      if( width&lt;0 ){
+        flag_leftjustify = 1;
+        width = -width;
+      }
+      c = *++fmt;
+    }else{
+      while( isdigit(c) ){
+        width = width*10 + c - '0';
+        c = *++fmt;
+      }
+    }
+    if( width &gt; BUFSIZE-10 ){
+      width = BUFSIZE-10;
+    }
+    /* Get the precision */
+    if( c=='.' ){
+      precision = 0;
+      c = *++fmt;
+      if( c=='*' ){
+        precision = va_arg(ap,int);
+#ifndef COMPATIBILITY
+        /* This is sensible, but SUN OS 4.1 doesn't do it. */
+        if( precision&lt;0 ) precision = -precision;
+#endif
+        c = *++fmt;
+      }else{
+        while( isdigit(c) ){
+          precision = precision*10 + c - '0';
+          c = *++fmt;
+        }
+      }
+      /* Limit the precision to prevent overflowing buf[] during conversion */
+      if( precision&gt;BUFSIZE-40 ) precision = BUFSIZE-40;
+    }else{
+      precision = -1;
+    }
+    /* Get the conversion type modifier */
+    if( c=='l' ){
+      flag_long = 1;
+      c = *++fmt;
+      if( c == 'l' ){
+	flag_long = 2;
+	c = *++fmt;
+      }
+    }else{
+      flag_long = 0;
+    }
+    /* Fetch the info entry for the field */
+    infop = 0;
+    for(idx=0; idx&lt;NINFO; idx++){
+      if( c==fmtinfo[idx].fmttype ){
+        infop = &amp;fmtinfo[idx];
+        break;
+      }
+    }
+    /* No info entry found.  It must be an error. */
+    if( infop==0 ){
+      xtype = ERROR;
+    }else{
+      xtype = infop-&gt;type;
+    }
+
+    /*
+    ** At this point, variables are initialized as follows:
+    **
+    **   flag_alternateform          TRUE if a '#' is present.
+    **   flag_plussign               TRUE if a '+' is present.
+    **   flag_leftjustify            TRUE if a '-' is present or if the
+    **                               field width was negative.
+    **   flag_zeropad                TRUE if the width began with 0.
+    **   flag_long                   TRUE if the letter 'l' (ell) prefixed
+    **                               the conversion character.
+    **   flag_blanksign              TRUE if a ' ' is present.
+    **   width                       The specified field width.  This is
+    **                               always non-negative.  Zero is the default.
+    **   precision                   The specified precision.  The default
+    **                               is -1.
+    **   xtype                       The class of the conversion.
+    **   infop                       Pointer to the appropriate info struct.
+    */
+    switch( xtype ){
+      case ORDINAL:
+      case RADIX:
+        if(( flag_long&gt;1 )&amp;&amp;( infop-&gt;flag_signed )){
+	    signed long long t = va_arg(ap,signed long long);
+	    longvalue = t;
+	}else if(( flag_long&gt;1 )&amp;&amp;( !infop-&gt;flag_signed )){
+	    unsigned long long t = va_arg(ap,unsigned long long);
+	    longvalue = t;
+	}else if(( flag_long )&amp;&amp;( infop-&gt;flag_signed )){
+	    signed long t = va_arg(ap,signed long);
+	    longvalue = t;
+	}else if(( flag_long )&amp;&amp;( !infop-&gt;flag_signed )){
+	    unsigned long t = va_arg(ap,unsigned long);
+	    longvalue = t;
+	}else if(( !flag_long )&amp;&amp;( infop-&gt;flag_signed )){
+	    signed int t = va_arg(ap,signed int) &amp; ((unsigned long) 0xffffffff);
+	    longvalue = t;
+	}else{
+	    unsigned int t = va_arg(ap,unsigned int) &amp; ((unsigned long) 0xffffffff);
+	    longvalue = t;
+	}
+#ifdef COMPATIBILITY
+        /* For the format %#x, the value zero is printed "0" not "0x0".
+        ** I think this is stupid. */
+        if( longvalue==0 ) flag_alternateform = 0;
+#else
+        /* More sensible: turn off the prefix for octal (to prevent "00"),
+        ** but leave the prefix for hex. */
+        if( longvalue==0 &amp;&amp; infop-&gt;base==8 ) flag_alternateform = 0;
+#endif
+        if( infop-&gt;flag_signed ){
+          if( *(long long*)&amp;longvalue&lt;0 ){
+	    longvalue = -*(long long*)&amp;longvalue;
+            prefix = '-';
+          }else if( flag_plussign )  prefix = '+';
+          else if( flag_blanksign )  prefix = ' ';
+          else                       prefix = 0;
+        }else                        prefix = 0;
+        if( flag_zeropad &amp;&amp; precision&lt;width-(prefix!=0) ){
+          precision = width-(prefix!=0);
+	}
+        bufpt = &amp;buf[BUFSIZE];
+        if( xtype==ORDINAL ){
+          long a,b;
+          a = longvalue%10;
+          b = longvalue%100;
+          bufpt -= 2;
+          if( a==0 || a&gt;3 || (b&gt;10 &amp;&amp; b&lt;14) ){
+            bufpt[0] = 't';
+            bufpt[1] = 'h';
+          }else if( a==1 ){
+            bufpt[0] = 's';
+            bufpt[1] = 't';
+          }else if( a==2 ){
+            bufpt[0] = 'n';
+            bufpt[1] = 'd';
+          }else if( a==3 ){
+            bufpt[0] = 'r';
+            bufpt[1] = 'd';
+          }
+        }
+        {
+          register char *cset;      /* Use registers for speed */
+          register int base;
+          cset = infop-&gt;charset;
+          base = infop-&gt;base;
+          do{                                           /* Convert to ascii */
+            *(--bufpt) = cset[longvalue%base];
+            longvalue = longvalue/base;
+          }while( longvalue&gt;0 );
+	}
+        length = (int)(&amp;buf[BUFSIZE]-bufpt);
+	if(infop-&gt;fmttype == 'p')
+        {
+		precision = 8;
+		flag_alternateform = 1;
+        }
+
+        for(idx=precision-length; idx&gt;0; idx--){
+          *(--bufpt) = '0';                             /* Zero pad */
+	}
+        if( prefix ) *(--bufpt) = prefix;               /* Add sign */
+        if( flag_alternateform &amp;&amp; infop-&gt;prefix ){      /* Add "0" or "0x" */
+          char *pre, x;
+          pre = infop-&gt;prefix;
+          if( *bufpt!=pre[0] ){
+            for(pre=infop-&gt;prefix; (x=(*pre))!=0; pre++) *(--bufpt) = x;
+	  }
+        }
+
+        length = (int)(&amp;buf[BUFSIZE]-bufpt);
+        break;
+      case FLOAT:
+      case EXP:
+      case GENERIC:
+        realvalue = va_arg(ap,double);
+#ifndef NOFLOATINGPOINT
+        if( precision&lt;0 ) precision = 6;         /* Set default precision */
+        if( precision&gt;BUFSIZE-10 ) precision = BUFSIZE-10;
+        if( realvalue&lt;0.0 ){
+          realvalue = -realvalue;
+          prefix = '-';
+	}else{
+          if( flag_plussign )          prefix = '+';
+          else if( flag_blanksign )    prefix = ' ';
+          else                         prefix = 0;
+	}
+        if( infop-&gt;type==GENERIC &amp;&amp; precision&gt;0 ) precision--;
+        rounder = 0.0;
+#ifdef COMPATIBILITY
+        /* Rounding works like BSD when the constant 0.4999 is used.  Wierd! */
+        for(idx=precision, rounder=0.4999; idx&gt;0; idx--, rounder*=0.1);
+#else
+        /* It makes more sense to use 0.5 */
+        if( precision&gt;MAXDIG-1 ) idx = MAXDIG-1;
+        else                     idx = precision;
+        for(rounder=0.5; idx&gt;0; idx--, rounder*=0.1);
+#endif
+        if( infop-&gt;type==FLOAT ) realvalue += rounder;
+        /* Normalize realvalue to within 10.0 &gt; realvalue &gt;= 1.0 */
+        exp = 0;
+        if( realvalue&gt;0.0 ){
+          int k = 0;
+          while( realvalue&gt;=1e8 &amp;&amp; k++&lt;100 ){ realvalue *= 1e-8; exp+=8; }
+          while( realvalue&gt;=10.0 &amp;&amp; k++&lt;100 ){ realvalue *= 0.1; exp++; }
+          while( realvalue&lt;1e-8 &amp;&amp; k++&lt;100 ){ realvalue *= 1e8; exp-=8; }
+          while( realvalue&lt;1.0 &amp;&amp; k++&lt;100 ){ realvalue *= 10.0; exp--; }
+          if( k&gt;=100 ){
+            bufpt = "NaN";
+            length = 3;
+            break;
+          }
+	}
+        bufpt = buf;
+        /*
+        ** If the field type is GENERIC, then convert to either EXP
+        ** or FLOAT, as appropriate.
+        */
+        flag_exp = xtype==EXP;
+        if( xtype!=FLOAT ){
+          realvalue += rounder;
+          if( realvalue&gt;=10.0 ){ realvalue *= 0.1; exp++; }
+        }
+        if( xtype==GENERIC ){
+          flag_rtz = !flag_alternateform;
+          if( exp&lt;-4 || exp&gt;precision ){
+            xtype = EXP;
+          }else{
+            precision = precision - exp;
+            xtype = FLOAT;
+          }
+	}else{
+          flag_rtz = 0;
+	}
+        /*
+        ** The "exp+precision" test causes output to be of type EXP if
+        ** the precision is too large to fit in buf[].
+        */
+        nsd = 0;
+        if( xtype==FLOAT &amp;&amp; exp+precision&lt;BUFSIZE-30 ){
+          flag_dp = (precision&gt;0 || flag_alternateform);
+          if( prefix ) *(bufpt++) = prefix;         /* Sign */
+          if( exp&lt;0 )  *(bufpt++) = '0';            /* Digits before "." */
+          else for(; exp&gt;=0; exp--) *(bufpt++) = getdigit(&amp;realvalue,&amp;nsd);
+          if( flag_dp ) *(bufpt++) = '.';           /* The decimal point */
+          for(exp++; exp&lt;0 &amp;&amp; precision&gt;0; precision--, exp++){
+            *(bufpt++) = '0';
+          }
+          while( (precision--)&gt;0 ) *(bufpt++) = getdigit(&amp;realvalue,&amp;nsd);
+          *(bufpt--) = 0;                           /* Null terminate */
+          if( flag_rtz &amp;&amp; flag_dp ){     /* Remove trailing zeros and "." */
+            while( bufpt&gt;=buf &amp;&amp; *bufpt=='0' ) *(bufpt--) = 0;
+            if( bufpt&gt;=buf &amp;&amp; *bufpt=='.' ) *(bufpt--) = 0;
+          }
+          bufpt++;                            /* point to next free slot */
+	}else{    /* EXP or GENERIC */
+          flag_dp = (precision&gt;0 || flag_alternateform);
+          if( prefix ) *(bufpt++) = prefix;   /* Sign */
+          *(bufpt++) = getdigit(&amp;realvalue,&amp;nsd);  /* First digit */
+          if( flag_dp ) *(bufpt++) = '.';     /* Decimal point */
+          while( (precision--)&gt;0 ) *(bufpt++) = getdigit(&amp;realvalue,&amp;nsd);
+          bufpt--;                            /* point to last digit */
+          if( flag_rtz &amp;&amp; flag_dp ){          /* Remove tail zeros */
+            while( bufpt&gt;=buf &amp;&amp; *bufpt=='0' ) *(bufpt--) = 0;
+            if( bufpt&gt;=buf &amp;&amp; *bufpt=='.' ) *(bufpt--) = 0;
+          }
+          bufpt++;                            /* point to next free slot */
+          if( exp || flag_exp ){
+            *(bufpt++) = infop-&gt;charset[0];
+            if( exp&lt;0 ){ *(bufpt++) = '-'; exp = -exp; } /* sign of exp */
+            else       { *(bufpt++) = '+'; }
+            if( exp&gt;=100 ){
+              *(bufpt++) = (exp/100)+'0';                /* 100's digit */
+              exp %= 100;
+  	    }
+            *(bufpt++) = exp/10+'0';                     /* 10's digit */
+            *(bufpt++) = exp%10+'0';                     /* 1's digit */
+          }
+	}
+        /* The converted number is in buf[] and zero terminated. Output it.
+        ** Note that the number is in the usual order, not reversed as with
+        ** integer conversions. */
+        length = (int)(bufpt-buf);
+        bufpt = buf;
+
+        /* Special case:  Add leading zeros if the flag_zeropad flag is
+        ** set and we are not left justified */
+        if( flag_zeropad &amp;&amp; !flag_leftjustify &amp;&amp; length &lt; width){
+          int i;
+          int nPad = width - length;
+          for(i=width; i&gt;=nPad; i--){
+            bufpt[i] = bufpt[i-nPad];
+          }
+          i = prefix!=0;
+          while( nPad-- ) bufpt[i++] = '0';
+          length = width;
+        }
+#endif
+        break;
+      case SIZE:
+        *(va_arg(ap,int*)) = count;
+        length = width = 0;
+        break;
+      case PERCENT:
+        buf[0] = '%';
+        bufpt = buf;
+        length = 1;
+        break;
+      case CHARLIT:
+      case CHAR:
+        c = buf[0] = (xtype==CHAR ? va_arg(ap,int) : *++fmt);
+        if( precision&gt;=0 ){
+          for(idx=1; idx&lt;precision; idx++) buf[idx] = c;
+          length = precision;
+	}else{
+          length =1;
+	}
+        bufpt = buf;
+        break;
+      case STRING:
+      case MEM_STRING:
+        zMem = bufpt = va_arg(ap,char*);
+        if( bufpt==0 ) bufpt = "(null)";
+        length = strlen(bufpt);
+        if( precision&gt;=0 &amp;&amp; precision&lt;length ) length = precision;
+        break;
+      case SEEIT:
+        {
+          int i;
+          int c;
+          char *arg = va_arg(ap,char*);
+          for(i=0; i&lt;BUFSIZE-1 &amp;&amp; (c = *arg++)!=0; i++){
+            if( c&lt;0x20 || c&gt;=0x7f ){
+              buf[i++] = '^';
+              buf[i] = (c&amp;0x1f)+0x40;
+            }else{
+              buf[i] = c;
+            }
+          }
+          bufpt = buf;
+          length = i;
+          if( precision&gt;=0 &amp;&amp; precision&lt;length ) length = precision;
+        }
+        break;
+      case ERROR:
+        buf[0] = '%';
+        buf[1] = c;
+        errorflag = 0;
+        idx = 1+(c!=0);
+        (*func)("%",idx,arg);
+        count += idx;
+        if( c==0 ) fmt--;
+        break;
+    }/* End switch over the format type */
+    /*
+    ** The text of the conversion is pointed to by "bufpt" and is
+    ** "length" characters long.  The field width is "width".  Do
+    ** the output.
+    */
+    if( !flag_leftjustify ){
+      register int nspace;
+      nspace = width-length;
+      if( nspace&gt;0 ){
+        if( flag_center ){
+          nspace = nspace/2;
+          width -= nspace;
+          flag_leftjustify = 1;
+	}
+        count += nspace;
+        while( nspace&gt;=SPACESIZE ){
+          (*func)(spaces,SPACESIZE,arg);
+          nspace -= SPACESIZE;
+        }
+        if( nspace&gt;0 ) (*func)(spaces,nspace,arg);
+      }
+    }
+    if( length&gt;0 ){
+      (*func)(bufpt,length,arg);
+      count += length;
+    }
+    if( xtype==MEM_STRING &amp;&amp; zMem ){
+      free(zMem);
+    }
+    if( flag_leftjustify ){
+      register int nspace;
+      nspace = width-length;
+      if( nspace&gt;0 ){
+        count += nspace;
+        while( nspace&gt;=SPACESIZE ){
+          (*func)(spaces,SPACESIZE,arg);
+          nspace -= SPACESIZE;
+        }
+        if( nspace&gt;0 ) (*func)(spaces,nspace,arg);
+      }
+    }
+  }/* End for loop over the format string */
+  return errorflag ? -1 : count;
+} /* End of function */
+#endif
+
+#ifdef F__xprintf
+/*
+** This non-standard function is still occasionally useful....
+*/
+int xprintf(
+  void (*func)(char*,int,void*),
+  void *arg,
+  const char *format,
+  ...
+){
+  va_list ap;
+  va_start(ap,format);
+  return vxprintf(func,arg,format,ap);
+}
+#endif
+
+/*
+** Now for string-print, also as found in any standard library.
+** Add to this the snprint function which stops added characters
+** to the string at a given length.
+**
+** Note that snprint returns the length of the string as it would
+** be if there were no limit on the output.
+*/
+struct s_strargument {    /* Describes the string being written to */
+  char *next;                   /* Next free slot in the string */
+  char *last;                   /* Last available slot in the string */
+};
+
+void __sout(char *, int, void *);
+#ifdef F___sout
+void __sout(txt,amt,arg)
+  char *txt;
+  int amt;
+  void *arg;
+{
+  register char *head;
+  register const char *t;
+  register int a;
+  register char *tail;
+  a = amt;
+  t = txt;
+  head = ((struct s_strargument*)arg)-&gt;next;
+  tail = ((struct s_strargument*)arg)-&gt;last;
+  if( tail ){
+    while( a-- &gt;0 &amp;&amp; head&lt;tail ) *(head++) = *(t++);
+  }else{
+    while( a-- &gt;0 ) *(head++) = *(t++);
+  }
+  *head = 0;
+  ((struct s_strargument*)arg)-&gt;next = head;
+}
+#endif
+
+#ifdef F_vsnprintf
+int vsnprintf(char *buf, size_t n, const char *fmt, va_list ap){
+  struct s_strargument arg;
+  arg.next = buf;
+  arg.last = &amp;buf[n-1];
+  *buf = 0;
+  return vxprintf(__sout,&amp;arg,fmt,ap);
+}
+#endif
+
+#ifdef F_snprintf
+int snprintf(char *str, size_t sz, const char *format, ...)
+{
+	va_list args;
+	struct s_strargument arg;
+	int ret;
+
+	arg.next = str;
+	arg.last = &amp;str[sz-1];
+
+	va_start(args, format);
+	ret = vxprintf(__sout, &amp;arg, format, args);
+	va_end(args);
+
+	return ret;
+}
+#endif
+
+#ifdef F_vsprintf
+int vsprintf(char *buf, const char *fmt, va_list ap){
+  struct s_strargument arg;
+  arg.next = buf;
+  arg.last = NULL;
+  *buf = 0;
+  return vxprintf(__sout,&amp;arg,fmt,ap);
+}
+#endif
+
+#ifdef F_sprintf
+int sprintf (char *str, const char *format, ...)
+{
+	va_list args;
+	struct s_strargument arg;
+	int ret;
+
+	arg.next = str;
+	arg.last = NULL;
+ 
+	va_start(args, format);
+	ret = vxprintf(__sout, &amp;arg, format, args);
+	va_end(args);
+
+	return ret;
+}
+#endif
+
+/*
+** The following section of code handles the mprintf routine, that
+** writes to memory obtained from malloc().
+*/
+
+/* This structure is used to store state information about the
+** write in progress
+*/
+struct sgMprintf {
+  char *zBase;     /* A base allocation */
+  char *zText;     /* The string collected so far */
+  int  nChar;      /* Length of the string so far */
+  int  nAlloc;     /* Amount of space allocated in zText */
+};
+
+void __mout(char *, int, void*);
+
+#ifdef F___mout
+/* The xprintf callback function. */
+void __mout(zNewText,nNewChar,arg)
+  char *zNewText;
+  int nNewChar;
+  void *arg;
+{
+  struct sgMprintf *pM = (struct sgMprintf*)arg;
+  if( pM-&gt;nChar + nNewChar + 1 &gt; pM-&gt;nAlloc ){
+    pM-&gt;nAlloc = pM-&gt;nChar + nNewChar*2 + 1;
+    if( pM-&gt;zText==pM-&gt;zBase ){
+      pM-&gt;zText = malloc(pM-&gt;nAlloc);
+      if( pM-&gt;zText &amp;&amp; pM-&gt;nChar ) memcpy(pM-&gt;zText,pM-&gt;zBase,pM-&gt;nChar);
+    }else{
+      pM-&gt;zText = realloc(pM-&gt;zText, pM-&gt;nAlloc);
+    }
+  }
+  if( pM-&gt;zText ){
+    memcpy(&amp;pM-&gt;zText[pM-&gt;nChar], zNewText, nNewChar);
+    pM-&gt;nChar += nNewChar;
+    pM-&gt;zText[pM-&gt;nChar] = 0;
+  }
+}
+#endif
+
+/*
+** mprintf() works like printf(), but allocations memory to hold the
+** resulting string and returns a pointer to the allocated memory.
+**
+** We changed the name to TclMPrint() to conform with the Tcl private
+** routine naming conventions.
+*/
+
+#ifdef F_mprintf
+char *mprintf(const char *zFormat, ...){
+  va_list ap;
+  struct sgMprintf sMprintf;
+  char *zNew;
+  char zBuf[200];
+
+  va_start(ap,zFormat);
+  sMprintf.nChar = 0;
+  sMprintf.nAlloc = sizeof(zBuf);
+  sMprintf.zText = zBuf;
+  sMprintf.zBase = zBuf;
+  vxprintf(__mout,&amp;sMprintf,zFormat,ap);
+  va_end(ap);
+  if( sMprintf.zText==sMprintf.zBase ){
+    zNew = malloc( sMprintf.nChar+1 );
+    if( zNew ) strcpy(zNew,zBuf);
+  }else{
+    zNew = realloc(sMprintf.zText,sMprintf.nChar+1);
+  }
+
+  return zNew;
+}
+#endif
+
+/* This is the varargs version of mprintf.
+**
+** The name is changed to TclVMPrintf() to conform with Tcl naming
+** conventions.
+*/
+#ifdef F_vmprintf
+char *vmprintf(const char *zFormat,va_list ap){
+  struct sgMprintf sMprintf;
+  char zBuf[200];
+  sMprintf.nChar = 0;
+  sMprintf.zText = zBuf;
+  sMprintf.nAlloc = sizeof(zBuf);
+  sMprintf.zBase = zBuf;
+  vxprintf(__mout,&amp;sMprintf,zFormat,ap);
+  if( sMprintf.zText==sMprintf.zBase ){
+    sMprintf.zText = malloc( strlen(zBuf)+1 );
+    if( sMprintf.zText ) strcpy(sMprintf.zText,zBuf);
+  }else{
+    sMprintf.zText = realloc(sMprintf.zText,sMprintf.nChar+1);
+  }
+  return sMprintf.zText;
+}
+#endif
+
+#ifdef F_asprintf
+int asprintf(char ** strp, const char *zFormat, ...){
+  va_list ap;
+  struct sgMprintf sMprintf;
+  char *zNew;
+  char zBuf[200];
+
+  va_start(ap,zFormat);
+  sMprintf.nChar = 0;
+  sMprintf.nAlloc = sizeof(zBuf);
+  sMprintf.zText = zBuf;
+  sMprintf.zBase = zBuf;
+  vxprintf(__mout,&amp;sMprintf,zFormat,ap);
+  va_end(ap);
+  if( sMprintf.zText==sMprintf.zBase ){
+    zNew = malloc( sMprintf.nChar+1 );
+    if( zNew ) strcpy(zNew,zBuf);
+  }else{
+    zNew = realloc(sMprintf.zText,sMprintf.nChar+1);
+  }
+
+  *strp = zNew;
+
+  return sMprintf.nChar+1;
+}
+#endif
+
+#ifdef F_vasprintf
+int vasprintf(char **strp, const char *format, va_list ap) {
+  struct sgMprintf sMprintf;
+  char zBuf[200];
+  sMprintf.nChar = 0;
+  sMprintf.zText = zBuf;
+  sMprintf.nAlloc = sizeof(zBuf);
+  sMprintf.zBase = zBuf;
+  vxprintf(__mout,&amp;sMprintf,format,ap);
+  if( sMprintf.zText==sMprintf.zBase ){
+    sMprintf.zText = malloc( strlen(zBuf)+1 );
+    if( sMprintf.zText ) strcpy(sMprintf.zText,zBuf);
+  }else{
+    sMprintf.zText = realloc(sMprintf.zText,sMprintf.nChar+1);
+  }
+  *strp = sMprintf.zText;
+  return sMprintf.nChar;
+}
+#endif
+
+/*
+** The following section of code handles the standard fprintf routines
+** for pthreads.
+*/
+
+void __fout(char *, int, void *);
+
+#ifdef F___fout
+void __fout(zNewText,nNewChar,arg)
+  char *zNewText;
+  int nNewChar;
+  void *arg;
+{
+	fwrite(zNewText,1,nNewChar,(FILE*)arg);
+}
+#endif
+
+#ifdef F_fprintf
+/* The public interface routines */
+int fprintf(FILE *pOut, const char *zFormat, ...){
+  va_list ap;
+  int retc;
+
+  va_start(ap,zFormat);
+  retc = vxprintf(__fout,pOut,zFormat,ap);
+  va_end(ap);
+  return retc;
+}
+#endif
+
+#ifdef F_vfprintf
+int vfprintf(FILE *pOut, const char *zFormat, va_list ap){
+  return vxprintf(__fout,pOut,zFormat,ap);
+}
+#endif
+
+
+#ifdef F_printf
+int printf(const char *format, ...)
+{
+	va_list args;
+	int ret;
+
+	va_start(args, format);
+	ret = vprintf(format, args);
+	va_end(args);
+
+	return ret;
+}
+#endif
+
+#ifdef F_vprintf
+int vprintf(const char *format, va_list args)
+{
+	return vxprintf(__fout, stdout, format, args);
+}
+#endif
+
+#ifdef F__sprintf_r
+/* Idiotic kludge to get around newlib stupidity.  tmpnam() calls this
+   directly, but since sprintf() above replaces newlib's sprintf() (and
+   _sprintf_r()) we have to define this in order to link tmpnam(). */
+int _sprintf_r(struct _reent *unused, char *str, const char *format, ...)
+{
+	va_list args;
+	struct s_strargument arg;
+	int ret;
+
+	(void) unused;
+	arg.next = str;
+	arg.last = NULL;
+ 
+	va_start(args, format);
+	ret = vxprintf(__sout, &amp;arg, format, args);
+	va_end(args);
+
+	return ret;
+}
+#endif
--- newlib-1.13.0/newlib/libc/time/Makefile.am	2002-04-17 21:23:31.000000000 +0000
+++ newlib-psp/newlib/libc/time/Makefile.am	2006-05-13 20:29:27.000000000 +0000
@@ -22,7 +22,8 @@
 	time.c		\
 	tzlock.c	\
 	tzset.c		\
-	tzset_r.c
+	tzset_r.c	\
+	tzvars.c
 
 libtime_la_LDFLAGS = -Xcompiler -nostdlib
 
--- newlib-1.13.0/newlib/libc/time/Makefile.in	2004-01-27 23:26:26.000000000 +0000
+++ newlib-psp/newlib/libc/time/Makefile.in	2006-05-13 20:29:27.000000000 +0000
@@ -110,7 +110,7 @@
 
 INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
 
-LIB_SOURCES =  	asctime.c		asctime_r.c		clock.c			ctime.c			ctime_r.c		difftime.c		gmtime.c		gmtime_r.c		lcltime.c		lcltime_r.c		mktime.c		mktm_r.c		strftime.c  		strptime.c		time.c			tzlock.c		tzset.c			tzset_r.c
+LIB_SOURCES =  	asctime.c		asctime_r.c		clock.c			ctime.c			ctime_r.c		difftime.c		gmtime.c		gmtime_r.c		lcltime.c		lcltime_r.c		mktime.c		mktm_r.c		strftime.c  		strptime.c		time.c			tzlock.c		tzset.c			tzset_r.c		tzvars.c
 
 
 libtime_la_LDFLAGS = -Xcompiler -nostdlib
@@ -148,7 +148,7 @@
 @USE_LIBTOOL_FALSE@lcltime.$(OBJEXT) lcltime_r.$(OBJEXT) \
 @USE_LIBTOOL_FALSE@mktime.$(OBJEXT) mktm_r.$(OBJEXT) strftime.$(OBJEXT) \
 @USE_LIBTOOL_FALSE@strptime.$(OBJEXT) time.$(OBJEXT) tzlock.$(OBJEXT) \
-@USE_LIBTOOL_FALSE@tzset.$(OBJEXT) tzset_r.$(OBJEXT)
+@USE_LIBTOOL_FALSE@tzset.$(OBJEXT) tzset_r.$(OBJEXT) tzvars.$(OBJEXT)
 LTLIBRARIES =  $(noinst_LTLIBRARIES)
 
 libtime_la_LIBADD = 
@@ -156,7 +156,7 @@
 @USE_LIBTOOL_TRUE@ctime.lo ctime_r.lo difftime.lo gmtime.lo gmtime_r.lo \
 @USE_LIBTOOL_TRUE@lcltime.lo lcltime_r.lo mktime.lo mktm_r.lo \
 @USE_LIBTOOL_TRUE@strftime.lo strptime.lo time.lo tzlock.lo tzset.lo \
-@USE_LIBTOOL_TRUE@tzset_r.lo
+@USE_LIBTOOL_TRUE@tzset_r.lo tzvars.lo
 CFLAGS = @CFLAGS@
 COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
--- newlib-1.13.0/newlib/libc/time/tzset_r.c	2004-12-09 21:36:48.000000000 +0000
+++ newlib-psp/newlib/libc/time/tzset_r.c	2006-05-13 20:29:27.000000000 +0000
@@ -11,18 +11,6 @@
 static char __tzname_dst[11];
 static char *prev_tzenv = NULL;
 
-/* default to GMT */
-char *_tzname[2] = {"GMT" "GMT"};
-int _daylight = 0;
-time_t _timezone = (time_t)0;
-
-int __tzyear = 0;
-
-int __tznorth = 1;
-
-__tzrule_type __tzrule[2] = { {'J', 0, 0, 0, 0, (time_t)0, 0 }, 
-			      {'J', 0, 0, 0, 0, (time_t)0, 0 } };
-
 _VOID
 _DEFUN (_tzset_r, (reent_ptr),
         struct _reent *reent_ptr)
--- newlib-1.13.0/newlib/libc/time/tzvars.c	1970-01-01 00:00:00.000000000 +0000
+++ newlib-psp/newlib/libc/time/tzvars.c	2006-05-13 20:29:27.000000000 +0000
@@ -0,0 +1,17 @@
+/* Moved these variables from tzset_r.c to avoid including all of _tzset_r()
+   and the functions it uses. -- MRB (PSPDEV LOCAL) */
+
+#include &lt;sys/time.h&gt;
+#include "local.h"
+
+/* default to GMT */
+char *_tzname[2] = {"GMT" "GMT"};
+int _daylight = 0;
+time_t _timezone = (time_t)0;
+
+int __tzyear = 0;
+
+int __tznorth = 1;
+
+__tzrule_type __tzrule[2] = { {'J', 0, 0, 0, 0, (time_t)0, 0 }, 
+			      {'J', 0, 0, 0, 0, (time_t)0, 0 } };
</pre></body></html>