aboutsummaryrefslogtreecommitdiff
path: root/devel/psptoolchain-newlib
diff options
context:
space:
mode:
authorMarcelo Araujo <araujo@FreeBSD.org>2009-08-21 00:54:33 +0000
committerMarcelo Araujo <araujo@FreeBSD.org>2009-08-21 00:54:33 +0000
commit8cbd3957fb9309b77590faad70c31ada2caee71f (patch)
tree6e6dc53459a6b9a79b032994edb9301bd33d61c2 /devel/psptoolchain-newlib
parent074f004e7be95f94905b7f7e9a1d2145f99f3948 (diff)
Notes
Diffstat (limited to 'devel/psptoolchain-newlib')
-rw-r--r--devel/psptoolchain-newlib/Makefile41
-rw-r--r--devel/psptoolchain-newlib/distinfo3
-rw-r--r--devel/psptoolchain-newlib/files/patch-config.sub29
-rw-r--r--devel/psptoolchain-newlib/files/patch-configure12
-rw-r--r--devel/psptoolchain-newlib/files/patch-configure.in12
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-Makefile.am21
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-Makefile.in21
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-configure.host27
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-include-machine-time.h13
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-include-sys-config.h15
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-include-sys-types.h55
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-include-time.h19
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-configure21
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-configure.in10
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-Makefile.am74
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-Makefile.in467
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-README19
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-aclocal.m4883
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-arpa-inet.h29
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-confdefs.h4
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-configure4089
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-configure.in17
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-crt0.c6
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-fdman.c118
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-fdman.h47
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-include-netdb.h39
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-interrupt.S69
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-libcglue.c939
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-netdb.c106
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-netinet-in.h274
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-netinet-tcp.h15
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-pipe.c308
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-pspcwd.c169
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-select.c202
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-socket.c393
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-sys-dirent.h42
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-sys-errno.h161
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-sys-fd_set.h72
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-sys-ioctl.h4
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-sys-select.h57
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-sys-socket.h297
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-syscalls.c22
-rw-r--r--devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-xprintf.c987
-rw-r--r--devel/psptoolchain-newlib/pkg-descr4
-rw-r--r--devel/psptoolchain-newlib/pkg-plist105
45 files changed, 10317 insertions, 0 deletions
diff --git a/devel/psptoolchain-newlib/Makefile b/devel/psptoolchain-newlib/Makefile
new file mode 100644
index 000000000000..5d97fedc9af4
--- /dev/null
+++ b/devel/psptoolchain-newlib/Makefile
@@ -0,0 +1,41 @@
+# New ports collection makefile for: psptoolchain-newlib
+# Date created: 13 February 2009
+# Whom: Tassilo Philipp <tphilipp@potion-studios.com>
+#
+# $FreeBSD$
+#
+
+PORTNAME= newlib
+PORTVERSION= 1.15.0
+CATEGORIES= devel
+MASTER_SITES= ftp://sources.redhat.com/pub/ \
+ ${MASTER_SITE_SOURCEWARE}
+MASTER_SITE_SUBDIR= ${PORTNAME}
+PKGNAMEPREFIX= psptoolchain-
+
+MAINTAINER= tphilipp@potion-studios.com
+COMMENT= PlayStation Portable development toolchain ${PORTNAME}
+
+PSP_GCC_STAGE_PREFIX= psp/stage1
+PSP_SDK_STAGE_PREFIX= psp/stage1
+
+BUILD_DEPENDS+= ${PREFIX}/${PSP_SDK_STAGE_PREFIX}/sdk/include/pspsdk.h:${PORTSDIR}/devel/psptoolchain-pspsdk-stage1 \
+ psp-ar:${PORTSDIR}/devel/psptoolchain-binutils \
+ psp-as:${PORTSDIR}/devel/psptoolchain-binutils \
+ psp-ld:${PORTSDIR}/devel/psptoolchain-binutils \
+ ${PREFIX}/${PSP_GCC_STAGE_PREFIX}/bin/psp-gcc:${PORTSDIR}/devel/psptoolchain-gcc-stage1
+
+USE_GMAKE= yes
+
+HAS_CONFIGURE= yes
+CONFIGURE_ENV= PATH=${PREFIX}/${PSP_GCC_STAGE_PREFIX}/bin:${PATH}
+MAKE_ENV= PATH=${PREFIX}/${PSP_GCC_STAGE_PREFIX}/bin:${PATH}
+CONFIGURE_ARGS= --prefix=${PREFIX} --target=psp
+MAKE_ARGS+= CC="${CC}" CFLAGS="${CFLAGS} -g" # Apparently, it doesn't work on the PSP without debug information
+
+# Disable installation of .info files and fix includedir reference.
+post-patch:
+ @${REINPLACE_CMD} -E 's/^(install:.*)(install-info.*)/\1#\2/' ${WRKSRC}/etc/Makefile.in
+ @${REINPLACE_CMD} -E 's#(-I\$${prefix}/)psp(/sdk/include)#\1${PSP_SDK_STAGE_PREFIX:S,/,\\/,}\2#' ${WRKSRC}/newlib/configure.host
+
+.include <bsd.port.mk>
diff --git a/devel/psptoolchain-newlib/distinfo b/devel/psptoolchain-newlib/distinfo
new file mode 100644
index 000000000000..6c0ae7541577
--- /dev/null
+++ b/devel/psptoolchain-newlib/distinfo
@@ -0,0 +1,3 @@
+MD5 (newlib-1.15.0.tar.gz) = 4020004b1b7a56ca4cf7f6d35b40a4cb
+SHA256 (newlib-1.15.0.tar.gz) = c4496102d38c59d1a47ddd5481af35caa1f65b76e2a94d9607737e17fd9e4465
+SIZE (newlib-1.15.0.tar.gz) = 10709842
diff --git a/devel/psptoolchain-newlib/files/patch-config.sub b/devel/psptoolchain-newlib/files/patch-config.sub
new file mode 100644
index 000000000000..fcde31b0a3e6
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-config.sub
@@ -0,0 +1,29 @@
+--- config.sub.orig 2006-12-11 06:12:46.000000000 +0200
++++ config.sub 2007-06-01 12:22:26.000000000 +0300
+@@ -267,6 +267,7 @@
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipstx39 | mipstx39el \
++ | mipsallegrex | mipsallegrexel \
+ | mn10200 | mn10300 \
+ | mt \
+ | msp430 \
+@@ -348,6 +349,7 @@
+ | mipsisa64sb1-* | mipsisa64sb1el-* \
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipstx39-* | mipstx39el-* \
++ | mipsallegrex-* | mipsallegrexel-* \
+ | mmix-* \
+ | mt-* \
+ | msp430-* \
+@@ -690,6 +692,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/'`
+ ;;
diff --git a/devel/psptoolchain-newlib/files/patch-configure b/devel/psptoolchain-newlib/files/patch-configure
new file mode 100644
index 000000000000..6c1fc6241f6f
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-configure
@@ -0,0 +1,12 @@
+--- configure.orig 2006-12-12 03:38:04.000000000 +0200
++++ configure 2007-06-01 12:22:26.000000000 +0300
+@@ -1561,6 +1561,9 @@
+ mips*-*-linux*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
++ mipsallegrex*-*-*)
++ noconfigdirs="$noconfigdirs target-libgloss"
++ ;;
+ mips*-*-*)
+ noconfigdirs="$noconfigdirs gprof ${libgcj}"
+ ;;
diff --git a/devel/psptoolchain-newlib/files/patch-configure.in b/devel/psptoolchain-newlib/files/patch-configure.in
new file mode 100644
index 000000000000..c4d4423c9392
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-configure.in
@@ -0,0 +1,12 @@
+--- configure.in.orig 2006-12-12 03:38:04.000000000 +0200
++++ configure.in 2007-06-01 12:22:26.000000000 +0300
+@@ -737,6 +737,9 @@
+ mips*-*-linux*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
++ mipsallegrex*-*-*)
++ noconfigdirs="$noconfigdirs target-libgloss"
++ ;;
+ mips*-*-*)
+ noconfigdirs="$noconfigdirs gprof ${libgcj}"
+ ;;
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-Makefile.am b/devel/psptoolchain-newlib/files/patch-newlib-Makefile.am
new file mode 100644
index 000000000000..1e620d228d53
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-Makefile.am
@@ -0,0 +1,21 @@
+--- newlib/Makefile.am.orig 2006-06-05 20:42:57.000000000 +0300
++++ newlib/Makefile.am 2007-06-01 12:22:26.000000000 +0300
+@@ -267,6 +267,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`; \
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-Makefile.in b/devel/psptoolchain-newlib/files/patch-newlib-Makefile.in
new file mode 100644
index 000000000000..0e4e3f7a76b2
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-Makefile.in
@@ -0,0 +1,21 @@
+--- newlib/Makefile.in.orig 2006-12-18 22:32:41.000000000 +0200
++++ newlib/Makefile.in 2007-06-01 12:22:26.000000000 +0300
+@@ -912,6 +912,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`; \
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-configure.host b/devel/psptoolchain-newlib/files/patch-newlib-configure.host
new file mode 100644
index 000000000000..51abda18cb88
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-configure.host
@@ -0,0 +1,27 @@
+--- newlib/configure.host.orig 2006-12-18 23:49:14.000000000 +0200
++++ newlib/configure.host 2007-06-01 12:22:26.000000000 +0300
+@@ -510,7 +510,7 @@
+ # NOTE: When newlib malloc uses a semaphore, RTEMS will switch to that.
+ *-*-rtems*)
+ default_newlib_io_long_long="yes"
+- newlib_cflags="${newlib_cflags} -DMALLOC_PROVIDED -DEXIT_PROVIDED -DMISSING_SYSCALL_NAMES -DSIGNAL_PROVIDED -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_OPENDIR -DNO_EXEC -DHAVE_FCNTL"
++ newlib_cflags="${newlib_cflags} -DMALLOC_PROVIDED -DEXIT_PROVIDED -DMISSING_SYSCALL_NAMES -DSIGNAL_PROVIDED -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_OPENDIR -DNO_EXEC -DHAVE_FCNTL -DHAVE_RENAME -DHAVE_NANOSLEEP"
+ ;;
+ # VxWorks supplies its own version of malloc, and the newlib one
+ # doesn't work because VxWorks does not have sbrk.
+@@ -632,7 +632,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_FCNTL -DMALLOC_ALIGNMENT=16 -I${prefix}/psp/sdk/include" ;;
++ *)
++ newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" ;;
++ esac
+ ;;
+ mmix-*)
+ syscall_dir=syscalls
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-include-machine-time.h b/devel/psptoolchain-newlib/files/patch-newlib-libc-include-machine-time.h
new file mode 100644
index 000000000000..91e9bdf2fc6b
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-include-machine-time.h
@@ -0,0 +1,13 @@
+--- newlib/libc/include/machine/time.h.orig 2000-12-04 21:06:37.000000000 +0200
++++ newlib/libc/include/machine/time.h 2007-06-01 12:22:26.000000000 +0300
+@@ -9,6 +9,10 @@
+ #endif
+ #endif /* !__rtems__ */
+
++#if defined(__psp__)
++#define _CLOCKS_PER_SEC_ 1000000
++#endif
++
+ #endif /* _MACHTIME_H_ */
+
+
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-include-sys-config.h b/devel/psptoolchain-newlib/files/patch-newlib-libc-include-sys-config.h
new file mode 100644
index 000000000000..029d9e8373f2
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-include-sys-config.h
@@ -0,0 +1,15 @@
+--- newlib/libc/include/sys/config.h.orig 2006-08-30 00:00:59.000000000 +0300
++++ newlib/libc/include/sys/config.h 2007-06-01 12:22:26.000000000 +0300
+@@ -98,6 +98,12 @@
+ #define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
+ #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
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-include-sys-types.h b/devel/psptoolchain-newlib/files/patch-newlib-libc-include-sys-types.h
new file mode 100644
index 000000000000..a7fd1bfb5a31
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-include-sys-types.h
@@ -0,0 +1,55 @@
+--- newlib/libc/include/sys/types.h.orig 2006-09-14 01:09:27.000000000 +0300
++++ newlib/libc/include/sys/types.h 2007-06-01 12:22:26.000000000 +0300
+@@ -199,52 +199,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 >= 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)->fds_bits[(n)/NFDBITS] |= (1L << ((n) % NFDBITS)))
+-# define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1L << ((n) % NFDBITS)))
+-# define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1L << ((n) % NFDBITS)))
+-# define FD_ZERO(p) (__extension__ (void)({ \
+- size_t __i; \
+- char *__tmp = (char *)p; \
+- for (__i = 0; __i < sizeof (*(p)); ++__i) \
+- *__tmp++ = 0; \
+-}))
+-
+-# endif /* !(defined (_POSIX_SOURCE) || defined (_WINSOCK_H) || defined (__USE_W32_SOCKETS)) */
+-
+ #undef __MS_types__
+ #undef _ST_INT32
+
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-include-time.h b/devel/psptoolchain-newlib/files/patch-newlib-libc-include-time.h
new file mode 100644
index 000000000000..646988d7472c
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-include-time.h
@@ -0,0 +1,19 @@
+--- newlib/libc/include/time.h.orig 2005-11-18 17:57:24.000000000 +0200
++++ newlib/libc/include/time.h 2007-06-01 12:22:26.000000000 +0300
+@@ -174,6 +174,16 @@
+ }
+ #endif
+ #endif /* _POSIX_TIMERS */
++#if defined(__psp__)
++#ifdef __cplusplus
++extern "C" {
++#endif
++int _EXFUN(nanosleep, (const struct timespec *rqtp, struct timespec *rmtp));
++#ifdef __cplusplus
++}
++#endif
++#endif /* __psp__ */
++
+
+ #ifdef __cplusplus
+ extern "C" {
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-configure b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-configure
new file mode 100644
index 000000000000..9c73bd8af27d
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-configure
@@ -0,0 +1,21 @@
+--- newlib/libc/sys/configure.orig 2006-12-19 00:21:54.000000000 +0200
++++ newlib/libc/sys/configure 2007-06-01 12:22:26.000000000 +0300
+@@ -284,6 +284,7 @@
+ ac_subdirs_all="$ac_subdirs_all mmixware"
+ ac_subdirs_all="$ac_subdirs_all netware"
+ ac_subdirs_all="$ac_subdirs_all rdos"
++ac_subdirs_all="$ac_subdirs_all psp"
+ ac_subdirs_all="$ac_subdirs_all rtems"
+ ac_subdirs_all="$ac_subdirs_all sh"
+ ac_subdirs_all="$ac_subdirs_all sparc64"
+@@ -4925,6 +4926,10 @@
+
+ subdirs="$subdirs netware"
+ ;;
++ psp)
++
++subdirs="$subdirs psp"
++ ;;
+ rdos)
+
+ subdirs="$subdirs rdos"
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-configure.in b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-configure.in
new file mode 100644
index 000000000000..c987db3d800a
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-configure.in
@@ -0,0 +1,10 @@
+--- newlib/libc/sys/configure.in.orig 2006-04-13 22:56:27.000000000 +0300
++++ newlib/libc/sys/configure.in 2007-06-01 12:22:26.000000000 +0300
+@@ -32,6 +32,7 @@
+ mmixware) AC_CONFIG_SUBDIRS(mmixware) ;;
+ netware) AC_CONFIG_SUBDIRS(netware) ;;
+ rdos) AC_CONFIG_SUBDIRS(rdos) ;;
++ psp) AC_CONFIG_SUBDIRS(psp) ;;
+ rtems) AC_CONFIG_SUBDIRS(rtems) ;;
+ sh) AC_CONFIG_SUBDIRS(sh) ;;
+ sparc64) AC_CONFIG_SUBDIRS(sparc64) ;;
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-Makefile.am b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-Makefile.am
new file mode 100644
index 000000000000..a925ce40b979
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-Makefile.am
@@ -0,0 +1,74 @@
+--- newlib/libc/sys/psp/Makefile.am.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/Makefile.am 2007-06-01 12:22:26.000000000 +0300
+@@ -0,0 +1,71 @@
++## Process this file with automake to generate Makefile.in
++
++AUTOMAKE_OPTIONS = cygnus
++
++INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
++
++AM_CCASFLAGS = $(INCLUDES) $(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 nanosleep.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
++
++PE_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 syscalls.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_$* $< -c -o $@
++
++$(SOCKET_MULT_OBJS): socket.c
++ $(COMPILE) -DF_$* $< -c -o $@
++
++$(XPRINTF_MULT_OBJS): xprintf.c
++ $(COMPILE) -DF_$* $< -c -o $@
++
++$(NETDB_MULT_OBJS): netdb.c
++ $(COMPILE) -DF_$* $< -c -o $@
++
++$(PIPE_OBJS): pipe.c
++ $(COMPILE) -DF_$* $< -c -o $@
++
++$(FDMAN_OBJS): fdman.c
++ $(COMPILE) -DF_$* $< -c -o $@
++
++$(SELECT_OBJS): select.c
++ $(COMPILE) -DF_$* $< -c -o $@
++
++$(INTERRUPT_OBJS): interrupt.S
++ $(COMPILE) -DF_$* $< -c -o $@
++
++ACLOCAL_AMFLAGS = -I ../../..
++CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-Makefile.in b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-Makefile.in
new file mode 100644
index 000000000000..67dbe0341be6
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-Makefile.in
@@ -0,0 +1,467 @@
+--- newlib/libc/sys/psp/Makefile.in.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/Makefile.in 2007-06-01 12:22:26.000000000 +0300
+@@ -0,0 +1,464 @@
++# Makefile.in generated by automake 1.9.6 from Makefile.am.
++# @configure_input@
++
++# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
++# 2003, 2004, 2005 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.
++
++@SET_MAKE@
++
++srcdir = @srcdir@
++top_srcdir = @top_srcdir@
++VPATH = @srcdir@
++pkgdatadir = $(datadir)/@PACKAGE@
++pkglibdir = $(libdir)/@PACKAGE@
++pkgincludedir = $(includedir)/@PACKAGE@
++top_builddir = .
++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
++INSTALL = @INSTALL@
++install_sh_DATA = $(install_sh) -c -m 644
++install_sh_PROGRAM = $(install_sh) -c
++install_sh_SCRIPT = $(install_sh) -c
++INSTALL_HEADER = $(INSTALL_DATA)
++transform = $(program_transform_name)
++NORMAL_INSTALL = :
++PRE_INSTALL = :
++POST_INSTALL = :
++NORMAL_UNINSTALL = :
++PRE_UNINSTALL = :
++POST_UNINSTALL = :
++build_triplet = @build@
++host_triplet = @host@
++DIST_COMMON = $(srcdir)/../../../../config.guess \
++ $(srcdir)/../../../../config.sub README $(srcdir)/Makefile.in \
++ $(srcdir)/Makefile.am $(top_srcdir)/configure \
++ $(am__configure_deps) $(srcdir)/../../../../mkinstalldirs
++subdir = .
++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
++am__aclocal_m4_deps = $(top_srcdir)/../../../acinclude.m4 \
++ $(top_srcdir)/configure.in
++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
++ $(ACLOCAL_M4)
++am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
++ configure.lineno configure.status.lineno
++mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs
++CONFIG_CLEAN_FILES =
++LIBRARIES = $(noinst_LIBRARIES)
++ARFLAGS = cru
++lib_a_AR = $(AR) $(ARFLAGS)
++am__DEPENDENCIES_1 = _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 nanosleep.o
++am__DEPENDENCIES_2 = 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
++am__DEPENDENCIES_3 = 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
++am__DEPENDENCIES_4 = h_errno.o gethostbyaddr.o gethostbyname.o
++am__DEPENDENCIES_5 = fdman.o
++am__DEPENDENCIES_6 = select.o
++am__DEPENDENCIES_7 = interrupt.o
++lib_a_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
++ $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_4) \
++ $(am__DEPENDENCIES_5) $(am__DEPENDENCIES_6) \
++ $(am__DEPENDENCIES_7)
++am_lib_a_OBJECTS = libcglue.$(OBJEXT) socket.$(OBJEXT) \
++ pspcwd.$(OBJEXT) xprintf.$(OBJEXT) netdb.$(OBJEXT) \
++ pipe.$(OBJEXT) fdman.$(OBJEXT) select.$(OBJEXT) \
++ syscalls.$(OBJEXT) interrupt.$(OBJEXT)
++lib_a_OBJECTS = $(am_lib_a_OBJECTS)
++DEFAULT_INCLUDES = -I. -I$(srcdir)
++depcomp =
++am__depfiles_maybe =
++CCASCOMPILE = $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS)
++COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
++CCLD = $(CC)
++LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
++SOURCES = $(lib_a_SOURCES)
++ETAGS = etags
++CTAGS = ctags
++ACLOCAL = @ACLOCAL@
++AMDEP_FALSE = @AMDEP_FALSE@
++AMDEP_TRUE = @AMDEP_TRUE@
++AMTAR = @AMTAR@
++AR = @AR@
++AS = @AS@
++AUTOCONF = @AUTOCONF@
++AUTOHEADER = @AUTOHEADER@
++AUTOMAKE = @AUTOMAKE@
++AWK = @AWK@
++CC = @CC@
++CCAS = @CCAS@
++CCASFLAGS = @CCASFLAGS@
++CCDEPMODE = @CCDEPMODE@
++CYGPATH_W = @CYGPATH_W@
++DEFS = @DEFS@
++DEPDIR = @DEPDIR@
++ECHO_C = @ECHO_C@
++ECHO_N = @ECHO_N@
++ECHO_T = @ECHO_T@
++ELIX_LEVEL_0_FALSE = @ELIX_LEVEL_0_FALSE@
++ELIX_LEVEL_0_TRUE = @ELIX_LEVEL_0_TRUE@
++ELIX_LEVEL_1_FALSE = @ELIX_LEVEL_1_FALSE@
++ELIX_LEVEL_1_TRUE = @ELIX_LEVEL_1_TRUE@
++ELIX_LEVEL_2_FALSE = @ELIX_LEVEL_2_FALSE@
++ELIX_LEVEL_2_TRUE = @ELIX_LEVEL_2_TRUE@
++ELIX_LEVEL_3_FALSE = @ELIX_LEVEL_3_FALSE@
++ELIX_LEVEL_3_TRUE = @ELIX_LEVEL_3_TRUE@
++ELIX_LEVEL_4_FALSE = @ELIX_LEVEL_4_FALSE@
++ELIX_LEVEL_4_TRUE = @ELIX_LEVEL_4_TRUE@
++INSTALL_DATA = @INSTALL_DATA@
++INSTALL_PROGRAM = @INSTALL_PROGRAM@
++INSTALL_SCRIPT = @INSTALL_SCRIPT@
++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
++LDFLAGS = @LDFLAGS@
++LIBOBJS = @LIBOBJS@
++LIBS = @LIBS@
++LTLIBOBJS = @LTLIBOBJS@
++MAINT = @MAINT@
++MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
++MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
++MAKEINFO = @MAKEINFO@
++MAY_SUPPLY_SYSCALLS_FALSE = @MAY_SUPPLY_SYSCALLS_FALSE@
++MAY_SUPPLY_SYSCALLS_TRUE = @MAY_SUPPLY_SYSCALLS_TRUE@
++NEWLIB_CFLAGS = @NEWLIB_CFLAGS@
++OBJEXT = @OBJEXT@
++PACKAGE = @PACKAGE@
++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
++PACKAGE_NAME = @PACKAGE_NAME@
++PACKAGE_STRING = @PACKAGE_STRING@
++PACKAGE_TARNAME = @PACKAGE_TARNAME@
++PACKAGE_VERSION = @PACKAGE_VERSION@
++PATH_SEPARATOR = @PATH_SEPARATOR@
++RANLIB = @RANLIB@
++READELF = @READELF@
++SET_MAKE = @SET_MAKE@
++SHELL = @SHELL@
++STRIP = @STRIP@
++USE_LIBTOOL_FALSE = @USE_LIBTOOL_FALSE@
++USE_LIBTOOL_TRUE = @USE_LIBTOOL_TRUE@
++VERSION = @VERSION@
++aext = @aext@
++am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
++am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
++am__include = @am__include@
++am__leading_dot = @am__leading_dot@
++am__quote = @am__quote@
++am__tar = @am__tar@
++am__untar = @am__untar@
++bindir = @bindir@
++build = @build@
++build_alias = @build_alias@
++build_cpu = @build_cpu@
++build_os = @build_os@
++build_vendor = @build_vendor@
++datadir = @datadir@
++datarootdir = @datarootdir@
++docdir = @docdir@
++dvidir = @dvidir@
++exec_prefix = @exec_prefix@
++host = @host@
++host_alias = @host_alias@
++host_cpu = @host_cpu@
++host_os = @host_os@
++host_vendor = @host_vendor@
++htmldir = @htmldir@
++includedir = @includedir@
++infodir = @infodir@
++install_sh = @install_sh@
++libdir = @libdir@
++libexecdir = @libexecdir@
++libm_machine_dir = @libm_machine_dir@
++localedir = @localedir@
++localstatedir = @localstatedir@
++lpfx = @lpfx@
++machine_dir = @machine_dir@
++mandir = @mandir@
++mkdir_p = @mkdir_p@
++newlib_basedir = @newlib_basedir@
++oext = @oext@
++oldincludedir = @oldincludedir@
++pdfdir = @pdfdir@
++prefix = @prefix@
++program_transform_name = @program_transform_name@
++psdir = @psdir@
++sbindir = @sbindir@
++sharedstatedir = @sharedstatedir@
++sys_dir = @sys_dir@
++sysconfdir = @sysconfdir@
++target_alias = @target_alias@
++AUTOMAKE_OPTIONS = cygnus
++INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
++AM_CCASFLAGS = $(INCLUDES) $(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 nanosleep.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
++
++PE_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 syscalls.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
++all: all-am
++
++.SUFFIXES:
++.SUFFIXES: .S .c .o .obj
++am--refresh:
++ @:
++$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
++ @for dep in $?; do \
++ case '$(am__configure_deps)' in \
++ *$$dep*) \
++ echo ' cd $(srcdir) && $(AUTOMAKE) --cygnus '; \
++ cd $(srcdir) && $(AUTOMAKE) --cygnus \
++ && exit 0; \
++ exit 1;; \
++ esac; \
++ done; \
++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile'; \
++ cd $(top_srcdir) && \
++ $(AUTOMAKE) --cygnus Makefile
++.PRECIOUS: Makefile
++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
++ @case '$?' in \
++ *config.status*) \
++ echo ' $(SHELL) ./config.status'; \
++ $(SHELL) ./config.status;; \
++ *) \
++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
++ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
++ esac;
++
++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
++ $(SHELL) ./config.status --recheck
++
++$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
++ cd $(srcdir) && $(AUTOCONF)
++$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
++ cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
++
++clean-noinstLIBRARIES:
++ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
++lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES)
++ -rm -f lib.a
++ $(lib_a_AR) lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD)
++ $(RANLIB) lib.a
++
++mostlyclean-compile:
++ -rm -f *.$(OBJEXT)
++
++distclean-compile:
++ -rm -f *.tab.c
++
++.S.o:
++ $(CCASCOMPILE) -c $<
++
++.S.obj:
++ $(CCASCOMPILE) -c `$(CYGPATH_W) '$<'`
++
++.c.o:
++ $(COMPILE) -c $<
++
++.c.obj:
++ $(COMPILE) -c `$(CYGPATH_W) '$<'`
++uninstall-info-am:
++
++ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
++ unique=`for i in $$list; do \
++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
++ done | \
++ $(AWK) ' { files[$$0] = 1; } \
++ END { for (i in files) print i; }'`; \
++ mkid -fID $$unique
++tags: TAGS
++
++TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
++ $(TAGS_FILES) $(LISP)
++ tags=; \
++ here=`pwd`; \
++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
++ unique=`for i in $$list; do \
++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
++ done | \
++ $(AWK) ' { files[$$0] = 1; } \
++ END { for (i in files) print i; }'`; \
++ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
++ test -n "$$unique" || unique=$$empty_fix; \
++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
++ $$tags $$unique; \
++ fi
++ctags: CTAGS
++CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
++ $(TAGS_FILES) $(LISP)
++ tags=; \
++ here=`pwd`; \
++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
++ unique=`for i in $$list; do \
++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
++ done | \
++ $(AWK) ' { files[$$0] = 1; } \
++ END { for (i in files) print i; }'`; \
++ test -z "$(CTAGS_ARGS)$$tags$$unique" \
++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
++ $$tags $$unique
++
++GTAGS:
++ here=`$(am__cd) $(top_builddir) && pwd` \
++ && cd $(top_srcdir) \
++ && gtags -i $(GTAGS_ARGS) $$here
++
++distclean-tags:
++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
++check-am:
++check: check-am
++all-am: Makefile $(LIBRARIES)
++installdirs:
++install: install-am
++install-exec: install-exec-am
++install-data: install-data-am
++uninstall: uninstall-am
++
++install-am: all-am
++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
++
++installcheck: installcheck-am
++install-strip:
++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
++ `test -z '$(STRIP)' || \
++ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
++mostlyclean-generic:
++
++clean-generic:
++
++distclean-generic:
++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
++
++maintainer-clean-generic:
++ @echo "This command is intended for maintainers to use"
++ @echo "it deletes files that may require special tools to rebuild."
++clean: clean-am
++
++clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
++
++distclean: distclean-am
++ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
++ -rm -f Makefile
++distclean-am: clean-am distclean-compile distclean-generic \
++ distclean-tags
++
++dvi: dvi-am
++
++dvi-am:
++
++html: html-am
++
++info: info-am
++
++info-am:
++
++install-data-am:
++
++install-exec-am:
++
++install-info: install-info-am
++
++install-man:
++
++installcheck-am:
++
++maintainer-clean: maintainer-clean-am
++ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
++ -rm -rf $(top_srcdir)/autom4te.cache
++ -rm -f Makefile
++maintainer-clean-am: distclean-am maintainer-clean-generic
++
++mostlyclean: mostlyclean-am
++
++mostlyclean-am: mostlyclean-compile mostlyclean-generic
++
++pdf: pdf-am
++
++pdf-am:
++
++ps: ps-am
++
++ps-am:
++
++uninstall-am:
++
++.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
++ clean-generic clean-noinstLIBRARIES ctags distclean \
++ distclean-compile distclean-generic distclean-tags dvi dvi-am \
++ html html-am info info-am install install-am install-data \
++ install-data-am install-exec install-exec-am install-info \
++ install-info-am install-man install-strip installcheck \
++ installcheck-am installdirs maintainer-clean \
++ maintainer-clean-generic mostlyclean mostlyclean-compile \
++ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
++ uninstall-am uninstall-info-am
++
++
++all: crt0.o
++
++$(LIBCGLUE_MULT_OBJS): libcglue.c
++ $(COMPILE) -DF_$* $< -c -o $@
++
++$(SOCKET_MULT_OBJS): socket.c
++ $(COMPILE) -DF_$* $< -c -o $@
++
++$(XPRINTF_MULT_OBJS): xprintf.c
++ $(COMPILE) -DF_$* $< -c -o $@
++
++$(NETDB_MULT_OBJS): netdb.c
++ $(COMPILE) -DF_$* $< -c -o $@
++
++$(PIPE_OBJS): pipe.c
++ $(COMPILE) -DF_$* $< -c -o $@
++
++$(FDMAN_OBJS): fdman.c
++ $(COMPILE) -DF_$* $< -c -o $@
++
++$(SELECT_OBJS): select.c
++ $(COMPILE) -DF_$* $< -c -o $@
++
++$(INTERRUPT_OBJS): interrupt.S
++ $(COMPILE) -DF_$* $< -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:
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-README b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-README
new file mode 100644
index 000000000000..bdc790b3bdec
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-README
@@ -0,0 +1,19 @@
+--- newlib/libc/sys/psp/README.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/README 2007-06-01 12:22:26.000000000 +0300
+@@ -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 <mrbrown@ocgnet.org>
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-aclocal.m4 b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-aclocal.m4
new file mode 100644
index 000000000000..3ec457ea6298
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-aclocal.m4
@@ -0,0 +1,883 @@
+--- newlib/libc/sys/psp/aclocal.m4.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/aclocal.m4 2007-06-01 12:22:26.000000000 +0300
+@@ -0,0 +1,880 @@
++# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
++
++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
++# 2005 Free Software Foundation, Inc.
++# This file 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.
++
++# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
++#
++# This file 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.
++
++# 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.9"])
++
++# 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.9.6])])
++
++# AM_AUX_DIR_EXPAND -*- Autoconf -*-
++
++# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
++#
++# This file 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.
++
++# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
++# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
++# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
++#
++# Of course, Automake must honor this variable whenever it calls a
++# tool from the auxiliary directory. The problem is that $srcdir (and
++# therefore $ac_aux_dir as well) can be either absolute or relative,
++# depending on how configure is run. This is pretty annoying, since
++# it makes $ac_aux_dir quite unusable in subdirectories: in the top
++# source directory, any form will work fine, but in subdirectories a
++# relative path needs to be adjusted first.
++#
++# $ac_aux_dir/missing
++# fails when called from a subdirectory if $ac_aux_dir is relative
++# $top_srcdir/$ac_aux_dir/missing
++# fails if $ac_aux_dir is absolute,
++# fails when called from a subdirectory in a VPATH build with
++# a relative $ac_aux_dir
++#
++# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
++# are both prefixed by $srcdir. In an in-source build this is usually
++# harmless because $srcdir is `.', but things will broke when you
++# start a VPATH build or use an absolute $srcdir.
++#
++# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
++# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
++# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
++# and then we would define $MISSING as
++# MISSING="\${SHELL} $am_aux_dir/missing"
++# This will work as long as MISSING is not called from configure, because
++# unfortunately $(top_srcdir) has no meaning in configure.
++# However there are other variables, like CC, which are often used in
++# configure, and could therefore not use this "fixed" $ac_aux_dir.
++#
++# Another solution, used here, is to always expand $ac_aux_dir to an
++# absolute PATH. The drawback is that using absolute paths prevent a
++# configured tree to be moved without reconfiguration.
++
++AC_DEFUN([AM_AUX_DIR_EXPAND],
++[dnl Rely on autoconf to set up CDPATH properly.
++AC_PREREQ([2.50])dnl
++# expand $ac_aux_dir to an absolute path
++am_aux_dir=`cd $ac_aux_dir && pwd`
++])
++
++# AM_CONDITIONAL -*- Autoconf -*-
++
++# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
++# Free Software Foundation, Inc.
++#
++# This file 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.
++
++# serial 7
++
++# AM_CONDITIONAL(NAME, SHELL-CONDITION)
++# -------------------------------------
++# Define a conditional.
++AC_DEFUN([AM_CONDITIONAL],
++[AC_PREREQ(2.52)dnl
++ ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
++ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
++AC_SUBST([$1_TRUE])
++AC_SUBST([$1_FALSE])
++if $2; then
++ $1_TRUE=
++ $1_FALSE='#'
++else
++ $1_TRUE='#'
++ $1_FALSE=
++fi
++AC_CONFIG_COMMANDS_PRE(
++[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
++ AC_MSG_ERROR([[conditional "$1" was never defined.
++Usually this means the macro was only invoked conditionally.]])
++fi])])
++
++
++# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
++# Free Software Foundation, Inc.
++#
++# This file 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.
++
++# serial 8
++
++# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
++# written in clear, in which case automake, when reading aclocal.m4,
++# will think it sees a *use*, and therefore will trigger all it's
++# C support machinery. Also note that it means that autoscan, seeing
++# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
++
++
++# _AM_DEPENDENCIES(NAME)
++# ----------------------
++# See how the compiler implements dependency checking.
++# NAME is "CC", "CXX", "GCJ", or "OBJC".
++# We try a few techniques and use that to set a single cache variable.
++#
++# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
++# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
++# dependency, and given that the user is not expected to run this macro,
++# just rely on AC_PROG_CC.
++AC_DEFUN([_AM_DEPENDENCIES],
++[AC_REQUIRE([AM_SET_DEPDIR])dnl
++AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
++AC_REQUIRE([AM_MAKE_INCLUDE])dnl
++AC_REQUIRE([AM_DEP_TRACK])dnl
++
++ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
++ [$1], CXX, [depcc="$CXX" am_compiler_list=],
++ [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
++ [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
++ [depcc="$$1" am_compiler_list=])
++
++AC_CACHE_CHECK([dependency style of $depcc],
++ [am_cv_$1_dependencies_compiler_type],
++[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
++ # We make a subdir and do the tests there. Otherwise we can end up
++ # making bogus files that we don't know about and never remove. For
++ # instance it was reported that on HP-UX the gcc test will end up
++ # making a dummy file named `D' -- because `-MD' means `put the output
++ # in D'.
++ mkdir conftest.dir
++ # Copy depcomp to subdir because otherwise we won't find it if we're
++ # using a relative directory.
++ cp "$am_depcomp" conftest.dir
++ cd conftest.dir
++ # We will build objects and dependencies in a subdirectory because
++ # it helps to detect inapplicable dependency modes. For instance
++ # both Tru64's cc and ICC support -MD to output dependencies as a
++ # side effect of compilation, but ICC will put the dependencies in
++ # the current directory while Tru64 will put them in the object
++ # directory.
++ mkdir sub
++
++ am_cv_$1_dependencies_compiler_type=none
++ if test "$am_compiler_list" = ""; then
++ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
++ fi
++ for depmode in $am_compiler_list; do
++ # Setup a source with many dependencies, because some compilers
++ # like to wrap large dependency lists on column 80 (with \), and
++ # we should not choose a depcomp mode which is confused by this.
++ #
++ # We need to recreate these files for each test, as the compiler may
++ # overwrite some of them when testing with obscure command lines.
++ # This happens at least with the AIX C compiler.
++ : > sub/conftest.c
++ for i in 1 2 3 4 5 6; do
++ echo '#include "conftst'$i'.h"' >> sub/conftest.c
++ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
++ # Solaris 8's {/usr,}/bin/sh.
++ touch sub/conftst$i.h
++ done
++ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
++
++ case $depmode in
++ nosideeffect)
++ # after this tag, mechanisms are not by side-effect, so they'll
++ # only be used when explicitly requested
++ if test "x$enable_dependency_tracking" = xyes; then
++ continue
++ else
++ break
++ fi
++ ;;
++ none) break ;;
++ esac
++ # We check with `-c' and `-o' for the sake of the "dashmstdout"
++ # mode. It turns out that the SunPro C++ compiler does not properly
++ # handle `-M -o', and we need to detect this.
++ if depmode=$depmode \
++ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
++ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
++ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
++ >/dev/null 2>conftest.err &&
++ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
++ grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
++ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
++ # icc doesn't choke on unknown options, it will just issue warnings
++ # or remarks (even with -Werror). So we grep stderr for any message
++ # that says an option was ignored or not supported.
++ # When given -MP, icc 7.0 and 7.1 complain thusly:
++ # icc: Command line warning: ignoring option '-M'; no argument required
++ # The diagnosis changed in icc 8.0:
++ # icc: Command line remark: option '-MP' not supported
++ if (grep 'ignoring option' conftest.err ||
++ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
++ am_cv_$1_dependencies_compiler_type=$depmode
++ break
++ fi
++ fi
++ done
++
++ cd ..
++ rm -rf conftest.dir
++else
++ am_cv_$1_dependencies_compiler_type=none
++fi
++])
++AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
++AM_CONDITIONAL([am__fastdep$1], [
++ test "x$enable_dependency_tracking" != xno \
++ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
++])
++
++
++# AM_SET_DEPDIR
++# -------------
++# Choose a directory name for dependency files.
++# This macro is AC_REQUIREd in _AM_DEPENDENCIES
++AC_DEFUN([AM_SET_DEPDIR],
++[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
++AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
++])
++
++
++# AM_DEP_TRACK
++# ------------
++AC_DEFUN([AM_DEP_TRACK],
++[AC_ARG_ENABLE(dependency-tracking,
++[ --disable-dependency-tracking speeds up one-time build
++ --enable-dependency-tracking do not reject slow dependency extractors])
++if test "x$enable_dependency_tracking" != xno; then
++ am_depcomp="$ac_aux_dir/depcomp"
++ AMDEPBACKSLASH='\'
++fi
++AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
++AC_SUBST([AMDEPBACKSLASH])
++])
++
++# Generate code to set up dependency tracking. -*- Autoconf -*-
++
++# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
++# Free Software Foundation, Inc.
++#
++# This file 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.
++
++#serial 3
++
++# _AM_OUTPUT_DEPENDENCY_COMMANDS
++# ------------------------------
++AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
++[for mf in $CONFIG_FILES; do
++ # Strip MF so we end up with the name of the file.
++ mf=`echo "$mf" | sed -e 's/:.*$//'`
++ # Check whether this is an Automake generated Makefile or not.
++ # We used to match only the files named `Makefile.in', but
++ # some people rename them; so instead we look at the file content.
++ # Grep'ing the first line is not enough: some people post-process
++ # each Makefile.in and add a new line on top of each file to say so.
++ # So let's grep whole file.
++ if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
++ dirpart=`AS_DIRNAME("$mf")`
++ else
++ continue
++ fi
++ # Extract the definition of DEPDIR, am__include, and am__quote
++ # from the Makefile without running `make'.
++ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
++ test -z "$DEPDIR" && continue
++ am__include=`sed -n 's/^am__include = //p' < "$mf"`
++ test -z "am__include" && continue
++ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
++ # When using ansi2knr, U may be empty or an underscore; expand it
++ U=`sed -n 's/^U = //p' < "$mf"`
++ # Find all dependency output files, they are included files with
++ # $(DEPDIR) in their names. We invoke sed twice because it is the
++ # simplest approach to changing $(DEPDIR) to its actual value in the
++ # expansion.
++ for file in `sed -n "
++ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
++ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
++ # Make sure the directory exists.
++ test -f "$dirpart/$file" && continue
++ fdir=`AS_DIRNAME(["$file"])`
++ AS_MKDIR_P([$dirpart/$fdir])
++ # echo "creating $dirpart/$file"
++ echo '# dummy' > "$dirpart/$file"
++ done
++done
++])# _AM_OUTPUT_DEPENDENCY_COMMANDS
++
++
++# AM_OUTPUT_DEPENDENCY_COMMANDS
++# -----------------------------
++# This macro should only be invoked once -- use via AC_REQUIRE.
++#
++# This code is only required when automatic dependency tracking
++# is enabled. FIXME. This creates each `.P' file that we will
++# need in order to bootstrap the dependency handling code.
++AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
++[AC_CONFIG_COMMANDS([depfiles],
++ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
++ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
++])
++
++# Do all the work for Automake. -*- Autoconf -*-
++
++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
++# Free Software Foundation, Inc.
++#
++# This file 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.
++
++# serial 12
++
++# 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.
++
++# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
++# AM_INIT_AUTOMAKE([OPTIONS])
++# -----------------------------------------------
++# The call with PACKAGE and VERSION arguments is the old style
++# call (pre autoconf-2.50), which is being phased out. PACKAGE
++# and VERSION should now be passed to AC_INIT and removed from
++# the call to AM_INIT_AUTOMAKE.
++# We support both call styles for the transition. After
++# the next Automake release, Autoconf can make the AC_INIT
++# arguments mandatory, and then we can depend on a new Autoconf
++# release and drop the old call support.
++AC_DEFUN([AM_INIT_AUTOMAKE],
++[AC_PREREQ([2.58])dnl
++dnl Autoconf wants to disallow AM_ names. We explicitly allow
++dnl the ones we care about.
++m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
++AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
++AC_REQUIRE([AC_PROG_INSTALL])dnl
++# test to see if srcdir already configured
++if test "`cd $srcdir && pwd`" != "`pwd`" &&
++ test -f $srcdir/config.status; then
++ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
++fi
++
++# test whether we have cygpath
++if test -z "$CYGPATH_W"; then
++ if (cygpath --version) >/dev/null 2>/dev/null; then
++ CYGPATH_W='cygpath -w'
++ else
++ CYGPATH_W=echo
++ fi
++fi
++AC_SUBST([CYGPATH_W])
++
++# Define the identity of the package.
++dnl Distinguish between old-style and new-style calls.
++m4_ifval([$2],
++[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
++ AC_SUBST([PACKAGE], [$1])dnl
++ AC_SUBST([VERSION], [$2])],
++[_AM_SET_OPTIONS([$1])dnl
++ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
++ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
++
++_AM_IF_OPTION([no-define],,
++[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
++ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
++
++# Some tools Automake needs.
++AC_REQUIRE([AM_SANITY_CHECK])dnl
++AC_REQUIRE([AC_ARG_PROGRAM])dnl
++AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
++AM_MISSING_PROG(AUTOCONF, autoconf)
++AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
++AM_MISSING_PROG(AUTOHEADER, autoheader)
++AM_MISSING_PROG(MAKEINFO, makeinfo)
++AM_PROG_INSTALL_SH
++AM_PROG_INSTALL_STRIP
++AC_REQUIRE([AM_PROG_MKDIR_P])dnl
++# We need awk for the "check" target. The system "awk" is bad on
++# some platforms.
++AC_REQUIRE([AC_PROG_AWK])dnl
++AC_REQUIRE([AC_PROG_MAKE_SET])dnl
++AC_REQUIRE([AM_SET_LEADING_DOT])dnl
++_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
++ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
++ [_AM_PROG_TAR([v7])])])
++_AM_IF_OPTION([no-dependencies],,
++[AC_PROVIDE_IFELSE([AC_PROG_CC],
++ [_AM_DEPENDENCIES(CC)],
++ [define([AC_PROG_CC],
++ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
++AC_PROVIDE_IFELSE([AC_PROG_CXX],
++ [_AM_DEPENDENCIES(CXX)],
++ [define([AC_PROG_CXX],
++ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
++])
++])
++
++
++# When config.status generates a header, we must update the stamp-h file.
++# This file resides in the same directory as the config header
++# that is generated. The stamp files are numbered to have different names.
++
++# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
++# loop where config.status creates the headers, so we can generate
++# our stamp files there.
++AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
++[# Compute $1's index in $config_headers.
++_am_stamp_count=1
++for _am_header in $config_headers :; do
++ case $_am_header in
++ $1 | $1:* )
++ break ;;
++ * )
++ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
++ esac
++done
++echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
++
++# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
++#
++# This file 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.
++
++# AM_PROG_INSTALL_SH
++# ------------------
++# Define $install_sh.
++AC_DEFUN([AM_PROG_INSTALL_SH],
++[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
++install_sh=${install_sh-"$am_aux_dir/install-sh"}
++AC_SUBST(install_sh)])
++
++# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
++#
++# This file 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.
++
++# serial 2
++
++# Check whether the underlying file-system supports filenames
++# with a leading dot. For instance MS-DOS doesn't.
++AC_DEFUN([AM_SET_LEADING_DOT],
++[rm -rf .tst 2>/dev/null
++mkdir .tst 2>/dev/null
++if test -d .tst; then
++ am__leading_dot=.
++else
++ am__leading_dot=_
++fi
++rmdir .tst 2>/dev/null
++AC_SUBST([am__leading_dot])])
++
++# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
++# From Jim Meyering
++
++# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005
++# Free Software Foundation, Inc.
++#
++# This file 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.
++
++# serial 4
++
++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
++]
++)
++
++AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
++
++# Check to see how 'make' treats includes. -*- Autoconf -*-
++
++# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
++#
++# This file 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.
++
++# serial 3
++
++# AM_MAKE_INCLUDE()
++# -----------------
++# Check to see how make treats includes.
++AC_DEFUN([AM_MAKE_INCLUDE],
++[am_make=${MAKE-make}
++cat > confinc << 'END'
++am__doit:
++ @echo done
++.PHONY: am__doit
++END
++# If we don't find an include directive, just comment out the code.
++AC_MSG_CHECKING([for style of include used by $am_make])
++am__include="#"
++am__quote=
++_am_result=none
++# First try GNU make style include.
++echo "include confinc" > confmf
++# We grep out `Entering directory' and `Leaving directory'
++# messages which can occur if `w' ends up in MAKEFLAGS.
++# In particular we don't look at `^make:' because GNU make might
++# be invoked under some other name (usually "gmake"), in which
++# case it prints its new name instead of `make'.
++if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
++ am__include=include
++ am__quote=
++ _am_result=GNU
++fi
++# Now try BSD make style include.
++if test "$am__include" = "#"; then
++ echo '.include "confinc"' > confmf
++ if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
++ am__include=.include
++ am__quote="\""
++ _am_result=BSD
++ fi
++fi
++AC_SUBST([am__include])
++AC_SUBST([am__quote])
++AC_MSG_RESULT([$_am_result])
++rm -f confinc confmf
++])
++
++# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
++
++# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
++# Free Software Foundation, Inc.
++#
++# This file 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.
++
++# serial 4
++
++# AM_MISSING_PROG(NAME, PROGRAM)
++# ------------------------------
++AC_DEFUN([AM_MISSING_PROG],
++[AC_REQUIRE([AM_MISSING_HAS_RUN])
++$1=${$1-"${am_missing_run}$2"}
++AC_SUBST($1)])
++
++
++# AM_MISSING_HAS_RUN
++# ------------------
++# Define MISSING if not defined so far and test if it supports --run.
++# If it does, set am_missing_run to use it, otherwise, to nothing.
++AC_DEFUN([AM_MISSING_HAS_RUN],
++[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
++test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
++# Use eval to expand $SHELL
++if eval "$MISSING --run true"; then
++ am_missing_run="$MISSING --run "
++else
++ am_missing_run=
++ AC_MSG_WARN([`missing' script is too old or missing])
++fi
++])
++
++# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
++#
++# This file 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.
++
++# AM_PROG_MKDIR_P
++# ---------------
++# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
++#
++# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
++# created by `make install' are always world readable, even if the
++# installer happens to have an overly restrictive umask (e.g. 077).
++# This was a mistake. There are at least two reasons why we must not
++# use `-m 0755':
++# - it causes special bits like SGID to be ignored,
++# - it may be too restrictive (some setups expect 775 directories).
++#
++# Do not use -m 0755 and let people choose whatever they expect by
++# setting umask.
++#
++# We cannot accept any implementation of `mkdir' that recognizes `-p'.
++# Some implementations (such as Solaris 8's) are not thread-safe: if a
++# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
++# concurrently, both version can detect that a/ is missing, but only
++# one can create it and the other will error out. Consequently we
++# restrict ourselves to GNU make (using the --version option ensures
++# this.)
++AC_DEFUN([AM_PROG_MKDIR_P],
++[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
++ # We used to keeping the `.' as first argument, in order to
++ # allow $(mkdir_p) to be used without argument. As in
++ # $(mkdir_p) $(somedir)
++ # where $(somedir) is conditionally defined. However this is wrong
++ # for two reasons:
++ # 1. if the package is installed by a user who cannot write `.'
++ # make install will fail,
++ # 2. the above comment should most certainly read
++ # $(mkdir_p) $(DESTDIR)$(somedir)
++ # so it does not work when $(somedir) is undefined and
++ # $(DESTDIR) is not.
++ # To support the latter case, we have to write
++ # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
++ # so the `.' trick is pointless.
++ mkdir_p='mkdir -p --'
++else
++ # On NextStep and OpenStep, the `mkdir' command does not
++ # recognize any option. It will interpret all options as
++ # directories to create, and then abort because `.' already
++ # exists.
++ for d in ./-p ./--version;
++ do
++ test -d $d && rmdir $d
++ done
++ # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
++ if test -f "$ac_aux_dir/mkinstalldirs"; then
++ mkdir_p='$(mkinstalldirs)'
++ else
++ mkdir_p='$(install_sh) -d'
++ fi
++fi
++AC_SUBST([mkdir_p])])
++
++# Helper functions for option handling. -*- Autoconf -*-
++
++# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
++#
++# This file 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.
++
++# serial 3
++
++# _AM_MANGLE_OPTION(NAME)
++# -----------------------
++AC_DEFUN([_AM_MANGLE_OPTION],
++[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
++
++# _AM_SET_OPTION(NAME)
++# ------------------------------
++# Set option NAME. Presently that only means defining a flag for this option.
++AC_DEFUN([_AM_SET_OPTION],
++[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
++
++# _AM_SET_OPTIONS(OPTIONS)
++# ----------------------------------
++# OPTIONS is a space-separated list of Automake options.
++AC_DEFUN([_AM_SET_OPTIONS],
++[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
++
++# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
++# -------------------------------------------
++# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
++AC_DEFUN([_AM_IF_OPTION],
++[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
++
++# Check to make sure that the build environment is sane. -*- Autoconf -*-
++
++# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
++# Free Software Foundation, Inc.
++#
++# This file 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.
++
++# serial 4
++
++# AM_SANITY_CHECK
++# ---------------
++AC_DEFUN([AM_SANITY_CHECK],
++[AC_MSG_CHECKING([whether build environment is sane])
++# Just in case
++sleep 1
++echo timestamp > conftest.file
++# 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 conftest.file 2> /dev/null`
++ if test "$[*]" = "X"; then
++ # -L didn't work.
++ set X `ls -t $srcdir/configure conftest.file`
++ fi
++ rm -f conftest.file
++ if test "$[*]" != "X $srcdir/configure conftest.file" \
++ && test "$[*]" != "X conftest.file $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]" = conftest.file
++ )
++then
++ # Ok.
++ :
++else
++ AC_MSG_ERROR([newly created file is older than distributed files!
++Check your system clock])
++fi
++AC_MSG_RESULT(yes)])
++
++# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
++#
++# This file 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.
++
++# AM_PROG_INSTALL_STRIP
++# ---------------------
++# One issue with vendor `install' (even GNU) is that you can't
++# specify the program used to strip binaries. This is especially
++# annoying in cross-compiling environments, where the build's strip
++# is unlikely to handle the host's binaries.
++# Fortunately install-sh will honor a STRIPPROG variable, so we
++# always use install-sh in `make install-strip', and initialize
++# STRIPPROG with the value of the STRIP variable (set by the user).
++AC_DEFUN([AM_PROG_INSTALL_STRIP],
++[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
++# Installed binaries are usually stripped using `strip' when the user
++# run `make install-strip'. However `strip' might not be the right
++# tool to use in cross-compilation environments, therefore Automake
++# will honor the `STRIP' environment variable to overrule this program.
++dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
++if test "$cross_compiling" != no; then
++ AC_CHECK_TOOL([STRIP], [strip], :)
++fi
++INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
++AC_SUBST([INSTALL_STRIP_PROGRAM])])
++
++# Check how to create a tarball. -*- Autoconf -*-
++
++# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
++#
++# This file 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.
++
++# serial 2
++
++# _AM_PROG_TAR(FORMAT)
++# --------------------
++# Check how to create a tarball in format FORMAT.
++# FORMAT should be one of `v7', `ustar', or `pax'.
++#
++# Substitute a variable $(am__tar) that is a command
++# writing to stdout a FORMAT-tarball containing the directory
++# $tardir.
++# tardir=directory && $(am__tar) > result.tar
++#
++# Substitute a variable $(am__untar) that extract such
++# a tarball read from stdin.
++# $(am__untar) < result.tar
++AC_DEFUN([_AM_PROG_TAR],
++[# Always define AMTAR for backward compatibility.
++AM_MISSING_PROG([AMTAR], [tar])
++m4_if([$1], [v7],
++ [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
++ [m4_case([$1], [ustar],, [pax],,
++ [m4_fatal([Unknown tar format])])
++AC_MSG_CHECKING([how to create a $1 tar archive])
++# Loop over all known methods to create a tar archive until one works.
++_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
++_am_tools=${am_cv_prog_tar_$1-$_am_tools}
++# Do not fold the above two line into one, because Tru64 sh and
++# Solaris sh will not grok spaces in the rhs of `-'.
++for _am_tool in $_am_tools
++do
++ case $_am_tool in
++ gnutar)
++ for _am_tar in tar gnutar gtar;
++ do
++ AM_RUN_LOG([$_am_tar --version]) && break
++ done
++ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
++ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
++ am__untar="$_am_tar -xf -"
++ ;;
++ plaintar)
++ # Must skip GNU tar: if it does not support --format= it doesn't create
++ # ustar tarball either.
++ (tar --version) >/dev/null 2>&1 && continue
++ am__tar='tar chf - "$$tardir"'
++ am__tar_='tar chf - "$tardir"'
++ am__untar='tar xf -'
++ ;;
++ pax)
++ am__tar='pax -L -x $1 -w "$$tardir"'
++ am__tar_='pax -L -x $1 -w "$tardir"'
++ am__untar='pax -r'
++ ;;
++ cpio)
++ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
++ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
++ am__untar='cpio -i -H $1 -d'
++ ;;
++ none)
++ am__tar=false
++ am__tar_=false
++ am__untar=false
++ ;;
++ esac
++
++ # If the value was cached, stop now. We just wanted to have am__tar
++ # and am__untar set.
++ test -n "${am_cv_prog_tar_$1}" && break
++
++ # tar/untar a dummy directory, and stop if the command works
++ rm -rf conftest.dir
++ mkdir conftest.dir
++ echo GrepMe > conftest.dir/file
++ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
++ rm -rf conftest.dir
++ if test -s conftest.tar; then
++ AM_RUN_LOG([$am__untar <conftest.tar])
++ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
++ fi
++done
++rm -rf conftest.dir
++
++AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
++AC_MSG_RESULT([$am_cv_prog_tar_$1])])
++AC_SUBST([am__tar])
++AC_SUBST([am__untar])
++]) # _AM_PROG_TAR
++
++m4_include([../../../acinclude.m4])
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-arpa-inet.h b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-arpa-inet.h
new file mode 100644
index 000000000000..e8fad4b3547b
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-arpa-inet.h
@@ -0,0 +1,29 @@
+--- newlib/libc/sys/psp/arpa/inet.h.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/arpa/inet.h 2007-06-01 12:22:26.000000000 +0300
+@@ -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 <netinet/in.h>
++
++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_ */
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-confdefs.h b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-confdefs.h
new file mode 100644
index 000000000000..0eb497377986
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-confdefs.h
@@ -0,0 +1,4 @@
+--- newlib/libc/sys/psp/confdefs.h.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/confdefs.h 2007-06-01 12:22:26.000000000 +0300
+@@ -0,0 +1 @@
++
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-configure b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-configure
new file mode 100644
index 000000000000..6356286ffd33
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-configure
@@ -0,0 +1,4089 @@
+--- newlib/libc/sys/psp/configure.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/configure 2007-06-01 12:22:26.000000000 +0300
+@@ -0,0 +1,4086 @@
++#! /bin/sh
++# Guess values for system-dependent variables and create Makefiles.
++# Generated by GNU Autoconf 2.59 for newlib 1.15.0.
++#
++# Copyright (C) 2003 Free Software Foundation, Inc.
++# This configure script is free software; the Free Software Foundation
++# gives unlimited permission to copy, distribute and modify it.
++## --------------------- ##
++## M4sh Initialization. ##
++## --------------------- ##
++
++# Be Bourne compatible
++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
++ emulate sh
++ NULLCMD=:
++ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
++ # is contrary to our usage. Disable this feature.
++ alias -g '${1+"$@"}'='"$@"'
++elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
++ set -o posix
++fi
++DUALCASE=1; export DUALCASE # for MKS sh
++
++# Support unset when possible.
++if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
++ as_unset=unset
++else
++ as_unset=false
++fi
++
++
++# Work around bugs in pre-3.0 UWIN ksh.
++$as_unset ENV MAIL MAILPATH
++PS1='$ '
++PS2='> '
++PS4='+ '
++
++# NLS nuisances.
++for as_var in \
++ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
++ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
++ LC_TELEPHONE LC_TIME
++do
++ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
++ eval $as_var=C; export $as_var
++ else
++ $as_unset $as_var
++ fi
++done
++
++# Required to use basename.
++if expr a : '\(a\)' >/dev/null 2>&1; then
++ as_expr=expr
++else
++ as_expr=false
++fi
++
++if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
++ as_basename=basename
++else
++ as_basename=false
++fi
++
++
++# Name of the executable.
++as_me=`$as_basename "$0" ||
++$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
++ X"$0" : 'X\(//\)$' \| \
++ X"$0" : 'X\(/\)$' \| \
++ . : '\(.\)' 2>/dev/null ||
++echo X/"$0" |
++ sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
++ /^X\/\(\/\/\)$/{ s//\1/; q; }
++ /^X\/\(\/\).*/{ s//\1/; q; }
++ s/.*/./; q'`
++
++
++# PATH needs CR, and LINENO needs CR and PATH.
++# Avoid depending upon Character Ranges.
++as_cr_letters='abcdefghijklmnopqrstuvwxyz'
++as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
++as_cr_Letters=$as_cr_letters$as_cr_LETTERS
++as_cr_digits='0123456789'
++as_cr_alnum=$as_cr_Letters$as_cr_digits
++
++# The user is always right.
++if test "${PATH_SEPARATOR+set}" != set; then
++ echo "#! /bin/sh" >conf$$.sh
++ echo "exit 0" >>conf$$.sh
++ chmod +x conf$$.sh
++ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
++ PATH_SEPARATOR=';'
++ else
++ PATH_SEPARATOR=:
++ fi
++ rm -f conf$$.sh
++fi
++
++
++ as_lineno_1=$LINENO
++ as_lineno_2=$LINENO
++ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
++ test "x$as_lineno_1" != "x$as_lineno_2" &&
++ test "x$as_lineno_3" = "x$as_lineno_2" || {
++ # Find who we are. Look in the path if we contain no path at all
++ # relative or not.
++ case $0 in
++ *[\\/]* ) as_myself=$0 ;;
++ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
++done
++
++ ;;
++ esac
++ # We did not find ourselves, most probably we were run as `sh COMMAND'
++ # in which case we are not to be found in the path.
++ if test "x$as_myself" = x; then
++ as_myself=$0
++ fi
++ if test ! -f "$as_myself"; then
++ { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
++ { (exit 1); exit 1; }; }
++ fi
++ case $CONFIG_SHELL in
++ '')
++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for as_base in sh bash ksh sh5; do
++ case $as_dir in
++ /*)
++ if ("$as_dir/$as_base" -c '
++ as_lineno_1=$LINENO
++ as_lineno_2=$LINENO
++ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
++ test "x$as_lineno_1" != "x$as_lineno_2" &&
++ test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
++ $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
++ $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
++ CONFIG_SHELL=$as_dir/$as_base
++ export CONFIG_SHELL
++ exec "$CONFIG_SHELL" "$0" ${1+"$@"}
++ fi;;
++ esac
++ done
++done
++;;
++ esac
++
++ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
++ # uniformly replaced by the line number. The first 'sed' inserts a
++ # line-number line before each line; the second 'sed' does the real
++ # work. The second script uses 'N' to pair each line-number line
++ # with the numbered line, and appends trailing '-' during
++ # substitution so that $LINENO is not a special case at line end.
++ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
++ # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
++ sed '=' <$as_myself |
++ sed '
++ N
++ s,$,-,
++ : loop
++ s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
++ t loop
++ s,-$,,
++ s,^['$as_cr_digits']*\n,,
++ ' >$as_me.lineno &&
++ chmod +x $as_me.lineno ||
++ { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
++ { (exit 1); exit 1; }; }
++
++ # Don't try to exec as it changes $[0], causing all sort of problems
++ # (the dirname of $[0] is not the place where we might find the
++ # original and so on. Autoconf is especially sensible to this).
++ . ./$as_me.lineno
++ # Exit status is that of the last command.
++ exit
++}
++
++
++case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
++ *c*,-n*) ECHO_N= ECHO_C='
++' ECHO_T=' ' ;;
++ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
++ *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
++esac
++
++if expr a : '\(a\)' >/dev/null 2>&1; then
++ as_expr=expr
++else
++ as_expr=false
++fi
++
++rm -f conf$$ conf$$.exe conf$$.file
++echo >conf$$.file
++if ln -s conf$$.file conf$$ 2>/dev/null; then
++ # We could just check for DJGPP; but this test a) works b) is more generic
++ # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
++ if test -f conf$$.exe; then
++ # Don't use ln at all; we don't have any links
++ as_ln_s='cp -p'
++ else
++ as_ln_s='ln -s'
++ fi
++elif ln conf$$.file conf$$ 2>/dev/null; then
++ as_ln_s=ln
++else
++ as_ln_s='cp -p'
++fi
++rm -f conf$$ conf$$.exe conf$$.file
++
++if mkdir -p . 2>/dev/null; then
++ as_mkdir_p=:
++else
++ test -d ./-p && rmdir ./-p
++ as_mkdir_p=false
++fi
++
++as_executable_p="test -f"
++
++# Sed expression to map a string onto a valid CPP name.
++as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
++
++# Sed expression to map a string onto a valid variable name.
++as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
++
++
++# IFS
++# We need space, tab and new line, in precisely that order.
++as_nl='
++'
++IFS=" $as_nl"
++
++# CDPATH.
++$as_unset CDPATH
++
++
++# Name of the host.
++# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
++# so uname gets run too.
++ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
++
++exec 6>&1
++
++#
++# Initializations.
++#
++ac_default_prefix=/usr/local
++ac_config_libobj_dir=.
++cross_compiling=no
++subdirs=
++MFLAGS=
++MAKEFLAGS=
++SHELL=${CONFIG_SHELL-/bin/sh}
++
++# Maximum number of lines to put in a shell here document.
++# This variable seems obsolete. It should probably be removed, and
++# only ac_max_sed_lines should be used.
++: ${ac_max_here_lines=38}
++
++# Identity of this package.
++PACKAGE_NAME='newlib'
++PACKAGE_TARNAME='newlib'
++PACKAGE_VERSION='1.15.0'
++PACKAGE_STRING='newlib 1.15.0'
++PACKAGE_BUGREPORT=''
++
++ac_unique_file="libcglue.c"
++ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS MAY_SUPPLY_SYSCALLS_TRUE MAY_SUPPLY_SYSCALLS_FALSE newlib_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar \
++ CC DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB READELF ac_ct_READELF MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CCAS CCASFLAGS NEWLIB_CFLAGS LDFLAGS ELIX_LEVEL_0_TRUE ELIX_LEVEL_0_FALSE ELIX_LEVEL_1_TRUE ELIX_LEVEL_1_FALSE ELIX_LEVEL_2_TRUE ELIX_LEVEL_2_FALSE ELIX_LEVEL_3_TRUE ELIX_LEVEL_3_FALSE ELIX_LEVEL_4_TRUE ELIX_LEVEL_4_FALSE USE_LIBTOOL_TRUE USE_LIBTOOL_FALSE OBJEXT oext aext lpfx libm_machine_dir machine_dir sys_dir LIBOBJS LTLIBOBJS'
++ac_subst_files=''
++
++# Initialize some variables set by options.
++ac_init_help=
++ac_init_version=false
++# The variables have the same names as the options, with
++# dashes changed to underlines.
++cache_file=/dev/null
++exec_prefix=NONE
++no_create=
++no_recursion=
++prefix=NONE
++program_prefix=NONE
++program_suffix=NONE
++program_transform_name=s,x,x,
++silent=
++site=
++srcdir=
++verbose=
++x_includes=NONE
++x_libraries=NONE
++
++# Installation directory options.
++# These are left unexpanded so users can "make install exec_prefix=/foo"
++# and all the variables that are supposed to be based on exec_prefix
++# by default will actually change.
++# Use braces instead of parens because sh, perl, etc. also accept them.
++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'
++
++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
++
++ ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
++
++ # 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_alias ;;
++ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
++ build_alias=$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 ;;
++
++ --config-cache | -C)
++ cache_file=config.cache ;;
++
++ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
++ ac_prev=datadir ;;
++ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
++ | --da=*)
++ datadir=$ac_optarg ;;
++
++ -disable-* | --disable-*)
++ ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
++ # Reject names that are not valid shell variable names.
++ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
++ { echo "$as_me: error: invalid feature name: $ac_feature" >&2
++ { (exit 1); exit 1; }; }
++ ac_feature=`echo $ac_feature | sed 's/-/_/g'`
++ eval "enable_$ac_feature=no" ;;
++
++ -enable-* | --enable-*)
++ ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
++ # Reject names that are not valid shell variable names.
++ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
++ { echo "$as_me: error: invalid feature name: $ac_feature" >&2
++ { (exit 1); exit 1; }; }
++ ac_feature=`echo $ac_feature | sed 's/-/_/g'`
++ case $ac_option in
++ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
++ *) 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 | -h)
++ ac_init_help=long ;;
++ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
++ ac_init_help=recursive ;;
++ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
++ ac_init_help=short ;;
++
++ -host | --host | --hos | --ho)
++ ac_prev=host_alias ;;
++ -host=* | --host=* | --hos=* | --ho=*)
++ host_alias=$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 | -n)
++ 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_alias ;;
++ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
++ target_alias=$ac_optarg ;;
++
++ -v | -verbose | --verbose | --verbos | --verbo | --verb)
++ verbose=yes ;;
++
++ -version | --version | --versio | --versi | --vers | -V)
++ ac_init_version=: ;;
++
++ -with-* | --with-*)
++ ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
++ # Reject names that are not valid shell variable names.
++ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
++ { echo "$as_me: error: invalid package name: $ac_package" >&2
++ { (exit 1); exit 1; }; }
++ ac_package=`echo $ac_package| sed 's/-/_/g'`
++ case $ac_option in
++ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
++ *) ac_optarg=yes ;;
++ esac
++ eval "with_$ac_package='$ac_optarg'" ;;
++
++ -without-* | --without-*)
++ ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
++ # Reject names that are not valid shell variable names.
++ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
++ { echo "$as_me: error: invalid package name: $ac_package" >&2
++ { (exit 1); exit 1; }; }
++ 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 "$as_me: error: unrecognized option: $ac_option
++Try \`$0 --help' for more information." >&2
++ { (exit 1); exit 1; }; }
++ ;;
++
++ *=*)
++ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
++ # Reject names that are not valid shell variable names.
++ expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
++ { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
++ { (exit 1); exit 1; }; }
++ ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
++ eval "$ac_envvar='$ac_optarg'"
++ export $ac_envvar ;;
++
++ *)
++ # FIXME: should be removed in autoconf 3.0.
++ echo "$as_me: WARNING: you should use --build, --host, --target" >&2
++ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
++ echo "$as_me: WARNING: invalid host type: $ac_option" >&2
++ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
++ ;;
++
++ esac
++done
++
++if test -n "$ac_prev"; then
++ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
++ { echo "$as_me: error: missing argument to $ac_option" >&2
++ { (exit 1); exit 1; }; }
++fi
++
++# Be sure to have absolute paths.
++for ac_var in exec_prefix prefix
++do
++ eval ac_val=$`echo $ac_var`
++ case $ac_val in
++ [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
++ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
++ { (exit 1); exit 1; }; };;
++ esac
++done
++
++# Be sure to have absolute paths.
++for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
++ localstatedir libdir includedir oldincludedir infodir mandir
++do
++ eval ac_val=$`echo $ac_var`
++ case $ac_val in
++ [\\/$]* | ?:[\\/]* ) ;;
++ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
++ { (exit 1); exit 1; }; };;
++ esac
++done
++
++# There might be people who depend on the old broken behavior: `$host'
++# used to hold the argument of --host etc.
++# FIXME: To remove some day.
++build=$build_alias
++host=$host_alias
++target=$target_alias
++
++# FIXME: To remove some day.
++if test "x$host_alias" != x; then
++ if test "x$build_alias" = x; then
++ cross_compiling=maybe
++ echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
++ If a cross compiler is detected then cross compile mode will be used." >&2
++ elif test "x$build_alias" != "x$host_alias"; then
++ cross_compiling=yes
++ fi
++fi
++
++ac_tool_prefix=
++test -n "$host_alias" && ac_tool_prefix=$host_alias-
++
++test "$silent" = yes && exec 6>/dev/null
++
++
++# 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_confdir=`(dirname "$0") 2>/dev/null ||
++$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++ X"$0" : 'X\(//\)[^/]' \| \
++ X"$0" : 'X\(//\)$' \| \
++ X"$0" : 'X\(/\)' \| \
++ . : '\(.\)' 2>/dev/null ||
++echo X"$0" |
++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
++ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
++ /^X\(\/\/\)$/{ s//\1/; q; }
++ /^X\(\/\).*/{ s//\1/; q; }
++ s/.*/./; q'`
++ 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 "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
++ { (exit 1); exit 1; }; }
++ else
++ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
++ { (exit 1); exit 1; }; }
++ fi
++fi
++(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
++ { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
++ { (exit 1); exit 1; }; }
++srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
++ac_env_build_alias_set=${build_alias+set}
++ac_env_build_alias_value=$build_alias
++ac_cv_env_build_alias_set=${build_alias+set}
++ac_cv_env_build_alias_value=$build_alias
++ac_env_host_alias_set=${host_alias+set}
++ac_env_host_alias_value=$host_alias
++ac_cv_env_host_alias_set=${host_alias+set}
++ac_cv_env_host_alias_value=$host_alias
++ac_env_target_alias_set=${target_alias+set}
++ac_env_target_alias_value=$target_alias
++ac_cv_env_target_alias_set=${target_alias+set}
++ac_cv_env_target_alias_value=$target_alias
++ac_env_CCAS_set=${CCAS+set}
++ac_env_CCAS_value=$CCAS
++ac_cv_env_CCAS_set=${CCAS+set}
++ac_cv_env_CCAS_value=$CCAS
++ac_env_CCASFLAGS_set=${CCASFLAGS+set}
++ac_env_CCASFLAGS_value=$CCASFLAGS
++ac_cv_env_CCASFLAGS_set=${CCASFLAGS+set}
++ac_cv_env_CCASFLAGS_value=$CCASFLAGS
++
++#
++# Report the --help message.
++#
++if test "$ac_init_help" = "long"; then
++ # 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 <<_ACEOF
++\`configure' configures newlib 1.15.0 to adapt to many kinds of systems.
++
++Usage: $0 [OPTION]... [VAR=VALUE]...
++
++To assign environment variables (e.g., CC, CFLAGS...), specify them as
++VAR=VALUE. See below for descriptions of some of the useful variables.
++
++Defaults for the options are specified in brackets.
++
++Configuration:
++ -h, --help display this help and exit
++ --help=short display options specific to this package
++ --help=recursive display the short help of all the included packages
++ -V, --version display version information and exit
++ -q, --quiet, --silent do not print \`checking...' messages
++ --cache-file=FILE cache test results in FILE [disabled]
++ -C, --config-cache alias for \`--cache-file=config.cache'
++ -n, --no-create do not create output files
++ --srcdir=DIR find the sources in DIR [configure dir or \`..']
++
++_ACEOF
++
++ cat <<_ACEOF
++Installation directories:
++ --prefix=PREFIX install architecture-independent files in PREFIX
++ [$ac_default_prefix]
++ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
++ [PREFIX]
++
++By default, \`make install' will install all the files in
++\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
++an installation prefix other than \`$ac_default_prefix' using \`--prefix',
++for instance \`--prefix=\$HOME'.
++
++For better control, use the options below.
++
++Fine tuning of the installation directories:
++ --bindir=DIR user executables [EPREFIX/bin]
++ --sbindir=DIR system admin executables [EPREFIX/sbin]
++ --libexecdir=DIR program executables [EPREFIX/libexec]
++ --datadir=DIR read-only architecture-independent data [PREFIX/share]
++ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
++ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
++ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
++ --libdir=DIR object code libraries [EPREFIX/lib]
++ --includedir=DIR C header files [PREFIX/include]
++ --oldincludedir=DIR C header files for non-gcc [/usr/include]
++ --infodir=DIR info documentation [PREFIX/info]
++ --mandir=DIR man documentation [PREFIX/man]
++_ACEOF
++
++ cat <<\_ACEOF
++
++Program names:
++ --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
++
++System types:
++ --build=BUILD configure for building on BUILD [guessed]
++ --host=HOST cross-compile to build programs to run on HOST [BUILD]
++_ACEOF
++fi
++
++if test -n "$ac_init_help"; then
++ case $ac_init_help in
++ short | recursive ) echo "Configuration of newlib 1.15.0:";;
++ esac
++ cat <<\_ACEOF
++
++Optional Features:
++ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
++ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
++ --enable-multilib build many library versions (default)
++ --enable-target-optspace optimize for space
++ --enable-malloc-debugging indicate malloc debugging requested
++ --enable-newlib-multithread enable support for multiple threads
++ --enable-newlib-iconv enable iconv library support
++ --enable-newlib-elix-level supply desired elix library level (1-4)
++ --disable-newlib-io-float disable printf/scanf family float support
++ --disable-newlib-supplied-syscalls disable newlib from supplying syscalls
++ --disable-dependency-tracking speeds up one-time build
++ --enable-dependency-tracking do not reject slow dependency extractors
++ --enable-maintainer-mode enable make rules and dependencies not useful
++ (and sometimes confusing) to the casual installer
++
++Some influential environment variables:
++ CCAS assembler compiler command (defaults to CC)
++ CCASFLAGS assembler compiler flags (defaults to CFLAGS)
++
++Use these variables to override the choices made by `configure' or to help
++it to find libraries and programs with nonstandard names/locations.
++
++_ACEOF
++fi
++
++if test "$ac_init_help" = "recursive"; then
++ # If there are subdirs, report their specific --help.
++ ac_popdir=`pwd`
++ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
++ test -d $ac_dir || continue
++ ac_builddir=.
++
++if test "$ac_dir" != .; then
++ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
++ # A "../" for each directory in $ac_dir_suffix.
++ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
++else
++ ac_dir_suffix= ac_top_builddir=
++fi
++
++case $srcdir in
++ .) # No --srcdir option. We are building in place.
++ ac_srcdir=.
++ if test -z "$ac_top_builddir"; then
++ ac_top_srcdir=.
++ else
++ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
++ fi ;;
++ [\\/]* | ?:[\\/]* ) # Absolute path.
++ ac_srcdir=$srcdir$ac_dir_suffix;
++ ac_top_srcdir=$srcdir ;;
++ *) # Relative path.
++ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
++ ac_top_srcdir=$ac_top_builddir$srcdir ;;
++esac
++
++# Do not use `cd foo && pwd` to compute absolute paths, because
++# the directories may not exist.
++case `pwd` in
++.) ac_abs_builddir="$ac_dir";;
++*)
++ case "$ac_dir" in
++ .) ac_abs_builddir=`pwd`;;
++ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
++ *) ac_abs_builddir=`pwd`/"$ac_dir";;
++ esac;;
++esac
++case $ac_abs_builddir in
++.) ac_abs_top_builddir=${ac_top_builddir}.;;
++*)
++ case ${ac_top_builddir}. in
++ .) ac_abs_top_builddir=$ac_abs_builddir;;
++ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
++ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
++ esac;;
++esac
++case $ac_abs_builddir in
++.) ac_abs_srcdir=$ac_srcdir;;
++*)
++ case $ac_srcdir in
++ .) ac_abs_srcdir=$ac_abs_builddir;;
++ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
++ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
++ esac;;
++esac
++case $ac_abs_builddir in
++.) ac_abs_top_srcdir=$ac_top_srcdir;;
++*)
++ case $ac_top_srcdir in
++ .) ac_abs_top_srcdir=$ac_abs_builddir;;
++ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
++ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
++ esac;;
++esac
++
++ cd $ac_dir
++ # Check for guested configure; otherwise get Cygnus style configure.
++ if test -f $ac_srcdir/configure.gnu; then
++ echo
++ $SHELL $ac_srcdir/configure.gnu --help=recursive
++ elif test -f $ac_srcdir/configure; then
++ echo
++ $SHELL $ac_srcdir/configure --help=recursive
++ elif test -f $ac_srcdir/configure.ac ||
++ test -f $ac_srcdir/configure.in; then
++ echo
++ $ac_configure --help
++ else
++ echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
++ fi
++ cd $ac_popdir
++ done
++fi
++
++test -n "$ac_init_help" && exit 0
++if $ac_init_version; then
++ cat <<\_ACEOF
++newlib configure 1.15.0
++generated by GNU Autoconf 2.59
++
++Copyright (C) 2003 Free Software Foundation, Inc.
++This configure script is free software; the Free Software Foundation
++gives unlimited permission to copy, distribute and modify it.
++_ACEOF
++ exit 0
++fi
++exec 5>config.log
++cat >&5 <<_ACEOF
++This file contains any messages produced by compilers while
++running configure, to aid debugging if configure makes a mistake.
++
++It was created by newlib $as_me 1.15.0, which was
++generated by GNU Autoconf 2.59. Invocation command line was
++
++ $ $0 $@
++
++_ACEOF
++{
++cat <<_ASUNAME
++## --------- ##
++## Platform. ##
++## --------- ##
++
++hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
++uname -m = `(uname -m) 2>/dev/null || echo unknown`
++uname -r = `(uname -r) 2>/dev/null || echo unknown`
++uname -s = `(uname -s) 2>/dev/null || echo unknown`
++uname -v = `(uname -v) 2>/dev/null || echo unknown`
++
++/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
++/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
++
++/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
++/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
++/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
++hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
++/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
++/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
++/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
++
++_ASUNAME
++
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ echo "PATH: $as_dir"
++done
++
++} >&5
++
++cat >&5 <<_ACEOF
++
++
++## ----------- ##
++## Core tests. ##
++## ----------- ##
++
++_ACEOF
++
++
++# Keep a trace of the command line.
++# Strip out --no-create and --no-recursion so they do not pile up.
++# Strip out --silent because we don't want to record it for future runs.
++# Also quote any args containing shell meta-characters.
++# Make two passes to allow for proper duplicate-argument suppression.
++ac_configure_args=
++ac_configure_args0=
++ac_configure_args1=
++ac_sep=
++ac_must_keep_next=false
++for ac_pass in 1 2
++do
++ for ac_arg
++ do
++ case $ac_arg in
++ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
++ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
++ | -silent | --silent | --silen | --sile | --sil)
++ continue ;;
++ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
++ ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
++ esac
++ case $ac_pass in
++ 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
++ 2)
++ ac_configure_args1="$ac_configure_args1 '$ac_arg'"
++ if test $ac_must_keep_next = true; then
++ ac_must_keep_next=false # Got value, back to normal.
++ else
++ case $ac_arg in
++ *=* | --config-cache | -C | -disable-* | --disable-* \
++ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
++ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
++ | -with-* | --with-* | -without-* | --without-* | --x)
++ case "$ac_configure_args0 " in
++ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
++ esac
++ ;;
++ -* ) ac_must_keep_next=true ;;
++ esac
++ fi
++ ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
++ # Get rid of the leading space.
++ ac_sep=" "
++ ;;
++ esac
++ done
++done
++$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
++$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
++
++# When interrupted or exit'd, cleanup temporary files, and complete
++# config.log. We remove comments because anyway the quotes in there
++# would cause problems or look ugly.
++# WARNING: Be sure not to use single quotes in there, as some shells,
++# such as our DU 5.0 friend, will then `close' the trap.
++trap 'exit_status=$?
++ # Save into config.log some information that might help in debugging.
++ {
++ echo
++
++ cat <<\_ASBOX
++## ---------------- ##
++## Cache variables. ##
++## ---------------- ##
++_ASBOX
++ echo
++ # The following way of writing the cache mishandles newlines in values,
++{
++ (set) 2>&1 |
++ case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
++ *ac_space=\ *)
++ sed -n \
++ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
++ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
++ ;;
++ *)
++ sed -n \
++ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
++ ;;
++ esac;
++}
++ echo
++
++ cat <<\_ASBOX
++## ----------------- ##
++## Output variables. ##
++## ----------------- ##
++_ASBOX
++ echo
++ for ac_var in $ac_subst_vars
++ do
++ eval ac_val=$`echo $ac_var`
++ echo "$ac_var='"'"'$ac_val'"'"'"
++ done | sort
++ echo
++
++ if test -n "$ac_subst_files"; then
++ cat <<\_ASBOX
++## ------------- ##
++## Output files. ##
++## ------------- ##
++_ASBOX
++ echo
++ for ac_var in $ac_subst_files
++ do
++ eval ac_val=$`echo $ac_var`
++ echo "$ac_var='"'"'$ac_val'"'"'"
++ done | sort
++ echo
++ fi
++
++ if test -s confdefs.h; then
++ cat <<\_ASBOX
++## ----------- ##
++## confdefs.h. ##
++## ----------- ##
++_ASBOX
++ echo
++ sed "/^$/d" confdefs.h | sort
++ echo
++ fi
++ test "$ac_signal" != 0 &&
++ echo "$as_me: caught signal $ac_signal"
++ echo "$as_me: exit $exit_status"
++ } >&5
++ rm -f core *.core &&
++ rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
++ exit $exit_status
++ ' 0
++for ac_signal in 1 2 13 15; do
++ trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
++done
++ac_signal=0
++
++# 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 >confdefs.h
++
++# Predefined preprocessor variables.
++
++cat >>confdefs.h <<_ACEOF
++#define PACKAGE_NAME "$PACKAGE_NAME"
++_ACEOF
++
++
++cat >>confdefs.h <<_ACEOF
++#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
++_ACEOF
++
++
++cat >>confdefs.h <<_ACEOF
++#define PACKAGE_VERSION "$PACKAGE_VERSION"
++_ACEOF
++
++
++cat >>confdefs.h <<_ACEOF
++#define PACKAGE_STRING "$PACKAGE_STRING"
++_ACEOF
++
++
++cat >>confdefs.h <<_ACEOF
++#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
++_ACEOF
++
++
++# Let the site file select an alternate cache file if it wants to.
++# 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 "$as_me:$LINENO: loading site script $ac_site_file" >&5
++echo "$as_me: loading site script $ac_site_file" >&6;}
++ sed 's/^/| /' "$ac_site_file" >&5
++ . "$ac_site_file"
++ fi
++done
++
++if test -r "$cache_file"; then
++ # Some versions of bash will fail to source /dev/null (special
++ # files actually), so we avoid doing that.
++ if test -f "$cache_file"; then
++ { echo "$as_me:$LINENO: loading cache $cache_file" >&5
++echo "$as_me: loading cache $cache_file" >&6;}
++ case $cache_file in
++ [\\/]* | ?:[\\/]* ) . $cache_file;;
++ *) . ./$cache_file;;
++ esac
++ fi
++else
++ { echo "$as_me:$LINENO: creating cache $cache_file" >&5
++echo "$as_me: creating cache $cache_file" >&6;}
++ >$cache_file
++fi
++
++# Check that the precious variables saved in the cache have kept the same
++# value.
++ac_cache_corrupted=false
++for ac_var in `(set) 2>&1 |
++ sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
++ eval ac_old_set=\$ac_cv_env_${ac_var}_set
++ eval ac_new_set=\$ac_env_${ac_var}_set
++ eval ac_old_val="\$ac_cv_env_${ac_var}_value"
++ eval ac_new_val="\$ac_env_${ac_var}_value"
++ case $ac_old_set,$ac_new_set in
++ set,)
++ { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
++echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
++ ac_cache_corrupted=: ;;
++ ,set)
++ { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
++echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
++ ac_cache_corrupted=: ;;
++ ,);;
++ *)
++ if test "x$ac_old_val" != "x$ac_new_val"; then
++ { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
++echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
++ { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
++echo "$as_me: former value: $ac_old_val" >&2;}
++ { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
++echo "$as_me: current value: $ac_new_val" >&2;}
++ ac_cache_corrupted=:
++ fi;;
++ esac
++ # Pass precious variables to config.status.
++ if test "$ac_new_set" = set; then
++ case $ac_new_val in
++ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
++ ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
++ *) ac_arg=$ac_var=$ac_new_val ;;
++ esac
++ case " $ac_configure_args " in
++ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
++ *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
++ esac
++ fi
++done
++if $ac_cache_corrupted; then
++ { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
++echo "$as_me: error: changes in the environment can compromise the build" >&2;}
++ { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
++echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
++ { (exit 1); exit 1; }; }
++fi
++
++ac_ext=c
++ac_cpp='$CPP $CPPFLAGS'
++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
++ac_compiler_gnu=$ac_cv_c_compiler_gnu
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++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
++ elif test -f $ac_dir/shtool; then
++ ac_aux_dir=$ac_dir
++ ac_install_sh="$ac_aux_dir/shtool install -c"
++ break
++ fi
++done
++if test -z "$ac_aux_dir"; then
++ { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in ../../../.. $srcdir/../../../.." >&5
++echo "$as_me: error: cannot find install-sh or install.sh in ../../../.. $srcdir/../../../.." >&2;}
++ { (exit 1); exit 1; }; }
++fi
++ac_config_guess="$SHELL $ac_aux_dir/config.guess"
++ac_config_sub="$SHELL $ac_aux_dir/config.sub"
++ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
++
++
++
++# Make sure we can run config.sub.
++$ac_config_sub sun4 >/dev/null 2>&1 ||
++ { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
++echo "$as_me: error: cannot run $ac_config_sub" >&2;}
++ { (exit 1); exit 1; }; }
++
++echo "$as_me:$LINENO: checking build system type" >&5
++echo $ECHO_N "checking build system type... $ECHO_C" >&6
++if test "${ac_cv_build+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ ac_cv_build_alias=$build_alias
++test -z "$ac_cv_build_alias" &&
++ ac_cv_build_alias=`$ac_config_guess`
++test -z "$ac_cv_build_alias" &&
++ { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
++echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
++ { (exit 1); exit 1; }; }
++ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
++ { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
++echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
++ { (exit 1); exit 1; }; }
++
++fi
++echo "$as_me:$LINENO: result: $ac_cv_build" >&5
++echo "${ECHO_T}$ac_cv_build" >&6
++build=$ac_cv_build
++build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
++build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
++build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
++
++
++am__api_version="1.9"
++# 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
++# AmigaOS /C/install, which installs bootblocks on floppy discs
++# 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"
++# OS/2's system install, which has a completely different semantic
++# ./install, which can be erroneously created by make from ./install.sh.
++echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
++echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
++if test -z "$INSTALL"; then
++if test "${ac_cv_path_install+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ # Account for people who put trailing slashes in PATH elements.
++case $as_dir/ in
++ ./ | .// | /cC/* | \
++ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
++ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
++ /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
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
++ if test $ac_prog = install &&
++ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
++ # AIX install. It has an incompatible calling convention.
++ :
++ elif test $ac_prog = install &&
++ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
++ # program-specific install script used by HP pwplus--don't use.
++ :
++ else
++ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
++ break 3
++ fi
++ fi
++ done
++ done
++ ;;
++esac
++done
++
++
++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 "$as_me:$LINENO: result: $INSTALL" >&5
++echo "${ECHO_T}$INSTALL" >&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" && INSTALL_PROGRAM='${INSTALL}'
++
++test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
++
++test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
++
++echo "$as_me:$LINENO: checking whether build environment is sane" >&5
++echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
++# Just in case
++sleep 1
++echo timestamp > conftest.file
++# 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 conftest.file 2> /dev/null`
++ if test "$*" = "X"; then
++ # -L didn't work.
++ set X `ls -t $srcdir/configure conftest.file`
++ fi
++ rm -f conftest.file
++ if test "$*" != "X $srcdir/configure conftest.file" \
++ && test "$*" != "X conftest.file $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 "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken
++alias in your environment" >&5
++echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken
++alias in your environment" >&2;}
++ { (exit 1); exit 1; }; }
++ fi
++
++ test "$2" = conftest.file
++ )
++then
++ # Ok.
++ :
++else
++ { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
++Check your system clock" >&5
++echo "$as_me: error: newly created file is older than distributed files!
++Check your system clock" >&2;}
++ { (exit 1); exit 1; }; }
++fi
++echo "$as_me:$LINENO: result: yes" >&5
++echo "${ECHO_T}yes" >&6
++test "$program_prefix" != NONE &&
++ program_transform_name="s,^,$program_prefix,;$program_transform_name"
++# Use a double $ so make ignores it.
++test "$program_suffix" != NONE &&
++ program_transform_name="s,\$,$program_suffix,;$program_transform_name"
++# Double any \ or $. echo might interpret backslashes.
++# By default was `s,x,x', remove it if useless.
++cat <<\_ACEOF >conftest.sed
++s/[\\$]/&&/g;s/;s,x,x,$//
++_ACEOF
++program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
++rm conftest.sed
++
++# expand $ac_aux_dir to an absolute path
++am_aux_dir=`cd $ac_aux_dir && pwd`
++
++test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
++# Use eval to expand $SHELL
++if eval "$MISSING --run true"; then
++ am_missing_run="$MISSING --run "
++else
++ am_missing_run=
++ { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
++echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
++fi
++
++if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
++ # We used to keeping the `.' as first argument, in order to
++ # allow $(mkdir_p) to be used without argument. As in
++ # $(mkdir_p) $(somedir)
++ # where $(somedir) is conditionally defined. However this is wrong
++ # for two reasons:
++ # 1. if the package is installed by a user who cannot write `.'
++ # make install will fail,
++ # 2. the above comment should most certainly read
++ # $(mkdir_p) $(DESTDIR)$(somedir)
++ # so it does not work when $(somedir) is undefined and
++ # $(DESTDIR) is not.
++ # To support the latter case, we have to write
++ # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
++ # so the `.' trick is pointless.
++ mkdir_p='mkdir -p --'
++else
++ # On NextStep and OpenStep, the `mkdir' command does not
++ # recognize any option. It will interpret all options as
++ # directories to create, and then abort because `.' already
++ # exists.
++ for d in ./-p ./--version;
++ do
++ test -d $d && rmdir $d
++ done
++ # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
++ if test -f "$ac_aux_dir/mkinstalldirs"; then
++ mkdir_p='$(mkinstalldirs)'
++ else
++ mkdir_p='$(install_sh) -d'
++ fi
++fi
++
++for ac_prog in gawk mawk nawk awk
++do
++ # Extract the first word of "$ac_prog", so it can be a program name with args.
++set dummy $ac_prog; ac_word=$2
++echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_AWK+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$AWK"; then
++ ac_cv_prog_AWK="$AWK" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_AWK="$ac_prog"
++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++done
++
++fi
++fi
++AWK=$ac_cv_prog_AWK
++if test -n "$AWK"; then
++ echo "$as_me:$LINENO: result: $AWK" >&5
++echo "${ECHO_T}$AWK" >&6
++else
++ echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++ test -n "$AWK" && break
++done
++
++echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
++echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
++set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
++if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ cat >conftest.make <<\_ACEOF
++all:
++ @echo 'ac_maketemp="$(MAKE)"'
++_ACEOF
++# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
++eval `${MAKE-make} -f conftest.make 2>/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 conftest.make
++fi
++if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
++ echo "$as_me:$LINENO: result: yes" >&5
++echo "${ECHO_T}yes" >&6
++ SET_MAKE=
++else
++ echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
++ SET_MAKE="MAKE=${MAKE-make}"
++fi
++
++rm -rf .tst 2>/dev/null
++mkdir .tst 2>/dev/null
++if test -d .tst; then
++ am__leading_dot=.
++else
++ am__leading_dot=_
++fi
++rmdir .tst 2>/dev/null
++
++DEPDIR="${am__leading_dot}deps"
++
++ ac_config_commands="$ac_config_commands depfiles"
++
++
++am_make=${MAKE-make}
++cat > confinc << 'END'
++am__doit:
++ @echo done
++.PHONY: am__doit
++END
++# If we don't find an include directive, just comment out the code.
++echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
++echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6
++am__include="#"
++am__quote=
++_am_result=none
++# First try GNU make style include.
++echo "include confinc" > confmf
++# We grep out `Entering directory' and `Leaving directory'
++# messages which can occur if `w' ends up in MAKEFLAGS.
++# In particular we don't look at `^make:' because GNU make might
++# be invoked under some other name (usually "gmake"), in which
++# case it prints its new name instead of `make'.
++if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
++ am__include=include
++ am__quote=
++ _am_result=GNU
++fi
++# Now try BSD make style include.
++if test "$am__include" = "#"; then
++ echo '.include "confinc"' > confmf
++ if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
++ am__include=.include
++ am__quote="\""
++ _am_result=BSD
++ fi
++fi
++
++
++echo "$as_me:$LINENO: result: $_am_result" >&5
++echo "${ECHO_T}$_am_result" >&6
++rm -f confinc confmf
++
++# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
++if test "${enable_dependency_tracking+set}" = set; then
++ enableval="$enable_dependency_tracking"
++
++fi;
++if test "x$enable_dependency_tracking" != xno; then
++ am_depcomp="$ac_aux_dir/depcomp"
++ AMDEPBACKSLASH='\'
++fi
++
++
++if test "x$enable_dependency_tracking" != xno; then
++ AMDEP_TRUE=
++ AMDEP_FALSE='#'
++else
++ AMDEP_TRUE='#'
++ AMDEP_FALSE=
++fi
++
++
++
++
++# 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 "$as_me:$LINENO: error: bad value ${enableval} for multilib option" >&5
++echo "$as_me: error: bad value ${enableval} for multilib option" >&2;}
++ { (exit 1); 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 "$as_me:$LINENO: error: bad value ${enableval} for target-optspace option" >&5
++echo "$as_me: error: bad value ${enableval} for target-optspace option" >&2;}
++ { (exit 1); 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 "$as_me:$LINENO: error: bad value ${enableval} for malloc-debugging option" >&5
++echo "$as_me: error: bad value ${enableval} for malloc-debugging option" >&2;}
++ { (exit 1); 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 "$as_me:$LINENO: error: bad value ${enableval} for newlib-multithread option" >&5
++echo "$as_me: error: bad value ${enableval} for newlib-multithread option" >&2;}
++ { (exit 1); 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 "$as_me:$LINENO: error: bad value ${enableval} for newlib-iconv option" >&5
++echo "$as_me: error: bad value ${enableval} for newlib-iconv option" >&2;}
++ { (exit 1); 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 "$as_me:$LINENO: error: bad value ${enableval} for newlib-elix-level option" >&5
++echo "$as_me: error: bad value ${enableval} for newlib-elix-level option" >&2;}
++ { (exit 1); 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 "$as_me:$LINENO: error: bad value ${enableval} for newlib-io-float option" >&5
++echo "$as_me: error: bad value ${enableval} for newlib-io-float option" >&2;}
++ { (exit 1); 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 "$as_me:$LINENO: error: bad value ${enableval} for newlib-supplied-syscalls option" >&5
++echo "$as_me: error: bad value ${enableval} for newlib-supplied-syscalls option" >&2;}
++ { (exit 1); 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}" && 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
++
++
++echo "$as_me:$LINENO: checking host system type" >&5
++echo $ECHO_N "checking host system type... $ECHO_C" >&6
++if test "${ac_cv_host+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ ac_cv_host_alias=$host_alias
++test -z "$ac_cv_host_alias" &&
++ ac_cv_host_alias=$ac_cv_build_alias
++ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
++ { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
++echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
++ { (exit 1); exit 1; }; }
++
++fi
++echo "$as_me:$LINENO: result: $ac_cv_host" >&5
++echo "${ECHO_T}$ac_cv_host" >&6
++host=$ac_cv_host
++host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
++host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
++host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
++
++
++
++# test to see if srcdir already configured
++if test "`cd $srcdir && pwd`" != "`pwd`" &&
++ test -f $srcdir/config.status; then
++ { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
++echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
++ { (exit 1); exit 1; }; }
++fi
++
++# test whether we have cygpath
++if test -z "$CYGPATH_W"; then
++ if (cygpath --version) >/dev/null 2>/dev/null; then
++ CYGPATH_W='cygpath -w'
++ else
++ CYGPATH_W=echo
++ fi
++fi
++
++
++# Define the identity of the package.
++ PACKAGE='newlib'
++ VERSION='1.15.0'
++
++
++# Some tools Automake needs.
++
++ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
++
++
++AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
++
++
++AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
++
++
++AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
++
++
++MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
++
++install_sh=${install_sh-"$am_aux_dir/install-sh"}
++
++# Installed binaries are usually stripped using `strip' when the user
++# run `make install-strip'. However `strip' might not be the right
++# tool to use in cross-compilation environments, therefore Automake
++# will honor the `STRIP' environment variable to overrule this program.
++if test "$cross_compiling" != no; then
++ if test -n "$ac_tool_prefix"; then
++ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
++set dummy ${ac_tool_prefix}strip; ac_word=$2
++echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_STRIP+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$STRIP"; then
++ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++done
++
++fi
++fi
++STRIP=$ac_cv_prog_STRIP
++if test -n "$STRIP"; then
++ echo "$as_me:$LINENO: result: $STRIP" >&5
++echo "${ECHO_T}$STRIP" >&6
++else
++ echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++fi
++if test -z "$ac_cv_prog_STRIP"; then
++ ac_ct_STRIP=$STRIP
++ # Extract the first word of "strip", so it can be a program name with args.
++set dummy strip; ac_word=$2
++echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$ac_ct_STRIP"; then
++ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_ac_ct_STRIP="strip"
++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++done
++
++ test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
++fi
++fi
++ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
++if test -n "$ac_ct_STRIP"; then
++ echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
++echo "${ECHO_T}$ac_ct_STRIP" >&6
++else
++ echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++ STRIP=$ac_ct_STRIP
++else
++ STRIP="$ac_cv_prog_STRIP"
++fi
++
++fi
++INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
++
++# We need awk for the "check" target. The system "awk" is bad on
++# some platforms.
++# Always define AMTAR for backward compatibility.
++
++AMTAR=${AMTAR-"${am_missing_run}tar"}
++
++am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
++
++
++
++
++
++
++# 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 "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_CC+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$CC"; then
++ ac_cv_prog_CC="$CC" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_CC="gcc"
++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++done
++
++fi
++fi
++CC=$ac_cv_prog_CC
++if test -n "$CC"; then
++ echo "$as_me:$LINENO: result: $CC" >&5
++echo "${ECHO_T}$CC" >&6
++else
++ echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++
++depcc="$CC" am_compiler_list=
++
++echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
++echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
++if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
++ # We make a subdir and do the tests there. Otherwise we can end up
++ # making bogus files that we don't know about and never remove. For
++ # instance it was reported that on HP-UX the gcc test will end up
++ # making a dummy file named `D' -- because `-MD' means `put the output
++ # in D'.
++ mkdir conftest.dir
++ # Copy depcomp to subdir because otherwise we won't find it if we're
++ # using a relative directory.
++ cp "$am_depcomp" conftest.dir
++ cd conftest.dir
++ # We will build objects and dependencies in a subdirectory because
++ # it helps to detect inapplicable dependency modes. For instance
++ # both Tru64's cc and ICC support -MD to output dependencies as a
++ # side effect of compilation, but ICC will put the dependencies in
++ # the current directory while Tru64 will put them in the object
++ # directory.
++ mkdir sub
++
++ am_cv_CC_dependencies_compiler_type=none
++ if test "$am_compiler_list" = ""; then
++ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
++ fi
++ for depmode in $am_compiler_list; do
++ # Setup a source with many dependencies, because some compilers
++ # like to wrap large dependency lists on column 80 (with \), and
++ # we should not choose a depcomp mode which is confused by this.
++ #
++ # We need to recreate these files for each test, as the compiler may
++ # overwrite some of them when testing with obscure command lines.
++ # This happens at least with the AIX C compiler.
++ : > sub/conftest.c
++ for i in 1 2 3 4 5 6; do
++ echo '#include "conftst'$i'.h"' >> sub/conftest.c
++ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
++ # Solaris 8's {/usr,}/bin/sh.
++ touch sub/conftst$i.h
++ done
++ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
++
++ case $depmode in
++ nosideeffect)
++ # after this tag, mechanisms are not by side-effect, so they'll
++ # only be used when explicitly requested
++ if test "x$enable_dependency_tracking" = xyes; then
++ continue
++ else
++ break
++ fi
++ ;;
++ none) break ;;
++ esac
++ # We check with `-c' and `-o' for the sake of the "dashmstdout"
++ # mode. It turns out that the SunPro C++ compiler does not properly
++ # handle `-M -o', and we need to detect this.
++ if depmode=$depmode \
++ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
++ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
++ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
++ >/dev/null 2>conftest.err &&
++ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
++ grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
++ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
++ # icc doesn't choke on unknown options, it will just issue warnings
++ # or remarks (even with -Werror). So we grep stderr for any message
++ # that says an option was ignored or not supported.
++ # When given -MP, icc 7.0 and 7.1 complain thusly:
++ # icc: Command line warning: ignoring option '-M'; no argument required
++ # The diagnosis changed in icc 8.0:
++ # icc: Command line remark: option '-MP' not supported
++ if (grep 'ignoring option' conftest.err ||
++ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
++ am_cv_CC_dependencies_compiler_type=$depmode
++ break
++ fi
++ fi
++ done
++
++ cd ..
++ rm -rf conftest.dir
++else
++ am_cv_CC_dependencies_compiler_type=none
++fi
++
++fi
++echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
++echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
++CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
++
++
++
++if
++ test "x$enable_dependency_tracking" != xno \
++ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
++ am__fastdepCC_TRUE=
++ am__fastdepCC_FALSE='#'
++else
++ am__fastdepCC_TRUE='#'
++ am__fastdepCC_FALSE=
++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 "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_CC+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$CC"; then
++ ac_cv_prog_CC="$CC" # Let the user override the test.
++else
++ ac_prog_rejected=no
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
++ ac_prog_rejected=yes
++ continue
++ fi
++ ac_cv_prog_CC="cc"
++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++done
++
++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 $# != 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
++ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
++ fi
++fi
++fi
++fi
++CC=$ac_cv_prog_CC
++if test -n "$CC"; then
++ echo "$as_me:$LINENO: result: $CC" >&5
++echo "${ECHO_T}$CC" >&6
++else
++ echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++ test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable cc found in \$PATH" >&5
++echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
++ { (exit 1); exit 1; }; }
++fi
++
++echo "$as_me:$LINENO: checking whether we are using GNU C" >&5
++echo $ECHO_N "checking whether we are using GNU C... $ECHO_C" >&6
++if test "${ac_cv_c_compiler_gnu+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ cat > conftest.c <<EOF
++#ifdef __GNUC__
++ yes;
++#endif
++EOF
++if { ac_try='${CC-cc} -E conftest.c'
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; } | egrep yes >/dev/null 2>&1; then
++ ac_cv_c_compiler_gnu=yes
++else
++ ac_cv_c_compiler_gnu=no
++fi
++fi
++echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
++echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
++
++if test $ac_cv_c_compiler_gnu = yes; then
++ GCC=yes
++ ac_test_CFLAGS="${CFLAGS+set}"
++ ac_save_CFLAGS="$CFLAGS"
++ CFLAGS=
++ ac_test_CFLAGS=${CFLAGS+set}
++ac_save_CFLAGS=$CFLAGS
++CFLAGS="-g"
++echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
++echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
++if test "${ac_cv_prog_cc_g+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ cat >conftest.$ac_ext <<_ACEOF
++/* confdefs.h. */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h. */
++
++int
++main ()
++{
++
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>conftest.er1
++ ac_status=$?
++ grep -v '^ *+' conftest.er1 >conftest.err
++ rm -f conftest.er1
++ cat conftest.err >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -z "$ac_c_werror_flag"
++ || test ! -s conftest.err'
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_cv_prog_cc_g=yes
++else
++ echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ac_cv_prog_cc_g=no
++fi
++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
++fi
++echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
++echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
++if test "$ac_test_CFLAGS" = set; then
++ CFLAGS=$ac_save_CFLAGS
++elif test $ac_cv_prog_cc_g = yes; then
++ if test "$GCC" = yes; then
++ CFLAGS="-g -O2"
++ else
++ CFLAGS="-g"
++ fi
++else
++ if test "$GCC" = yes; then
++ CFLAGS="-O2"
++ else
++ CFLAGS=
++ fi
++fi
++ 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
++
++
++if test -n "$ac_tool_prefix"; then
++ # 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 "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_AS+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$AS"; then
++ ac_cv_prog_AS="$AS" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_AS="${ac_tool_prefix}as"
++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++done
++
++fi
++fi
++AS=$ac_cv_prog_AS
++if test -n "$AS"; then
++ echo "$as_me:$LINENO: result: $AS" >&5
++echo "${ECHO_T}$AS" >&6
++else
++ echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++fi
++if test -z "$ac_cv_prog_AS"; then
++ ac_ct_AS=$AS
++ # Extract the first word of "as", so it can be a program name with args.
++set dummy as; ac_word=$2
++echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_ac_ct_AS+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$ac_ct_AS"; then
++ ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_ac_ct_AS="as"
++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++done
++
++fi
++fi
++ac_ct_AS=$ac_cv_prog_ac_ct_AS
++if test -n "$ac_ct_AS"; then
++ echo "$as_me:$LINENO: result: $ac_ct_AS" >&5
++echo "${ECHO_T}$ac_ct_AS" >&6
++else
++ echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++ AS=$ac_ct_AS
++else
++ AS="$ac_cv_prog_AS"
++fi
++
++if test -n "$ac_tool_prefix"; then
++ # 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 "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_AR+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$AR"; then
++ ac_cv_prog_AR="$AR" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_AR="${ac_tool_prefix}ar"
++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++done
++
++fi
++fi
++AR=$ac_cv_prog_AR
++if test -n "$AR"; then
++ echo "$as_me:$LINENO: result: $AR" >&5
++echo "${ECHO_T}$AR" >&6
++else
++ echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++fi
++if test -z "$ac_cv_prog_AR"; then
++ ac_ct_AR=$AR
++ # Extract the first word of "ar", so it can be a program name with args.
++set dummy ar; ac_word=$2
++echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$ac_ct_AR"; then
++ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_ac_ct_AR="ar"
++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++done
++
++fi
++fi
++ac_ct_AR=$ac_cv_prog_ac_ct_AR
++if test -n "$ac_ct_AR"; then
++ echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
++echo "${ECHO_T}$ac_ct_AR" >&6
++else
++ echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++ AR=$ac_ct_AR
++else
++ AR="$ac_cv_prog_AR"
++fi
++
++if test -n "$ac_tool_prefix"; then
++ # 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 "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_RANLIB+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$RANLIB"; then
++ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++done
++
++fi
++fi
++RANLIB=$ac_cv_prog_RANLIB
++if test -n "$RANLIB"; then
++ echo "$as_me:$LINENO: result: $RANLIB" >&5
++echo "${ECHO_T}$RANLIB" >&6
++else
++ echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++fi
++if test -z "$ac_cv_prog_RANLIB"; then
++ ac_ct_RANLIB=$RANLIB
++ # Extract the first word of "ranlib", so it can be a program name with args.
++set dummy ranlib; ac_word=$2
++echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$ac_ct_RANLIB"; then
++ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_ac_ct_RANLIB="ranlib"
++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++done
++
++ test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
++fi
++fi
++ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
++if test -n "$ac_ct_RANLIB"; then
++ echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
++echo "${ECHO_T}$ac_ct_RANLIB" >&6
++else
++ echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++ RANLIB=$ac_ct_RANLIB
++else
++ RANLIB="$ac_cv_prog_RANLIB"
++fi
++
++if test -n "$ac_tool_prefix"; then
++ # Extract the first word of "${ac_tool_prefix}readelf", so it can be a program name with args.
++set dummy ${ac_tool_prefix}readelf; ac_word=$2
++echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_READELF+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$READELF"; then
++ ac_cv_prog_READELF="$READELF" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_READELF="${ac_tool_prefix}readelf"
++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++done
++
++fi
++fi
++READELF=$ac_cv_prog_READELF
++if test -n "$READELF"; then
++ echo "$as_me:$LINENO: result: $READELF" >&5
++echo "${ECHO_T}$READELF" >&6
++else
++ echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++fi
++if test -z "$ac_cv_prog_READELF"; then
++ ac_ct_READELF=$READELF
++ # Extract the first word of "readelf", so it can be a program name with args.
++set dummy readelf; ac_word=$2
++echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_ac_ct_READELF+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$ac_ct_READELF"; then
++ ac_cv_prog_ac_ct_READELF="$ac_ct_READELF" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_ac_ct_READELF="readelf"
++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++done
++
++ test -z "$ac_cv_prog_ac_ct_READELF" && ac_cv_prog_ac_ct_READELF=":"
++fi
++fi
++ac_ct_READELF=$ac_cv_prog_ac_ct_READELF
++if test -n "$ac_ct_READELF"; then
++ echo "$as_me:$LINENO: result: $ac_ct_READELF" >&5
++echo "${ECHO_T}$ac_ct_READELF" >&6
++else
++ echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++ READELF=$ac_ct_READELF
++else
++ READELF="$ac_cv_prog_READELF"
++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
++# AmigaOS /C/install, which installs bootblocks on floppy discs
++# 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"
++# OS/2's system install, which has a completely different semantic
++# ./install, which can be erroneously created by make from ./install.sh.
++echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
++echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
++if test -z "$INSTALL"; then
++if test "${ac_cv_path_install+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ # Account for people who put trailing slashes in PATH elements.
++case $as_dir/ in
++ ./ | .// | /cC/* | \
++ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
++ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
++ /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
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
++ if test $ac_prog = install &&
++ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
++ # AIX install. It has an incompatible calling convention.
++ :
++ elif test $ac_prog = install &&
++ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
++ # program-specific install script used by HP pwplus--don't use.
++ :
++ else
++ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
++ break 3
++ fi
++ fi
++ done
++ done
++ ;;
++esac
++done
++
++
++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 "$as_me:$LINENO: result: $INSTALL" >&5
++echo "${ECHO_T}$INSTALL" >&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" && INSTALL_PROGRAM='${INSTALL}'
++
++test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
++
++test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
++
++
++# Hack to ensure that INSTALL won't be set to "../" with autoconf 2.13. */
++ac_given_INSTALL=$INSTALL
++
++echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
++echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
++ # 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 "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
++echo "${ECHO_T}$USE_MAINTAINER_MODE" >&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
++
++
++# By default we simply use the C compiler to build assembly code.
++
++test "${CCAS+set}" = set || CCAS=$CC
++test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS
++
++
++
++
++# 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
++
++ dummy_var=1
++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}
++
++
++
++
++
++
++
++
++
++
++
++ ac_config_files="$ac_config_files Makefile"
++
++cat >confcache <<\_ACEOF
++# 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, see configure's option --config-cache.
++# It is not useful on other systems. If it contains results you don't
++# want to keep, you may remove or edit it.
++#
++# config.status only pays attention to the cache file if you give it
++# the --recheck option to rerun configure.
++#
++# `ac_cv_env_foo' variables (set or unset) will be overridden when
++# loading this file, other *unset* `ac_cv_foo' will be assigned the
++# following values.
++
++_ACEOF
++
++# 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>&1 |
++ case `(ac_space=' '; set | grep ac_space) 2>&1` in
++ *ac_space=\ *)
++ # `set' does not quote correctly, so add quotes (double-quote
++ # substitution turns \\\\ into \\, and sed turns \\ into \).
++ sed -n \
++ "s/'/'\\\\''/g;
++ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
++ ;;
++ *)
++ # `set' quotes correctly as required by POSIX, so do not add quotes.
++ sed -n \
++ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
++ ;;
++ esac;
++} |
++ sed '
++ t clear
++ : clear
++ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
++ t end
++ /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
++ : end' >>confcache
++if diff $cache_file confcache >/dev/null 2>&1; then :; else
++ if test -w $cache_file; then
++ test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
++ cat confcache >$cache_file
++ else
++ echo "not updating unwritable cache $cache_file"
++ fi
++fi
++rm -f confcache
++
++test "x$prefix" = xNONE && prefix=$ac_default_prefix
++# Let make expand exec_prefix.
++test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
++
++# VPATH may cause trouble with some makes, so we remove $(srcdir),
++# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
++# trailing colons and then remove the whole line if VPATH becomes empty
++# (actually we leave an empty line to preserve line numbers).
++if test "x$srcdir" = x.; then
++ ac_vpsub='/^[ ]*VPATH[ ]*=/{
++s/:*\$(srcdir):*/:/;
++s/:*\${srcdir}:*/:/;
++s/:*@srcdir@:*/:/;
++s/^\([^=]*=[ ]*\):*/\1/;
++s/:*$//;
++s/^[^=]*=[ ]*$//;
++}'
++fi
++
++# Transform confdefs.h into DEFS.
++# Protect against shell expansion while executing Makefile rules.
++# Protect against Makefile macro expansion.
++#
++# If the first sed substitution is executed (which looks for macros that
++# take arguments), then we branch to the quote section. Otherwise,
++# look for a macro that doesn't take arguments.
++cat >confdef2opt.sed <<\_ACEOF
++t clear
++: clear
++s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g
++t quote
++s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g
++t quote
++d
++: quote
++s,[ `~#$^&*(){}\\|;'"<>?],\\&,g
++s,\[,\\&,g
++s,\],\\&,g
++s,\$,$$,g
++p
++_ACEOF
++# We use echo to avoid assuming a particular line-breaking character.
++# The extra dot is to prevent the shell from consuming trailing
++# line-breaks from the sub-command output. A line-break within
++# single-quotes doesn't work because, if this script is created in a
++# platform that uses two characters for line-breaks (e.g., DOS), tr
++# would break.
++ac_LF_and_DOT=`echo; echo .`
++DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
++rm -f confdef2opt.sed
++
++
++ac_libobjs=
++ac_ltlibobjs=
++for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
++ # 1. Remove the extension, and $U if already installed.
++ ac_i=`echo "$ac_i" |
++ sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
++ # 2. Add them.
++ ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
++ ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
++done
++LIBOBJS=$ac_libobjs
++
++LTLIBOBJS=$ac_ltlibobjs
++
++
++if test -z "${MAY_SUPPLY_SYSCALLS_TRUE}" && test -z "${MAY_SUPPLY_SYSCALLS_FALSE}"; then
++ { { echo "$as_me:$LINENO: error: conditional \"MAY_SUPPLY_SYSCALLS\" was never defined.
++Usually this means the macro was only invoked conditionally." >&5
++echo "$as_me: error: conditional \"MAY_SUPPLY_SYSCALLS\" was never defined.
++Usually this means the macro was only invoked conditionally." >&2;}
++ { (exit 1); exit 1; }; }
++fi
++if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
++ { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
++Usually this means the macro was only invoked conditionally." >&5
++echo "$as_me: error: conditional \"AMDEP\" was never defined.
++Usually this means the macro was only invoked conditionally." >&2;}
++ { (exit 1); exit 1; }; }
++fi
++if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
++ { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
++Usually this means the macro was only invoked conditionally." >&5
++echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
++Usually this means the macro was only invoked conditionally." >&2;}
++ { (exit 1); exit 1; }; }
++fi
++if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
++ { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
++Usually this means the macro was only invoked conditionally." >&5
++echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
++Usually this means the macro was only invoked conditionally." >&2;}
++ { (exit 1); exit 1; }; }
++fi
++if test -z "${ELIX_LEVEL_0_TRUE}" && test -z "${ELIX_LEVEL_0_FALSE}"; then
++ { { echo "$as_me:$LINENO: error: conditional \"ELIX_LEVEL_0\" was never defined.
++Usually this means the macro was only invoked conditionally." >&5
++echo "$as_me: error: conditional \"ELIX_LEVEL_0\" was never defined.
++Usually this means the macro was only invoked conditionally." >&2;}
++ { (exit 1); exit 1; }; }
++fi
++if test -z "${ELIX_LEVEL_1_TRUE}" && test -z "${ELIX_LEVEL_1_FALSE}"; then
++ { { echo "$as_me:$LINENO: error: conditional \"ELIX_LEVEL_1\" was never defined.
++Usually this means the macro was only invoked conditionally." >&5
++echo "$as_me: error: conditional \"ELIX_LEVEL_1\" was never defined.
++Usually this means the macro was only invoked conditionally." >&2;}
++ { (exit 1); exit 1; }; }
++fi
++if test -z "${ELIX_LEVEL_2_TRUE}" && test -z "${ELIX_LEVEL_2_FALSE}"; then
++ { { echo "$as_me:$LINENO: error: conditional \"ELIX_LEVEL_2\" was never defined.
++Usually this means the macro was only invoked conditionally." >&5
++echo "$as_me: error: conditional \"ELIX_LEVEL_2\" was never defined.
++Usually this means the macro was only invoked conditionally." >&2;}
++ { (exit 1); exit 1; }; }
++fi
++if test -z "${ELIX_LEVEL_3_TRUE}" && test -z "${ELIX_LEVEL_3_FALSE}"; then
++ { { echo "$as_me:$LINENO: error: conditional \"ELIX_LEVEL_3\" was never defined.
++Usually this means the macro was only invoked conditionally." >&5
++echo "$as_me: error: conditional \"ELIX_LEVEL_3\" was never defined.
++Usually this means the macro was only invoked conditionally." >&2;}
++ { (exit 1); exit 1; }; }
++fi
++if test -z "${ELIX_LEVEL_4_TRUE}" && test -z "${ELIX_LEVEL_4_FALSE}"; then
++ { { echo "$as_me:$LINENO: error: conditional \"ELIX_LEVEL_4\" was never defined.
++Usually this means the macro was only invoked conditionally." >&5
++echo "$as_me: error: conditional \"ELIX_LEVEL_4\" was never defined.
++Usually this means the macro was only invoked conditionally." >&2;}
++ { (exit 1); exit 1; }; }
++fi
++if test -z "${USE_LIBTOOL_TRUE}" && test -z "${USE_LIBTOOL_FALSE}"; then
++ { { echo "$as_me:$LINENO: error: conditional \"USE_LIBTOOL\" was never defined.
++Usually this means the macro was only invoked conditionally." >&5
++echo "$as_me: error: conditional \"USE_LIBTOOL\" was never defined.
++Usually this means the macro was only invoked conditionally." >&2;}
++ { (exit 1); exit 1; }; }
++fi
++
++: ${CONFIG_STATUS=./config.status}
++ac_clean_files_save=$ac_clean_files
++ac_clean_files="$ac_clean_files $CONFIG_STATUS"
++{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
++echo "$as_me: creating $CONFIG_STATUS" >&6;}
++cat >$CONFIG_STATUS <<_ACEOF
++#! $SHELL
++# Generated by $as_me.
++# Run this file to recreate the current configuration.
++# Compiler output produced by configure, useful for debugging
++# configure, is in config.log if it exists.
++
++debug=false
++ac_cs_recheck=false
++ac_cs_silent=false
++SHELL=\${CONFIG_SHELL-$SHELL}
++_ACEOF
++
++cat >>$CONFIG_STATUS <<\_ACEOF
++## --------------------- ##
++## M4sh Initialization. ##
++## --------------------- ##
++
++# Be Bourne compatible
++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
++ emulate sh
++ NULLCMD=:
++ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
++ # is contrary to our usage. Disable this feature.
++ alias -g '${1+"$@"}'='"$@"'
++elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
++ set -o posix
++fi
++DUALCASE=1; export DUALCASE # for MKS sh
++
++# Support unset when possible.
++if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
++ as_unset=unset
++else
++ as_unset=false
++fi
++
++
++# Work around bugs in pre-3.0 UWIN ksh.
++$as_unset ENV MAIL MAILPATH
++PS1='$ '
++PS2='> '
++PS4='+ '
++
++# NLS nuisances.
++for as_var in \
++ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
++ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
++ LC_TELEPHONE LC_TIME
++do
++ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
++ eval $as_var=C; export $as_var
++ else
++ $as_unset $as_var
++ fi
++done
++
++# Required to use basename.
++if expr a : '\(a\)' >/dev/null 2>&1; then
++ as_expr=expr
++else
++ as_expr=false
++fi
++
++if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
++ as_basename=basename
++else
++ as_basename=false
++fi
++
++
++# Name of the executable.
++as_me=`$as_basename "$0" ||
++$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
++ X"$0" : 'X\(//\)$' \| \
++ X"$0" : 'X\(/\)$' \| \
++ . : '\(.\)' 2>/dev/null ||
++echo X/"$0" |
++ sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
++ /^X\/\(\/\/\)$/{ s//\1/; q; }
++ /^X\/\(\/\).*/{ s//\1/; q; }
++ s/.*/./; q'`
++
++
++# PATH needs CR, and LINENO needs CR and PATH.
++# Avoid depending upon Character Ranges.
++as_cr_letters='abcdefghijklmnopqrstuvwxyz'
++as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
++as_cr_Letters=$as_cr_letters$as_cr_LETTERS
++as_cr_digits='0123456789'
++as_cr_alnum=$as_cr_Letters$as_cr_digits
++
++# The user is always right.
++if test "${PATH_SEPARATOR+set}" != set; then
++ echo "#! /bin/sh" >conf$$.sh
++ echo "exit 0" >>conf$$.sh
++ chmod +x conf$$.sh
++ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
++ PATH_SEPARATOR=';'
++ else
++ PATH_SEPARATOR=:
++ fi
++ rm -f conf$$.sh
++fi
++
++
++ as_lineno_1=$LINENO
++ as_lineno_2=$LINENO
++ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
++ test "x$as_lineno_1" != "x$as_lineno_2" &&
++ test "x$as_lineno_3" = "x$as_lineno_2" || {
++ # Find who we are. Look in the path if we contain no path at all
++ # relative or not.
++ case $0 in
++ *[\\/]* ) as_myself=$0 ;;
++ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
++done
++
++ ;;
++ esac
++ # We did not find ourselves, most probably we were run as `sh COMMAND'
++ # in which case we are not to be found in the path.
++ if test "x$as_myself" = x; then
++ as_myself=$0
++ fi
++ if test ! -f "$as_myself"; then
++ { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
++echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
++ { (exit 1); exit 1; }; }
++ fi
++ case $CONFIG_SHELL in
++ '')
++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for as_base in sh bash ksh sh5; do
++ case $as_dir in
++ /*)
++ if ("$as_dir/$as_base" -c '
++ as_lineno_1=$LINENO
++ as_lineno_2=$LINENO
++ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
++ test "x$as_lineno_1" != "x$as_lineno_2" &&
++ test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
++ $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
++ $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
++ CONFIG_SHELL=$as_dir/$as_base
++ export CONFIG_SHELL
++ exec "$CONFIG_SHELL" "$0" ${1+"$@"}
++ fi;;
++ esac
++ done
++done
++;;
++ esac
++
++ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
++ # uniformly replaced by the line number. The first 'sed' inserts a
++ # line-number line before each line; the second 'sed' does the real
++ # work. The second script uses 'N' to pair each line-number line
++ # with the numbered line, and appends trailing '-' during
++ # substitution so that $LINENO is not a special case at line end.
++ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
++ # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
++ sed '=' <$as_myself |
++ sed '
++ N
++ s,$,-,
++ : loop
++ s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
++ t loop
++ s,-$,,
++ s,^['$as_cr_digits']*\n,,
++ ' >$as_me.lineno &&
++ chmod +x $as_me.lineno ||
++ { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
++echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
++ { (exit 1); exit 1; }; }
++
++ # Don't try to exec as it changes $[0], causing all sort of problems
++ # (the dirname of $[0] is not the place where we might find the
++ # original and so on. Autoconf is especially sensible to this).
++ . ./$as_me.lineno
++ # Exit status is that of the last command.
++ exit
++}
++
++
++case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
++ *c*,-n*) ECHO_N= ECHO_C='
++' ECHO_T=' ' ;;
++ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
++ *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
++esac
++
++if expr a : '\(a\)' >/dev/null 2>&1; then
++ as_expr=expr
++else
++ as_expr=false
++fi
++
++rm -f conf$$ conf$$.exe conf$$.file
++echo >conf$$.file
++if ln -s conf$$.file conf$$ 2>/dev/null; then
++ # We could just check for DJGPP; but this test a) works b) is more generic
++ # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
++ if test -f conf$$.exe; then
++ # Don't use ln at all; we don't have any links
++ as_ln_s='cp -p'
++ else
++ as_ln_s='ln -s'
++ fi
++elif ln conf$$.file conf$$ 2>/dev/null; then
++ as_ln_s=ln
++else
++ as_ln_s='cp -p'
++fi
++rm -f conf$$ conf$$.exe conf$$.file
++
++if mkdir -p . 2>/dev/null; then
++ as_mkdir_p=:
++else
++ test -d ./-p && rmdir ./-p
++ as_mkdir_p=false
++fi
++
++as_executable_p="test -f"
++
++# Sed expression to map a string onto a valid CPP name.
++as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
++
++# Sed expression to map a string onto a valid variable name.
++as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
++
++
++# IFS
++# We need space, tab and new line, in precisely that order.
++as_nl='
++'
++IFS=" $as_nl"
++
++# CDPATH.
++$as_unset CDPATH
++
++exec 6>&1
++
++# Open the log real soon, to keep \$[0] and so on meaningful, and to
++# report actual input values of CONFIG_FILES etc. instead of their
++# values after options handling. Logging --version etc. is OK.
++exec 5>>config.log
++{
++ echo
++ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
++## Running $as_me. ##
++_ASBOX
++} >&5
++cat >&5 <<_CSEOF
++
++This file was extended by newlib $as_me 1.15.0, which was
++generated by GNU Autoconf 2.59. Invocation command line was
++
++ CONFIG_FILES = $CONFIG_FILES
++ CONFIG_HEADERS = $CONFIG_HEADERS
++ CONFIG_LINKS = $CONFIG_LINKS
++ CONFIG_COMMANDS = $CONFIG_COMMANDS
++ $ $0 $@
++
++_CSEOF
++echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
++echo >&5
++_ACEOF
++
++# Files that config.status was made for.
++if test -n "$ac_config_files"; then
++ echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
++fi
++
++if test -n "$ac_config_headers"; then
++ echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
++fi
++
++if test -n "$ac_config_links"; then
++ echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
++fi
++
++if test -n "$ac_config_commands"; then
++ echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
++fi
++
++cat >>$CONFIG_STATUS <<\_ACEOF
++
++ac_cs_usage="\
++\`$as_me' instantiates files from templates according to the
++current configuration.
++
++Usage: $0 [OPTIONS] [FILE]...
++
++ -h, --help print this help, then exit
++ -V, --version print version number, then exit
++ -q, --quiet do not print progress messages
++ -d, --debug don't remove temporary files
++ --recheck update $as_me by reconfiguring in the same conditions
++ --file=FILE[:TEMPLATE]
++ instantiate the configuration file FILE
++
++Configuration files:
++$config_files
++
++Configuration commands:
++$config_commands
++
++Report bugs to <bug-autoconf@gnu.org>."
++_ACEOF
++
++cat >>$CONFIG_STATUS <<_ACEOF
++ac_cs_version="\\
++newlib config.status 1.15.0
++configured by $0, generated by GNU Autoconf 2.59,
++ with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
++
++Copyright (C) 2003 Free Software Foundation, Inc.
++This config.status script is free software; the Free Software Foundation
++gives unlimited permission to copy, distribute and modify it."
++srcdir=$srcdir
++INSTALL="$INSTALL"
++_ACEOF
++
++cat >>$CONFIG_STATUS <<\_ACEOF
++# If no file are specified by the user, then we need to provide default
++# value. By we need to know if files were specified by the user.
++ac_need_defaults=:
++while test $# != 0
++do
++ case $1 in
++ --*=*)
++ ac_option=`expr "x$1" : 'x\([^=]*\)='`
++ ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
++ ac_shift=:
++ ;;
++ -*)
++ ac_option=$1
++ ac_optarg=$2
++ ac_shift=shift
++ ;;
++ *) # This is not an option, so the user has probably given explicit
++ # arguments.
++ ac_option=$1
++ ac_need_defaults=false;;
++ esac
++
++ case $ac_option in
++ # Handling of the options.
++_ACEOF
++cat >>$CONFIG_STATUS <<\_ACEOF
++ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
++ ac_cs_recheck=: ;;
++ --version | --vers* | -V )
++ echo "$ac_cs_version"; exit 0 ;;
++ --he | --h)
++ # Conflict between --help and --header
++ { { echo "$as_me:$LINENO: error: ambiguous option: $1
++Try \`$0 --help' for more information." >&5
++echo "$as_me: error: ambiguous option: $1
++Try \`$0 --help' for more information." >&2;}
++ { (exit 1); exit 1; }; };;
++ --help | --hel | -h )
++ echo "$ac_cs_usage"; exit 0 ;;
++ --debug | --d* | -d )
++ debug=: ;;
++ --file | --fil | --fi | --f )
++ $ac_shift
++ CONFIG_FILES="$CONFIG_FILES $ac_optarg"
++ ac_need_defaults=false;;
++ --header | --heade | --head | --hea )
++ $ac_shift
++ CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
++ ac_need_defaults=false;;
++ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
++ | -silent | --silent | --silen | --sile | --sil | --si | --s)
++ ac_cs_silent=: ;;
++
++ # This is an error.
++ -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
++Try \`$0 --help' for more information." >&5
++echo "$as_me: error: unrecognized option: $1
++Try \`$0 --help' for more information." >&2;}
++ { (exit 1); exit 1; }; } ;;
++
++ *) ac_config_targets="$ac_config_targets $1" ;;
++
++ esac
++ shift
++done
++
++ac_configure_extra_args=
++
++if $ac_cs_silent; then
++ exec 6>/dev/null
++ ac_configure_extra_args="$ac_configure_extra_args --silent"
++fi
++
++_ACEOF
++cat >>$CONFIG_STATUS <<_ACEOF
++if \$ac_cs_recheck; then
++ echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
++ exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
++fi
++
++_ACEOF
++
++cat >>$CONFIG_STATUS <<_ACEOF
++#
++# INIT-COMMANDS section.
++#
++
++AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
++
++_ACEOF
++
++
++
++cat >>$CONFIG_STATUS <<\_ACEOF
++for ac_config_target in $ac_config_targets
++do
++ case "$ac_config_target" in
++ # Handling of arguments.
++ "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
++ "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
++ *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
++echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
++ { (exit 1); exit 1; }; };;
++ esac
++done
++
++# If the user did not use the arguments to specify the items to instantiate,
++# then the envvar interface is used. Set only those that are not.
++# We use the long form for the default assignment because of an extremely
++# bizarre bug on SunOS 4.1.3.
++if $ac_need_defaults; then
++ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
++ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
++fi
++
++# Have a temporary directory for convenience. Make it in the build tree
++# simply because there is no reason to put it here, and in addition,
++# creating and moving files from /tmp can sometimes cause problems.
++# Create a temporary directory, and hook for its removal unless debugging.
++$debug ||
++{
++ trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
++ trap '{ (exit 1); exit 1; }' 1 2 13 15
++}
++
++# Create a (secure) tmp directory for tmp files.
++
++{
++ tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
++ test -n "$tmp" && test -d "$tmp"
++} ||
++{
++ tmp=./confstat$$-$RANDOM
++ (umask 077 && mkdir $tmp)
++} ||
++{
++ echo "$me: cannot create a temporary directory in ." >&2
++ { (exit 1); exit 1; }
++}
++
++_ACEOF
++
++cat >>$CONFIG_STATUS <<_ACEOF
++
++#
++# CONFIG_FILES section.
++#
++
++# No need to generate the scripts if there are no CONFIG_FILES.
++# This happens for instance when ./config.status config.h
++if test -n "\$CONFIG_FILES"; then
++ # Protect against being on the right side of a sed subst in config.status.
++ sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
++ s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
++s,@SHELL@,$SHELL,;t t
++s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
++s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
++s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
++s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
++s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
++s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
++s,@exec_prefix@,$exec_prefix,;t t
++s,@prefix@,$prefix,;t t
++s,@program_transform_name@,$program_transform_name,;t t
++s,@bindir@,$bindir,;t t
++s,@sbindir@,$sbindir,;t t
++s,@libexecdir@,$libexecdir,;t t
++s,@datadir@,$datadir,;t t
++s,@sysconfdir@,$sysconfdir,;t t
++s,@sharedstatedir@,$sharedstatedir,;t t
++s,@localstatedir@,$localstatedir,;t t
++s,@libdir@,$libdir,;t t
++s,@includedir@,$includedir,;t t
++s,@oldincludedir@,$oldincludedir,;t t
++s,@infodir@,$infodir,;t t
++s,@mandir@,$mandir,;t t
++s,@build_alias@,$build_alias,;t t
++s,@host_alias@,$host_alias,;t t
++s,@target_alias@,$target_alias,;t t
++s,@DEFS@,$DEFS,;t t
++s,@ECHO_C@,$ECHO_C,;t t
++s,@ECHO_N@,$ECHO_N,;t t
++s,@ECHO_T@,$ECHO_T,;t t
++s,@LIBS@,$LIBS,;t t
++s,@MAY_SUPPLY_SYSCALLS_TRUE@,$MAY_SUPPLY_SYSCALLS_TRUE,;t t
++s,@MAY_SUPPLY_SYSCALLS_FALSE@,$MAY_SUPPLY_SYSCALLS_FALSE,;t t
++s,@newlib_basedir@,$newlib_basedir,;t t
++s,@build@,$build,;t t
++s,@build_cpu@,$build_cpu,;t t
++s,@build_vendor@,$build_vendor,;t t
++s,@build_os@,$build_os,;t t
++s,@host@,$host,;t t
++s,@host_cpu@,$host_cpu,;t t
++s,@host_vendor@,$host_vendor,;t t
++s,@host_os@,$host_os,;t t
++s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
++s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
++s,@INSTALL_DATA@,$INSTALL_DATA,;t t
++s,@CYGPATH_W@,$CYGPATH_W,;t t
++s,@PACKAGE@,$PACKAGE,;t t
++s,@VERSION@,$VERSION,;t t
++s,@ACLOCAL@,$ACLOCAL,;t t
++s,@AUTOCONF@,$AUTOCONF,;t t
++s,@AUTOMAKE@,$AUTOMAKE,;t t
++s,@AUTOHEADER@,$AUTOHEADER,;t t
++s,@MAKEINFO@,$MAKEINFO,;t t
++s,@install_sh@,$install_sh,;t t
++s,@STRIP@,$STRIP,;t t
++s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
++s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
++s,@mkdir_p@,$mkdir_p,;t t
++s,@AWK@,$AWK,;t t
++s,@SET_MAKE@,$SET_MAKE,;t t
++s,@am__leading_dot@,$am__leading_dot,;t t
++s,@AMTAR@,$AMTAR,;t t
++s,@am__tar@,$am__tar,;t t
++s,@am__untar@,$am__untar,;t t
++s,@CC@,$CC,;t t
++s,@DEPDIR@,$DEPDIR,;t t
++s,@am__include@,$am__include,;t t
++s,@am__quote@,$am__quote,;t t
++s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t
++s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t
++s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
++s,@CCDEPMODE@,$CCDEPMODE,;t t
++s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
++s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
++s,@AS@,$AS,;t t
++s,@ac_ct_AS@,$ac_ct_AS,;t t
++s,@AR@,$AR,;t t
++s,@ac_ct_AR@,$ac_ct_AR,;t t
++s,@RANLIB@,$RANLIB,;t t
++s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
++s,@READELF@,$READELF,;t t
++s,@ac_ct_READELF@,$ac_ct_READELF,;t t
++s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
++s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
++s,@MAINT@,$MAINT,;t t
++s,@CCAS@,$CCAS,;t t
++s,@CCASFLAGS@,$CCASFLAGS,;t t
++s,@NEWLIB_CFLAGS@,$NEWLIB_CFLAGS,;t t
++s,@LDFLAGS@,$LDFLAGS,;t t
++s,@ELIX_LEVEL_0_TRUE@,$ELIX_LEVEL_0_TRUE,;t t
++s,@ELIX_LEVEL_0_FALSE@,$ELIX_LEVEL_0_FALSE,;t t
++s,@ELIX_LEVEL_1_TRUE@,$ELIX_LEVEL_1_TRUE,;t t
++s,@ELIX_LEVEL_1_FALSE@,$ELIX_LEVEL_1_FALSE,;t t
++s,@ELIX_LEVEL_2_TRUE@,$ELIX_LEVEL_2_TRUE,;t t
++s,@ELIX_LEVEL_2_FALSE@,$ELIX_LEVEL_2_FALSE,;t t
++s,@ELIX_LEVEL_3_TRUE@,$ELIX_LEVEL_3_TRUE,;t t
++s,@ELIX_LEVEL_3_FALSE@,$ELIX_LEVEL_3_FALSE,;t t
++s,@ELIX_LEVEL_4_TRUE@,$ELIX_LEVEL_4_TRUE,;t t
++s,@ELIX_LEVEL_4_FALSE@,$ELIX_LEVEL_4_FALSE,;t t
++s,@USE_LIBTOOL_TRUE@,$USE_LIBTOOL_TRUE,;t t
++s,@USE_LIBTOOL_FALSE@,$USE_LIBTOOL_FALSE,;t t
++s,@OBJEXT@,$OBJEXT,;t t
++s,@oext@,$oext,;t t
++s,@aext@,$aext,;t t
++s,@lpfx@,$lpfx,;t t
++s,@libm_machine_dir@,$libm_machine_dir,;t t
++s,@machine_dir@,$machine_dir,;t t
++s,@sys_dir@,$sys_dir,;t t
++s,@LIBOBJS@,$LIBOBJS,;t t
++s,@LTLIBOBJS@,$LTLIBOBJS,;t t
++CEOF
++
++_ACEOF
++
++ cat >>$CONFIG_STATUS <<\_ACEOF
++ # 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_lines=48
++ ac_sed_frag=1 # Number of current file.
++ ac_beg=1 # First line for current file.
++ ac_end=$ac_max_sed_lines # 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" $tmp/subs.sed >$tmp/subs.frag
++ else
++ sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
++ fi
++ if test ! -s $tmp/subs.frag; then
++ ac_more_lines=false
++ else
++ # The purpose of the label and of the branching condition is to
++ # speed up the sed processing (if there are no `@' at all, there
++ # is no need to browse any of the substitutions).
++ # These are the two extra sed commands mentioned above.
++ (echo ':t
++ /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
++ if test -z "$ac_sed_cmds"; then
++ ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
++ else
++ ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
++ fi
++ ac_sed_frag=`expr $ac_sed_frag + 1`
++ ac_beg=$ac_end
++ ac_end=`expr $ac_end + $ac_max_sed_lines`
++ fi
++ done
++ if test -z "$ac_sed_cmds"; then
++ ac_sed_cmds=cat
++ fi
++fi # test -n "$CONFIG_FILES"
++
++_ACEOF
++cat >>$CONFIG_STATUS <<\_ACEOF
++for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
++ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
++ case $ac_file in
++ - | *:- | *:-:* ) # input from stdin
++ cat >$tmp/stdin
++ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
++ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
++ *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
++ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
++ * ) ac_file_in=$ac_file.in ;;
++ esac
++
++ # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
++ ac_dir=`(dirname "$ac_file") 2>/dev/null ||
++$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++ X"$ac_file" : 'X\(//\)[^/]' \| \
++ X"$ac_file" : 'X\(//\)$' \| \
++ X"$ac_file" : 'X\(/\)' \| \
++ . : '\(.\)' 2>/dev/null ||
++echo X"$ac_file" |
++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
++ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
++ /^X\(\/\/\)$/{ s//\1/; q; }
++ /^X\(\/\).*/{ s//\1/; q; }
++ s/.*/./; q'`
++ { if $as_mkdir_p; then
++ mkdir -p "$ac_dir"
++ else
++ as_dir="$ac_dir"
++ as_dirs=
++ while test ! -d "$as_dir"; do
++ as_dirs="$as_dir $as_dirs"
++ as_dir=`(dirname "$as_dir") 2>/dev/null ||
++$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++ X"$as_dir" : 'X\(//\)[^/]' \| \
++ X"$as_dir" : 'X\(//\)$' \| \
++ X"$as_dir" : 'X\(/\)' \| \
++ . : '\(.\)' 2>/dev/null ||
++echo X"$as_dir" |
++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
++ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
++ /^X\(\/\/\)$/{ s//\1/; q; }
++ /^X\(\/\).*/{ s//\1/; q; }
++ s/.*/./; q'`
++ done
++ test ! -n "$as_dirs" || mkdir $as_dirs
++ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
++echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
++ { (exit 1); exit 1; }; }; }
++
++ ac_builddir=.
++
++if test "$ac_dir" != .; then
++ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
++ # A "../" for each directory in $ac_dir_suffix.
++ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
++else
++ ac_dir_suffix= ac_top_builddir=
++fi
++
++case $srcdir in
++ .) # No --srcdir option. We are building in place.
++ ac_srcdir=.
++ if test -z "$ac_top_builddir"; then
++ ac_top_srcdir=.
++ else
++ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
++ fi ;;
++ [\\/]* | ?:[\\/]* ) # Absolute path.
++ ac_srcdir=$srcdir$ac_dir_suffix;
++ ac_top_srcdir=$srcdir ;;
++ *) # Relative path.
++ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
++ ac_top_srcdir=$ac_top_builddir$srcdir ;;
++esac
++
++# Do not use `cd foo && pwd` to compute absolute paths, because
++# the directories may not exist.
++case `pwd` in
++.) ac_abs_builddir="$ac_dir";;
++*)
++ case "$ac_dir" in
++ .) ac_abs_builddir=`pwd`;;
++ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
++ *) ac_abs_builddir=`pwd`/"$ac_dir";;
++ esac;;
++esac
++case $ac_abs_builddir in
++.) ac_abs_top_builddir=${ac_top_builddir}.;;
++*)
++ case ${ac_top_builddir}. in
++ .) ac_abs_top_builddir=$ac_abs_builddir;;
++ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
++ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
++ esac;;
++esac
++case $ac_abs_builddir in
++.) ac_abs_srcdir=$ac_srcdir;;
++*)
++ case $ac_srcdir in
++ .) ac_abs_srcdir=$ac_abs_builddir;;
++ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
++ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
++ esac;;
++esac
++case $ac_abs_builddir in
++.) ac_abs_top_srcdir=$ac_top_srcdir;;
++*)
++ case $ac_top_srcdir in
++ .) ac_abs_top_srcdir=$ac_abs_builddir;;
++ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
++ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
++ esac;;
++esac
++
++
++ case $INSTALL in
++ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
++ *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
++ esac
++
++ if test x"$ac_file" != x-; then
++ { echo "$as_me:$LINENO: creating $ac_file" >&5
++echo "$as_me: creating $ac_file" >&6;}
++ rm -f "$ac_file"
++ fi
++ # Let's still pretend it is `configure' which instantiates (i.e., don't
++ # use $as_me), people would be surprised to read:
++ # /* config.h. Generated by config.status. */
++ if test x"$ac_file" = x-; then
++ configure_input=
++ else
++ configure_input="$ac_file. "
++ fi
++ configure_input=$configure_input"Generated from `echo $ac_file_in |
++ sed 's,.*/,,'` by configure."
++
++ # First look for the input files in the build tree, otherwise in the
++ # src tree.
++ ac_file_inputs=`IFS=:
++ for f in $ac_file_in; do
++ case $f in
++ -) echo $tmp/stdin ;;
++ [\\/$]*)
++ # Absolute (can't be DOS-style, as IFS=:)
++ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
++echo "$as_me: error: cannot find input file: $f" >&2;}
++ { (exit 1); exit 1; }; }
++ echo "$f";;
++ *) # Relative
++ if test -f "$f"; then
++ # Build tree
++ echo "$f"
++ elif test -f "$srcdir/$f"; then
++ # Source tree
++ echo "$srcdir/$f"
++ else
++ # /dev/null tree
++ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
++echo "$as_me: error: cannot find input file: $f" >&2;}
++ { (exit 1); exit 1; }; }
++ fi;;
++ esac
++ done` || { (exit 1); exit 1; }
++_ACEOF
++cat >>$CONFIG_STATUS <<_ACEOF
++ sed "$ac_vpsub
++$extrasub
++_ACEOF
++cat >>$CONFIG_STATUS <<\_ACEOF
++:t
++/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
++s,@configure_input@,$configure_input,;t t
++s,@srcdir@,$ac_srcdir,;t t
++s,@abs_srcdir@,$ac_abs_srcdir,;t t
++s,@top_srcdir@,$ac_top_srcdir,;t t
++s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
++s,@builddir@,$ac_builddir,;t t
++s,@abs_builddir@,$ac_abs_builddir,;t t
++s,@top_builddir@,$ac_top_builddir,;t t
++s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
++s,@INSTALL@,$ac_INSTALL,;t t
++" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
++ rm -f $tmp/stdin
++ if test x"$ac_file" != x-; then
++ mv $tmp/out $ac_file
++ else
++ cat $tmp/out
++ rm -f $tmp/out
++ fi
++
++done
++_ACEOF
++cat >>$CONFIG_STATUS <<\_ACEOF
++
++#
++# CONFIG_COMMANDS section.
++#
++for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
++ ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
++ ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
++ ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
++$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++ X"$ac_dest" : 'X\(//\)[^/]' \| \
++ X"$ac_dest" : 'X\(//\)$' \| \
++ X"$ac_dest" : 'X\(/\)' \| \
++ . : '\(.\)' 2>/dev/null ||
++echo X"$ac_dest" |
++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
++ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
++ /^X\(\/\/\)$/{ s//\1/; q; }
++ /^X\(\/\).*/{ s//\1/; q; }
++ s/.*/./; q'`
++ { if $as_mkdir_p; then
++ mkdir -p "$ac_dir"
++ else
++ as_dir="$ac_dir"
++ as_dirs=
++ while test ! -d "$as_dir"; do
++ as_dirs="$as_dir $as_dirs"
++ as_dir=`(dirname "$as_dir") 2>/dev/null ||
++$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++ X"$as_dir" : 'X\(//\)[^/]' \| \
++ X"$as_dir" : 'X\(//\)$' \| \
++ X"$as_dir" : 'X\(/\)' \| \
++ . : '\(.\)' 2>/dev/null ||
++echo X"$as_dir" |
++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
++ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
++ /^X\(\/\/\)$/{ s//\1/; q; }
++ /^X\(\/\).*/{ s//\1/; q; }
++ s/.*/./; q'`
++ done
++ test ! -n "$as_dirs" || mkdir $as_dirs
++ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
++echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
++ { (exit 1); exit 1; }; }; }
++
++ ac_builddir=.
++
++if test "$ac_dir" != .; then
++ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
++ # A "../" for each directory in $ac_dir_suffix.
++ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
++else
++ ac_dir_suffix= ac_top_builddir=
++fi
++
++case $srcdir in
++ .) # No --srcdir option. We are building in place.
++ ac_srcdir=.
++ if test -z "$ac_top_builddir"; then
++ ac_top_srcdir=.
++ else
++ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
++ fi ;;
++ [\\/]* | ?:[\\/]* ) # Absolute path.
++ ac_srcdir=$srcdir$ac_dir_suffix;
++ ac_top_srcdir=$srcdir ;;
++ *) # Relative path.
++ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
++ ac_top_srcdir=$ac_top_builddir$srcdir ;;
++esac
++
++# Do not use `cd foo && pwd` to compute absolute paths, because
++# the directories may not exist.
++case `pwd` in
++.) ac_abs_builddir="$ac_dir";;
++*)
++ case "$ac_dir" in
++ .) ac_abs_builddir=`pwd`;;
++ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
++ *) ac_abs_builddir=`pwd`/"$ac_dir";;
++ esac;;
++esac
++case $ac_abs_builddir in
++.) ac_abs_top_builddir=${ac_top_builddir}.;;
++*)
++ case ${ac_top_builddir}. in
++ .) ac_abs_top_builddir=$ac_abs_builddir;;
++ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
++ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
++ esac;;
++esac
++case $ac_abs_builddir in
++.) ac_abs_srcdir=$ac_srcdir;;
++*)
++ case $ac_srcdir in
++ .) ac_abs_srcdir=$ac_abs_builddir;;
++ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
++ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
++ esac;;
++esac
++case $ac_abs_builddir in
++.) ac_abs_top_srcdir=$ac_top_srcdir;;
++*)
++ case $ac_top_srcdir in
++ .) ac_abs_top_srcdir=$ac_abs_builddir;;
++ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
++ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
++ esac;;
++esac
++
++
++ { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
++echo "$as_me: executing $ac_dest commands" >&6;}
++ case $ac_dest in
++ depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
++ # Strip MF so we end up with the name of the file.
++ mf=`echo "$mf" | sed -e 's/:.*$//'`
++ # Check whether this is an Automake generated Makefile or not.
++ # We used to match only the files named `Makefile.in', but
++ # some people rename them; so instead we look at the file content.
++ # Grep'ing the first line is not enough: some people post-process
++ # each Makefile.in and add a new line on top of each file to say so.
++ # So let's grep whole file.
++ if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
++ dirpart=`(dirname "$mf") 2>/dev/null ||
++$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++ X"$mf" : 'X\(//\)[^/]' \| \
++ X"$mf" : 'X\(//\)$' \| \
++ X"$mf" : 'X\(/\)' \| \
++ . : '\(.\)' 2>/dev/null ||
++echo X"$mf" |
++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
++ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
++ /^X\(\/\/\)$/{ s//\1/; q; }
++ /^X\(\/\).*/{ s//\1/; q; }
++ s/.*/./; q'`
++ else
++ continue
++ fi
++ # Extract the definition of DEPDIR, am__include, and am__quote
++ # from the Makefile without running `make'.
++ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
++ test -z "$DEPDIR" && continue
++ am__include=`sed -n 's/^am__include = //p' < "$mf"`
++ test -z "am__include" && continue
++ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
++ # When using ansi2knr, U may be empty or an underscore; expand it
++ U=`sed -n 's/^U = //p' < "$mf"`
++ # Find all dependency output files, they are included files with
++ # $(DEPDIR) in their names. We invoke sed twice because it is the
++ # simplest approach to changing $(DEPDIR) to its actual value in the
++ # expansion.
++ for file in `sed -n "
++ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
++ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
++ # Make sure the directory exists.
++ test -f "$dirpart/$file" && continue
++ fdir=`(dirname "$file") 2>/dev/null ||
++$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++ X"$file" : 'X\(//\)[^/]' \| \
++ X"$file" : 'X\(//\)$' \| \
++ X"$file" : 'X\(/\)' \| \
++ . : '\(.\)' 2>/dev/null ||
++echo X"$file" |
++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
++ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
++ /^X\(\/\/\)$/{ s//\1/; q; }
++ /^X\(\/\).*/{ s//\1/; q; }
++ s/.*/./; q'`
++ { if $as_mkdir_p; then
++ mkdir -p $dirpart/$fdir
++ else
++ as_dir=$dirpart/$fdir
++ as_dirs=
++ while test ! -d "$as_dir"; do
++ as_dirs="$as_dir $as_dirs"
++ as_dir=`(dirname "$as_dir") 2>/dev/null ||
++$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++ X"$as_dir" : 'X\(//\)[^/]' \| \
++ X"$as_dir" : 'X\(//\)$' \| \
++ X"$as_dir" : 'X\(/\)' \| \
++ . : '\(.\)' 2>/dev/null ||
++echo X"$as_dir" |
++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
++ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
++ /^X\(\/\/\)$/{ s//\1/; q; }
++ /^X\(\/\).*/{ s//\1/; q; }
++ s/.*/./; q'`
++ done
++ test ! -n "$as_dirs" || mkdir $as_dirs
++ fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
++echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
++ { (exit 1); exit 1; }; }; }
++
++ # echo "creating $dirpart/$file"
++ echo '# dummy' > "$dirpart/$file"
++ done
++done
++ ;;
++ esac
++done
++_ACEOF
++
++cat >>$CONFIG_STATUS <<\_ACEOF
++
++{ (exit 0); exit 0; }
++_ACEOF
++chmod +x $CONFIG_STATUS
++ac_clean_files=$ac_clean_files_save
++
++
++# configure is writing to config.log, and then calls config.status.
++# config.status does its own redirection, appending to config.log.
++# Unfortunately, on DOS this fails, as config.log is still kept open
++# by configure, so config.status won't be able to write to it; its
++# output is simply discarded. So we exec the FD to /dev/null,
++# effectively closing config.log, so it can be properly (re)opened and
++# appended to by config.status. When coming back to configure, we
++# need to make the FD available again.
++if test "$no_create" != yes; then
++ ac_cs_success=:
++ ac_config_status_args=
++ test "$silent" = yes &&
++ ac_config_status_args="$ac_config_status_args --quiet"
++ exec 5>/dev/null
++ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
++ exec 5>>config.log
++ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
++ # would make configure fail if this is the last instruction.
++ $ac_cs_success || { (exit 1); exit 1; }
++fi
++
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-configure.in b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-configure.in
new file mode 100644
index 000000000000..489562ef4faf
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-configure.in
@@ -0,0 +1,17 @@
+--- newlib/libc/sys/psp/configure.in.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/configure.in 2007-06-01 12:22:26.000000000 +0300
+@@ -0,0 +1,14 @@
++dnl This is the newlib/libc/sys/sun4 configure.in file.
++dnl Process this file with autoconf to produce a configure script.
++
++AC_PREREQ(2.59)
++AC_INIT([newlib],[NEWLIB_VERSION])
++AC_CONFIG_SRCDIR([libcglue.c])
++
++dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake.
++AC_CONFIG_AUX_DIR(../../../..)
++
++NEWLIB_CONFIGURE(../../..)
++
++AC_CONFIG_FILES(Makefile)
++AC_OUTPUT
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-crt0.c b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-crt0.c
new file mode 100644
index 000000000000..d060beab6984
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-crt0.c
@@ -0,0 +1,6 @@
+--- newlib/libc/sys/psp/crt0.c.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/crt0.c 2007-06-01 12:22:26.000000000 +0300
+@@ -0,0 +1,3 @@
++/* The real crt0.c lives in PSPSDK. */
++
++void _start() { }
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-fdman.c b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-fdman.c
new file mode 100644
index 000000000000..27502fae541e
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-fdman.c
@@ -0,0 +1,118 @@
+--- newlib/libc/sys/psp/fdman.c.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/fdman.c 2007-06-01 12:22:26.000000000 +0300
+@@ -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 <rafpsp@gmail.com>
++ */
++#include <psptypes.h>
++#include <errno.h>
++#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 >= 0) && (scefd < __PSP_FILENO_MAX)) {
++ __psp_descriptormap[0] = &__psp_descriptor_data_pool[0];
++ __psp_descriptormap[0]->sce_descriptor = scefd;
++ __psp_descriptormap[0]->type = __PSP_DESCRIPTOR_TYPE_TTY;
++ }
++ scefd = sceKernelStdout();
++ if ((scefd >= 0) && (scefd < __PSP_FILENO_MAX)) {
++ __psp_descriptormap[1] = &__psp_descriptor_data_pool[1];
++ __psp_descriptormap[1]->sce_descriptor = scefd;
++ __psp_descriptormap[1]->type = __PSP_DESCRIPTOR_TYPE_TTY;
++ }
++ scefd = sceKernelStderr();
++ if ((scefd >= 0) && (scefd < __PSP_FILENO_MAX)) {
++ __psp_descriptormap[2] = &__psp_descriptor_data_pool[2];
++ __psp_descriptormap[2]->sce_descriptor = scefd;
++ __psp_descriptormap[2]->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 < __PSP_FILENO_MAX; i++) {
++ if (__psp_descriptormap[i] == NULL) {
++ __psp_descriptormap[i] = &__psp_descriptor_data_pool[i];
++ __psp_descriptormap[i]->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 < __PSP_FILENO_MAX; i++) {
++ if (__psp_descriptormap[i] == NULL) {
++ __psp_descriptormap[i] = &__psp_descriptor_data_pool[fd];
++ __psp_descriptormap[i]->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]->ref_count--;
++
++ if (__psp_descriptormap[fd]->ref_count == 0) {
++
++ if (__psp_descriptormap[fd]->filename != NULL) {
++ free(__psp_descriptormap[fd]->filename);
++ }
++ __psp_descriptormap[fd]->filename = NULL;
++ __psp_descriptormap[fd]->sce_descriptor = 0;
++ __psp_descriptormap[fd]->type = 0;
++ __psp_descriptormap[fd]->flags = 0;
++
++ }
++ __psp_descriptormap[fd] = NULL;
++}
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-fdman.h b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-fdman.h
new file mode 100644
index 000000000000..5f31a762b2e4
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-fdman.h
@@ -0,0 +1,47 @@
+--- newlib/libc/sys/psp/fdman.h.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/fdman.h 2007-06-01 12:22:26.000000000 +0300
+@@ -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 <rafpsp@gmail.com>
++ */
++
++#ifndef _FDMAN_H_
++ #define _FDMAN_H_
++
++ #define __PSP_FILENO_MAX 1024
++
++ #define __PSP_IS_FD_VALID(FD) \
++ ( (FD >= 0) && (FD < __PSP_FILENO_MAX) && (__psp_descriptormap[FD] != NULL) )
++
++ #define __PSP_IS_FD_OF_TYPE(FD, TYPE) \
++ ( (__PSP_IS_FD_VALID(FD)) && (__psp_descriptormap[FD]->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
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-include-netdb.h b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-include-netdb.h
new file mode 100644
index 000000000000..412165933f2f
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-include-netdb.h
@@ -0,0 +1,39 @@
+--- newlib/libc/sys/psp/include/netdb.h.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/include/netdb.h 2007-06-01 12:22:26.000000000 +0300
+@@ -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
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-interrupt.S b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-interrupt.S
new file mode 100644
index 000000000000..c6fb9ec371dc
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-interrupt.S
@@ -0,0 +1,69 @@
+--- newlib/libc/sys/psp/interrupt.S.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/interrupt.S 2007-06-01 12:22:26.000000000 +0300
+@@ -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
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-libcglue.c b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-libcglue.c
new file mode 100644
index 000000000000..2985d2966342
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-libcglue.c
@@ -0,0 +1,939 @@
+--- newlib/libc/sys/psp/libcglue.c.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/libcglue.c 2007-06-01 12:22:26.000000000 +0300
+@@ -0,0 +1,936 @@
++/*
++ * 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 <mrbrown@ocgnet.org>
++ * Copyright (c) 2005 James Forshaw <tyranid@gmail.com>
++ * Copyright (c) 2005 John Kelley <ps2dev@kelley.ca>
++ * Copyright (c) 2005 Jim Paris <jim@jtan.com>
++ *
++ */
++#include <errno.h>
++#include <malloc.h>
++#include <reent.h>
++#include <stdarg.h>
++#include <stdlib.h>
++#include <string.h>
++#include <time.h>
++#include <sys/fcntl.h>
++#include <sys/stat.h>
++#include <sys/time.h>
++#include <sys/types.h>
++#include <sys/unistd.h>
++#include <sys/dirent.h>
++#include <sys/socket.h>
++
++#include <psptypes.h>
++#include <pspiofilemgr.h>
++#include <pspmodulemgr.h>
++#include <pspsysmem.h>
++#include <pspthreadman.h>
++#include <psputils.h>
++#include <psputility.h>
++#include <pspstdio.h>
++#include <pspintrman.h>
++#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 & 0x80010000) == 0x80010000) {
++ errno = code & 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) >= 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) < 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 < 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) < 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) < 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) < 0) {
++ errno = ENAMETOOLONG;
++ return NULL;
++ }
++ if(access(resolved_path, F_OK) < 0) {
++ errno = ENOENT;
++ return NULL;
++ }
++ return resolved_path;
++}
++#endif
++
++/* Wrappers of the standard open(), close(), read(), write(), unlink() 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) < 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 & O_ACCMODE) + 1;
++
++ /* Translate standard open flags into the flags understood by the PSP kernel. */
++ if (flags & O_APPEND) {
++ sce_flags |= PSP_O_APPEND;
++ }
++ if (flags & O_CREAT) {
++ sce_flags |= PSP_O_CREAT;
++ }
++ if (flags & O_TRUNC) {
++ sce_flags |= PSP_O_TRUNC;
++ }
++ if (flags & O_EXCL) {
++ sce_flags |= PSP_O_EXCL;
++ }
++ if (flags & O_NONBLOCK) {
++ sce_flags |= PSP_O_NBLOCK;
++ }
++
++ scefd = sceIoOpen(dest, sce_flags, mode);
++ if (scefd >= 0) {
++ fd = __psp_fdman_get_new_descriptor();
++ if (fd != -1) {
++ __psp_descriptormap[fd]->sce_descriptor = scefd;
++ __psp_descriptormap[fd]->type = __PSP_DESCRIPTOR_TYPE_FILE;
++ __psp_descriptormap[fd]->flags = flags;
++ __psp_descriptormap[fd]->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]->type)
++ {
++ case __PSP_DESCRIPTOR_TYPE_FILE:
++ case __PSP_DESCRIPTOR_TYPE_TTY:
++ if (__psp_descriptormap[fd]->ref_count == 1) {
++ ret = __psp_set_errno(sceIoClose(__psp_descriptormap[fd]->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]->type)
++ {
++ case __PSP_DESCRIPTOR_TYPE_FILE:
++ case __PSP_DESCRIPTOR_TYPE_TTY:
++ return __psp_set_errno(sceIoRead(__psp_descriptormap[fd]->sce_descriptor, buf, size));
++ break;
++ case __PSP_DESCRIPTOR_TYPE_PIPE:
++ if (__psp_descriptormap[fd]->flags & 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]->type)
++ {
++ case __PSP_DESCRIPTOR_TYPE_FILE:
++ case __PSP_DESCRIPTOR_TYPE_TTY:
++ return __psp_set_errno(sceIoWrite(__psp_descriptormap[fd]->sce_descriptor, buf, size));
++ break;
++ case __PSP_DESCRIPTOR_TYPE_PIPE:
++ if (__psp_descriptormap[fd]->flags & 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]->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]->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) < 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_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) < 0) {
++ errno = ENOENT;
++ return NULL;
++ }
++
++ dirp = (DIR *)malloc(sizeof(DIR));
++
++ uid = sceIoDopen(dest);
++
++ if (uid < 0)
++ {
++ free(dirp);
++ (void) __psp_set_errno(uid);
++ return NULL;
++ }
++
++ dirp->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(&dirp->de, 0, sizeof(struct dirent));
++
++ ret = sceIoDread(dirp->uid, (SceIoDirent *)&dirp->de);
++ if (ret == 0) {
++ /* EOF */
++ errno = 0;
++ return NULL;
++ }
++ if (ret < 0) {
++ (void) __psp_set_errno(ret);
++ return NULL;
++ }
++
++ return &dirp->de;
++}
++#endif
++
++#ifdef F_closedir
++int closedir(DIR *dirp)
++{
++ if (dirp != NULL)
++ {
++ int uid;
++ uid = dirp->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 (&sce_newlib_heap_kb_size != NULL) {
++ heap_size = sce_newlib_heap_kb_size * 1024;
++ } else {
++ if (&__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 > 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) && (next_heap_ptr >= heap_bottom) && (next_heap_ptr < 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 > 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]->type)
++ {
++ case __PSP_DESCRIPTOR_TYPE_TTY:
++ memset(sbuf, '\0', sizeof(struct stat));
++ sbuf->st_mode = S_IFCHR;
++ return 0;
++ break;
++ case __PSP_DESCRIPTOR_TYPE_FILE:
++ if (__psp_descriptormap[fd]->filename != NULL) {
++ ret = stat(__psp_descriptormap[fd]->filename, sbuf);
++
++ /* Find true size of the open file */
++ oldpos = sceIoLseek(__psp_descriptormap[fd]->sce_descriptor, 0, SEEK_CUR);
++ if (oldpos != (off_t) -1) {
++ sbuf->st_size = (off_t) sceIoLseek(__psp_descriptormap[fd]->sce_descriptor, 0, SEEK_END);
++ sceIoLseek(__psp_descriptormap[fd]->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]->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(&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) < 0) {
++ errno = ENAMETOOLONG;
++ return -1;
++ }
++
++ memset(buf, '\0', sizeof(struct stat));
++ ret = sceIoGetstat(dest, &psp_stat);
++ if (ret < 0) {
++ return __psp_set_errno(ret);
++ }
++
++ buf->st_ctime = psp_to_epoch_time(psp_stat.st_ctime);
++ buf->st_atime = psp_to_epoch_time(psp_stat.st_atime);
++ buf->st_mtime = psp_to_epoch_time(psp_stat.st_mtime);
++
++ buf->st_mode = (psp_stat.st_mode & 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->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) < 0) {
++ errno = ENAMETOOLONG;
++ return -1;
++ }
++
++ psp_stat.st_size = length;
++ if(length < 0)
++ {
++ errno = EINVAL;
++ return -1;
++ }
++ return __psp_set_errno(sceIoChstat(dest, &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, &s))
++ return -1;
++ if (s.st_mode & S_IFDIR)
++ return 0;
++ if (flags & W_OK)
++ {
++ if (s.st_mode & 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]->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]->flags = newfl;
++
++ switch(__psp_descriptormap[fd]->type)
++ {
++ case __PSP_DESCRIPTOR_TYPE_FILE:
++ break;
++ case __PSP_DESCRIPTOR_TYPE_PIPE:
++ break;
++ case __PSP_DESCRIPTOR_TYPE_SOCKET:
++ if (newfl & O_NONBLOCK)
++ {
++ int one = 1;
++ return setsockopt(fd, SOL_SOCKET, SO_NONBLOCK, (char *)&one, sizeof(one));
++ }
++ else
++ {
++ int zero = 0;
++ return setsockopt(fd, SOL_SOCKET, SO_NONBLOCK, (char *)&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, &tzOffset);
++ int tzOffsetAbs = tzOffset < 0 ? -tzOffset : tzOffset;
++ int hours = tzOffsetAbs / 60;
++ int minutes = tzOffsetAbs - hours * 60;
++ int pspDaylight = 0;
++ sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_DAYLIGHTSAVINGS, &pspDaylight);
++ static char tz[18];
++ sprintf(tz, "GMT%s%02i:%02i%s", tzOffset < 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 (&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 */
++
++#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) < 0) {
++ errno = ENAMETOOLONG;
++ return -1;
++ }
++
++ if(__psp_path_absolute(new, newname, MAXPATHLEN) < 0) {
++ errno = ENAMETOOLONG;
++ return -1;
++ }
++
++ return __psp_set_errno(sceIoRename(oldname, newname));
++}
++#endif
++
++#ifdef F_nanosleep
++/* note: we don't use rem as we have no signals */
++int nanosleep(const struct timespec *req, struct timespec *rem)
++{
++ if( req == NULL )
++ return EFAULT;
++
++ if( rem != NULL ) {
++ rem->tv_sec = 0;
++ rem->tv_nsec = 0;
++ }
++
++ sceKernelDelayThreadCB( 1000000 * req->tv_sec + (req->tv_nsec / 1000) );
++
++ return 0;
++}
++#endif
++
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-netdb.c b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-netdb.c
new file mode 100644
index 000000000000..9a98f9cc9959
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-netdb.c
@@ -0,0 +1,106 @@
+--- newlib/libc/sys/psp/netdb.c.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/netdb.c 2007-06-01 12:22:26.000000000 +0300
+@@ -0,0 +1,103 @@
++/* Simple gethostbyname and gethostbyaddr replacements using the resolver lib */
++#include <stdio.h>
++#include <netdb.h>
++#include <netinet/in.h>
++#include <arpa/inet.h>
++#include <sys/socket.h>
++#include <pspkerneltypes.h>
++#include <pspnet_resolver.h>
++
++#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;
++ static char * aliases[1] = { NULL };
++ char buf[1024];
++ static char sname[MAX_NAME] = "";
++ static struct in_addr saddr = { 0 };
++ static char *addrlist[2] = { (char *) &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(&saddr, addr, len);
++
++ if(sceNetResolverCreate(&rid, buf, sizeof(buf)) < 0)
++ {
++ h_errno = NO_RECOVERY;
++ return NULL;
++ }
++
++ err = sceNetResolverStartAtoN(rid, &saddr, sname, sizeof(sname), 2, 3);
++ sceNetResolverStop(rid);
++ sceNetResolverDelete(rid);
++ if(err < 0)
++ {
++ h_errno = HOST_NOT_FOUND;
++ return NULL;
++ }
++
++ ent.h_name = sname;
++ ent.h_aliases = aliases;
++ ent.h_addrtype = AF_INET;
++ ent.h_length = sizeof(struct in_addr);
++ ent.h_addr_list = addrlist;
++ ent.h_addr = (char *) &saddr;
++
++ return &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 *) &saddr, NULL };
++ int rid;
++
++ if(sceNetInetInetAton(name, &saddr) == 0)
++ {
++ int err;
++
++ if(sceNetResolverCreate(&rid, buf, sizeof(buf)) < 0)
++ {
++ h_errno = NO_RECOVERY;
++ return NULL;
++ }
++
++ err = sceNetResolverStartNtoA(rid, name, &saddr, 2, 3);
++ sceNetResolverDelete(rid);
++ if(err < 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 *) &saddr;
++
++ return &ent;
++}
++
++#endif
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-netinet-in.h b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-netinet-in.h
new file mode 100644
index 000000000000..e350e44418dd
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-netinet-in.h
@@ -0,0 +1,274 @@
+--- newlib/libc/sys/psp/netinet/in.h.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/netinet/in.h 2007-06-01 12:22:26.000000000 +0300
+@@ -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 <sys/socket.h>
++
++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 < 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) & __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) & __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) & __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) & __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) & __IPADDR(0xf0000000)) == \
++ __IPADDR(0xf0000000))
++#define IN_BADCLASS(i) (((uint32_t)(i) & __IPADDR(0xf0000000)) == \
++ __IPADDR(0xf0000000))
++
++#define IN_LOCAL_GROUP(i) (((uint32_t)(i) & __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_ */
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-netinet-tcp.h b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-netinet-tcp.h
new file mode 100644
index 000000000000..f0b3a623aeea
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-netinet-tcp.h
@@ -0,0 +1,15 @@
+--- newlib/libc/sys/psp/netinet/tcp.h.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/netinet/tcp.h 2007-06-01 12:22:26.000000000 +0300
+@@ -0,0 +1,12 @@
++#ifndef __NETINET_TCP_H__
++#define __NETINET_TCP_H__
++
++#include <netinet/in.h>
++
++#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
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-pipe.c b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-pipe.c
new file mode 100644
index 000000000000..ca669e5d6ed4
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-pipe.c
@@ -0,0 +1,308 @@
+--- newlib/libc/sys/psp/pipe.c.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/pipe.c 2007-06-01 12:22:26.000000000 +0300
+@@ -0,0 +1,305 @@
++/*
++ * 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 <rafpsp@gmail.com>
++ *
++ * - 20070630 Alper Akcan "anhanguera" <distchx@yahoo.com>
++ * [non]blocking read/write() fix
++ * illegal size fix for read/write()
++ *
++ */
++#include <stdio.h>
++#include <errno.h>
++#include <sys/syslimits.h>
++#include <sys/fd_set.h>
++
++#include <psptypes.h>
++#include <pspthreadman.h>
++#include <pspmodulemgr.h>
++#include <pspkerror.h>
++#include "fdman.h"
++
++/* Pipe functions */
++/* Returns how many bytes are in the pipe -- waiting to be read */
++size_t __psp_pipe_peekmsgsize(int fd)
++{
++ SceKernelMppInfo info;
++ info.size = sizeof(info);
++
++ if (!__PSP_IS_FD_OF_TYPE(fd, __PSP_DESCRIPTOR_TYPE_PIPE)) {
++ errno = EBADF;
++ return -1;
++ }
++
++ if (sceKernelReferMsgPipeStatus(__psp_descriptormap[fd]->sce_descriptor, &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 >= 0) {
++ fildes[0] = __psp_fdman_get_new_descriptor();
++ if (fildes[0] != -1) {
++ __psp_descriptormap[fildes[0]]->sce_descriptor = uid;
++ __psp_descriptormap[fildes[0]]->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]]->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_IS_FD_OF_TYPE(fd, __PSP_DESCRIPTOR_TYPE_PIPE)) {
++ errno = EBADF;
++ return -1;
++ }
++
++
++ if ( __psp_descriptormap[fd]->ref_count == 1 ) {
++ /**
++ * Delete a message pipe
++ *
++ * @param uid - The UID of the pipe
++ *
++ * @return 0 on success, < 0 on error
++ */
++ ret = sceKernelDeleteMsgPipe(__psp_descriptormap[fd]->sce_descriptor);
++ }
++
++ __psp_fdman_release_descriptor(fd);
++
++ if(ret < 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;
++
++ if (!__PSP_IS_FD_OF_TYPE(fd, __PSP_DESCRIPTOR_TYPE_PIPE)) {
++ errno = EBADF;
++ return -1;
++ }
++
++ sceuid = __psp_descriptormap[fd]->sce_descriptor;
++
++ size = __psp_pipe_peekmsgsize(fd);
++ if (size > 0) {
++ if (size < len) {
++ len = size;
++ }
++ }
++ else if (size == 0) {
++ errno = EAGAIN;
++ return -1;
++ }
++ else {
++ errno = EBADF;
++ 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, < 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;
++
++ if (!__PSP_IS_FD_OF_TYPE(fd, __PSP_DESCRIPTOR_TYPE_PIPE)) {
++ errno = EBADF;
++ return -1;
++ }
++
++ sceuid = __psp_descriptormap[fd]->sce_descriptor;
++
++#if 0
++ /* we should block until there is some data (or maybe for enough data),
++ * peeking the msg size should be only for nonblocking reads
++ */
++ size = __psp_pipe_peekmsgsize(fd);
++ if (size > 0) {
++ if (size < len) {
++ len = size;
++ }
++ }
++ else {
++ errno = EBADF;
++ return -1;
++ }
++#endif
++ /* if len is greater than PIPE_BUF then, MsgPipe functions returns
++ * SCE_KERNEL_ERROR_ILLEGAL_SIZE, but it should read at least
++ * PIPE_BUF bytes, and return the number of bytes read.
++ */
++ if (len > PIPE_BUF) {
++ len = PIPE_BUF;
++ }
++
++ /**
++ * 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, < 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;
++
++ if (!__PSP_IS_FD_OF_TYPE(fd, __PSP_DESCRIPTOR_TYPE_PIPE)) {
++ errno = EBADF;
++ return -1;
++ }
++
++ sceuid = __psp_descriptormap[fd]->sce_descriptor;
++
++ /* if len is greater than PIPE_BUF then, MsgPipe functions returns
++ * SCE_KERNEL_ERROR_ILLEGAL_SIZE, but it should write at least
++ * PIPE_BUF bytes, and return the number of bytes written.
++ */
++ if (len > PIPE_BUF) {
++ len = PIPE_BUF;
++ }
++
++ /**
++ * 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, < 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;
++
++ if (!__PSP_IS_FD_OF_TYPE(fd, __PSP_DESCRIPTOR_TYPE_PIPE)) {
++ errno = EBADF;
++ return -1;
++ }
++
++ sceuid = __psp_descriptormap[fd]->sce_descriptor;
++
++ /* if len is greater than PIPE_BUF then, MsgPipe functions returns
++ * SCE_KERNEL_ERROR_ILLEGAL_SIZE, but it should write at least
++ * PIPE_BUF bytes, and return the number of bytes written.
++ */
++ if (len > PIPE_BUF) {
++ len = PIPE_BUF;
++ }
++
++ 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);
++ }
++}
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-pspcwd.c b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-pspcwd.c
new file mode 100644
index 000000000000..38bea4ec1752
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-pspcwd.c
@@ -0,0 +1,169 @@
+--- newlib/libc/sys/psp/pspcwd.c.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/pspcwd.c 2007-06-01 12:22:26.000000000 +0300
+@@ -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 <mrbrown@ocgnet.org>
++ * Copyright (c) 2005 James Forshaw <tyranid@gmail.com>
++ * Copyright (c) 2005 John Kelley <ps2dev@kelley.ca>
++ * Copyright (c) 2005 Jim Paris <jim@jtan.com>
++ *
++ */
++#include <string.h>
++#include <sys/types.h>
++#include <sys/unistd.h>
++
++#include <psptypes.h>
++#include <pspiofilemgr.h>
++
++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] >= 'a' && d[i] <= 'z') ||
++ (d[i] >= '0' && d[i] <= '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 > 0 && *in ; maxlen-- )
++ *(out++) = *(in++);
++ if(maxlen < 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]=='/' && out[i+1]=='/') {
++ for(j=i+1; out[j]; j++)
++ out[j] = out[j+1];
++ i--;
++ }
++ }
++
++ /* Convert "/./" to "/" */
++ for(i=0; out[i] && out[i+1] && out[i+2]; i++) {
++ if(out[i]=='/' && out[i+1]=='.' && 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] && out[next+1]=='.' &&
++ out[next+2] && out[next+2]=='.' &&
++ out[next+3] && 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] && out[next] != '/'; next++)
++ continue;
++ if(!out[next]) break;
++ }
++
++ /* Remove trailing "/" */
++ for(i=1; out[i]; i++)
++ continue;
++ if(i >= 1 && 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 > 0 && 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) >= 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) >= 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 < 0) dr = 0;
++ return __psp_path_normalize(out + dr, len - dr);
++}
++
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-select.c b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-select.c
new file mode 100644
index 000000000000..0f457b01ae57
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-select.c
@@ -0,0 +1,202 @@
+--- newlib/libc/sys/psp/select.c.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/select.c 2007-06-01 17:45:11.000000000 +0300
+@@ -0,0 +1,199 @@
++/*
++ * 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 <rafpsp@gmail.com>
++ *
++ * - 20070701 Alper Akcan "anhanguera" <distchx@yahoo.com>
++ * select EBADF fix
++ *
++ */
++#include <fcntl.h>
++#include <errno.h>
++#include <sys/select.h>
++#include <psptypes.h>
++#include <pspthreadman.h>
++
++#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->tv_sec * CLOCKS_PER_SEC) + (timeout->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 > 0) || ((timeout != NULL) && ((clock() - start_time) >= time)) ) {
++ break;
++ }
++ if (count < 0) {
++ /* anhanguera - 20070701
++ * error, lets let the caller to handle error state
++ */
++ 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)->fds_bits[((n) & 0xFF) /__NFDBITS] |= (1 << ((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(&ready_readfds);
++ FD_ZERO(&ready_writefds);
++ FD_ZERO(&ready_exceptfds);
++
++ info.size = sizeof(info);
++ scetv.tv_sec = 0;
++ scetv.tv_usec = 0;
++ count = 0;
++
++ for (fd = 0; fd < n; fd++)
++ {
++ if (__psp_descriptormap[fd] != NULL) {
++ switch(__psp_descriptormap[fd]->type)
++ {
++ case __PSP_DESCRIPTOR_TYPE_PIPE:
++ if (readfds && FD_ISSET(fd, readfds)) {
++ if (sceKernelReferMsgPipeStatus(__psp_descriptormap[fd]->sce_descriptor, &info) == 0) {
++ if (info.bufSize != info.freeSize) {
++ FD_SET(fd, &ready_readfds);
++ count++;
++ }
++ }
++ else {
++ FD_SET(fd, &ready_exceptfds);
++ count++;
++ }
++ }
++ if (writefds && FD_ISSET(fd, writefds)) {
++ if (sceKernelReferMsgPipeStatus(__psp_descriptormap[fd]->sce_descriptor, &info) == 0) {
++ if (info.freeSize > 0) {
++ FD_SET(fd, &ready_writefds);
++ count++;
++ }
++ }
++ else {
++ FD_SET(fd, &ready_exceptfds);
++ count++;
++ }
++ }
++ break;
++ case __PSP_DESCRIPTOR_TYPE_FILE:
++ if (readfds && FD_ISSET(fd, readfds)) {
++ if (readfds && FD_ISSET(fd, readfds)) {
++ /** Just set it for now */
++ FD_SET(fd, &ready_readfds);
++ count++;
++ }
++ }
++ break;
++ case __PSP_DESCRIPTOR_TYPE_SOCKET:
++ if (readfds && FD_ISSET(fd, readfds)) {
++ int sce_ret, sce_fd;
++ sce_fd = __psp_descriptormap[fd]->sce_descriptor;
++ FD_ZERO(&scereadfds);
++ SCE_FD_SET(sce_fd, &scereadfds);
++ errno = 0;
++ sce_ret = sceNetInetSelect (sce_fd+1, &scereadfds, NULL, NULL, &scetv);
++ if (sce_ret>0) {
++ FD_SET(fd, &ready_readfds);
++ count++;
++ }
++ else if (sce_ret == -1) {
++ errno = sceNetInetGetErrno();
++ if (exceptfds && FD_ISSET(fd, exceptfds)) {
++ FD_SET(fd, &ready_exceptfds);
++ count++;
++ } else {
++ count = -1;
++ }
++ }
++ }
++ if (writefds && FD_ISSET(fd, writefds)) {
++ int sce_ret;
++ FD_ZERO(&scewritefds);
++ SCE_FD_SET(__psp_descriptormap[fd]->sce_descriptor, &scewritefds);
++ sce_ret = sceNetInetSelect (__psp_descriptormap[fd]->sce_descriptor+1, NULL, &scewritefds, NULL, &scetv);
++ if (sce_ret>0) {
++ FD_SET(fd, &ready_writefds);
++ count++;
++ }
++ else if (sce_ret == -1) {
++ if (exceptfds && FD_ISSET(fd, exceptfds)) {
++ FD_SET(fd, &ready_exceptfds);
++ count++;
++ }
++ else {
++ count = -1;
++ }
++ }
++ }
++ break;
++ }
++ } else {
++ /* anhanguera - 20070701
++ *
++ * here we know that, system has no idea about 'fd'. if caller requested
++ * information about 'fd', return '-1' and set errno to 'EBADF'. we should
++ * increse the count and set exceptfd for fd, but it is safe to obey select
++ * manual.
++ *
++ * from manual;
++ * On error, -1 is returned, and errno is set appropriately; the sets and
++ * timeout become undefined, so do not rely on their contents after an error.
++ */
++ if ((readfds && FD_ISSET(fd, readfds)) ||
++ (writefds && FD_ISSET(fd, writefds)) ||
++ (exceptfds && FD_ISSET(fd, exceptfds))) {
++ errno = EBADF;
++ return -1;
++ }
++ }
++ }
++
++ if (count > 0) {
++ if (readfds)
++ *readfds = ready_readfds;
++ if (writefds)
++ *writefds = ready_writefds;
++ if (exceptfds)
++ *exceptfds = ready_exceptfds;
++ }
++
++ return count;
++}
++
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-socket.c b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-socket.c
new file mode 100644
index 000000000000..150a4d6336b9
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-socket.c
@@ -0,0 +1,393 @@
+--- newlib/libc/sys/psp/socket.c.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/socket.c 2007-06-01 12:22:26.000000000 +0300
+@@ -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 <mrbrown@ocgnet.org>
++ * Copyright (c) 2005 James Forshaw <tyranid@gmail.com>
++ *
++ */
++#include <fcntl.h>
++#include <errno.h>
++#include <sys/socket.h>
++#include <sys/select.h>
++#include <netinet/in.h>
++#include <arpa/inet.h>
++
++#include <psptypes.h>
++#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 < 0) {
++ errno = sceNetInetGetErrno();
++ return -1;
++ }
++
++ sock = __psp_fdman_get_new_descriptor();
++ if( sock != -1 ) {
++ __psp_descriptormap[sock]->sce_descriptor = scesock;
++ __psp_descriptormap[sock]->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]->ref_count == 1) {
++ ret = sceNetInetClose(__psp_descriptormap[sock]->sce_descriptor);
++ }
++
++ __psp_fdman_release_descriptor(sock);
++
++ if(ret < 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]->sce_descriptor, addr, addrlen);
++ if( (newscesock >= 0) ) {
++ newsock = __psp_fdman_get_new_descriptor();
++ if ( newsock != -1 ) {
++ __psp_descriptormap[newsock]->sce_descriptor = newscesock;
++ __psp_descriptormap[newsock]->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]->sce_descriptor, my_addr, addrlen);
++ if(ret < 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]->sce_descriptor, serv_addr, addrlen);
++ if(ret < 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]->sce_descriptor, level, optname, optval, optlen);
++ if(ret < 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]->sce_descriptor, backlog);
++ if(ret < 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]->sce_descriptor, buf, len, flags);
++ if(ret < 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]->sce_descriptor, buf, len, flags, from, fromlen);
++ if(ret < 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]->sce_descriptor, buf, len, flags);
++ if(ret < 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]->sce_descriptor, buf, len, flags, to, tolen);
++ if(ret < 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]->sce_descriptor, level, optname, optval, optlen);
++ if(ret < 0)
++ {
++ errno = sceNetInetGetErrno();
++ return -1;
++ }
++ else
++ {
++ if ( (level == SOL_SOCKET) && (optname == SO_NONBLOCK) ) {
++ if (*((int*)optval) == 1) {
++ __psp_descriptormap[s]->flags |= O_NONBLOCK;
++ }
++ else {
++ __psp_descriptormap[s]->flags &= ~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]->sce_descriptor, how);
++ if(ret < 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]->sce_descriptor, name, namelen);
++ if(ret < 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]->sce_descriptor, name, namelen);
++ if(ret < 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, &in, ip_addr, INET_ADDRSTRLEN) == NULL)
++ {
++ strcpy(ip_addr, "Invalid");
++ }
++
++ return ip_addr;
++}
++#endif
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-sys-dirent.h b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-sys-dirent.h
new file mode 100644
index 000000000000..f9b494baab42
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-sys-dirent.h
@@ -0,0 +1,42 @@
+--- newlib/libc/sys/psp/sys/dirent.h.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/sys/dirent.h 2007-06-01 12:22:26.000000000 +0300
+@@ -0,0 +1,39 @@
++#ifndef _SYS_DIRENT_H
++#define _SYS_DIRENT_H
++
++/* PSP dirent.h, based on pspiofilemgr_dirent.h
++ by Jim Paris <jim@jtan.com> */
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++#include <pspiofilemgr_dirent.h>
++
++#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
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-sys-errno.h b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-sys-errno.h
new file mode 100644
index 000000000000..a66593da2219
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-sys-errno.h
@@ -0,0 +1,161 @@
+--- newlib/libc/sys/psp/sys/errno.h.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/sys/errno.h 2007-06-01 12:22:26.000000000 +0300
+@@ -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 <sys/reent.h>
++
++#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)->_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 */
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-sys-fd_set.h b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-sys-fd_set.h
new file mode 100644
index 000000000000..900b023de89f
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-sys-fd_set.h
@@ -0,0 +1,72 @@
+--- newlib/libc/sys/psp/sys/fd_set.h.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/sys/fd_set.h 2007-06-01 12:22:26.000000000 +0300
+@@ -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 <sys/socket.h>
++#include <stdint.h>
++
++/*
++ * 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)->fds_bits[(n) /__NFDBITS] |= (1 << ((n) % __NFDBITS)))
++
++#define FD_CLR(n, p) \
++ ((p)->fds_bits[(n) /__NFDBITS] &= ~(1 << ((n) % __NFDBITS)))
++
++#define FD_ISSET(n, p) \
++ ((p)->fds_bits[(n) /__NFDBITS] & (1 << ((n) % __NFDBITS)))
++
++#define FD_ZERO(p) (void)__builtin_memset((p), 0, sizeof(*(p)))
++
++#endif /* _SYS_FD_SET_H_ */
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-sys-ioctl.h b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-sys-ioctl.h
new file mode 100644
index 000000000000..9457e54fb38e
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-sys-ioctl.h
@@ -0,0 +1,4 @@
+--- newlib/libc/sys/psp/sys/ioctl.h.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/sys/ioctl.h 2007-06-01 12:22:26.000000000 +0300
+@@ -0,0 +1 @@
++/* Empty file, here for compatibility */
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-sys-select.h b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-sys-select.h
new file mode 100644
index 000000000000..749856d449ff
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-sys-select.h
@@ -0,0 +1,57 @@
+--- newlib/libc/sys/psp/sys/select.h.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/sys/select.h 2007-06-01 12:22:26.000000000 +0300
+@@ -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 <sys/fd_set.h>
++#include <sys/time.h>
++
++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_ */
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-sys-socket.h b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-sys-socket.h
new file mode 100644
index 000000000000..74636baab8aa
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-sys-socket.h
@@ -0,0 +1,297 @@
+--- newlib/libc/sys/psp/sys/socket.h.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/sys/socket.h 2007-06-01 12:22:26.000000000 +0300
+@@ -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 <stdint.h>
++#include <stddef.h>
++#include <sys/types.h>
++
++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 & 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_ */
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-syscalls.c b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-syscalls.c
new file mode 100644
index 000000000000..5d4e2b4cf464
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-syscalls.c
@@ -0,0 +1,22 @@
+--- newlib/libc/sys/psp/syscalls.c.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/syscalls.c 2007-06-01 12:22:26.000000000 +0300
+@@ -0,0 +1,19 @@
++/*
++ * PSP Software Development Kit - http://www.pspdev.org
++ * -----------------------------------------------------------------------
++ * Licensed under the BSD license, see LICENSE in PSPSDK root for details.
++ *
++ * syscalls.c - functions in systeam namespace goes here
++ *
++ * Copyright (c) 2007 Alper Akcan "anhanguera" <distchx@yahoo.com>
++ *
++ */
++
++#include <stdio.h>
++
++int __psp_set_errno (int code);
++
++time_t _times (time_t *t)
++{
++ return __psp_set_errno(sceKernelLibcTime(t));
++}
diff --git a/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-xprintf.c b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-xprintf.c
new file mode 100644
index 000000000000..6b7617775462
--- /dev/null
+++ b/devel/psptoolchain-newlib/files/patch-newlib-libc-sys-psp-xprintf.c
@@ -0,0 +1,987 @@
+--- newlib/libc/sys/psp/xprintf.c.orig 1970-01-01 02:00:00.000000000 +0200
++++ newlib/libc/sys/psp/xprintf.c 2007-06-01 12:22:26.000000000 +0300
+@@ -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 <mrbrown@ocgnet.org>
++ * Copyright (c) 2005 James Forshaw <tyranid@gmail.com>
++ * Copyright (c) 2005 John Kelley <ps2dev@kelley.ca>
++ *
++ * $Id: newlib-1.13.0.patch 1891 2006-05-02 15:32:28Z raf $
++ */
++/* 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 <stdio.h>
++#include <string.h>
++#include <malloc.h>
++
++#include <stdarg.h>
++#include <stddef.h>
++
++/*
++** 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 <= *val < 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)++ >= 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))!='%' && 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 && (c=(*++fmt))!=0 );
++ if( flag_center ) flag_leftjustify = 0;
++ /* Get the field width */
++ width = 0;
++ if( c=='*' ){
++ width = va_arg(ap,int);
++ if( width<0 ){
++ flag_leftjustify = 1;
++ width = -width;
++ }
++ c = *++fmt;
++ }else{
++ while( isdigit(c) ){
++ width = width*10 + c - '0';
++ c = *++fmt;
++ }
++ }
++ if( width > 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<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>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<NINFO; idx++){
++ if( c==fmtinfo[idx].fmttype ){
++ infop = &fmtinfo[idx];
++ break;
++ }
++ }
++ /* No info entry found. It must be an error. */
++ if( infop==0 ){
++ xtype = ERROR;
++ }else{
++ xtype = infop->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>1 )&&( infop->flag_signed )){
++ signed long long t = va_arg(ap,signed long long);
++ longvalue = t;
++ }else if(( flag_long>1 )&&( !infop->flag_signed )){
++ unsigned long long t = va_arg(ap,unsigned long long);
++ longvalue = t;
++ }else if(( flag_long )&&( infop->flag_signed )){
++ signed long t = va_arg(ap,signed long);
++ longvalue = t;
++ }else if(( flag_long )&&( !infop->flag_signed )){
++ unsigned long t = va_arg(ap,unsigned long);
++ longvalue = t;
++ }else if(( !flag_long )&&( infop->flag_signed )){
++ signed int t = va_arg(ap,signed int) & ((unsigned long) 0xffffffff);
++ longvalue = t;
++ }else{
++ unsigned int t = va_arg(ap,unsigned int) & ((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 && infop->base==8 ) flag_alternateform = 0;
++#endif
++ if( infop->flag_signed ){
++ if( *(long long*)&longvalue<0 ){
++ longvalue = -*(long long*)&longvalue;
++ prefix = '-';
++ }else if( flag_plussign ) prefix = '+';
++ else if( flag_blanksign ) prefix = ' ';
++ else prefix = 0;
++ }else prefix = 0;
++ if( flag_zeropad && precision<width-(prefix!=0) ){
++ precision = width-(prefix!=0);
++ }
++ bufpt = &buf[BUFSIZE];
++ if( xtype==ORDINAL ){
++ long a,b;
++ a = longvalue%10;
++ b = longvalue%100;
++ bufpt -= 2;
++ if( a==0 || a>3 || (b>10 && b<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->charset;
++ base = infop->base;
++ do{ /* Convert to ascii */
++ *(--bufpt) = cset[longvalue%base];
++ longvalue = longvalue/base;
++ }while( longvalue>0 );
++ }
++ length = (int)(&buf[BUFSIZE]-bufpt);
++ if(infop->fmttype == 'p')
++ {
++ precision = 8;
++ flag_alternateform = 1;
++ }
++
++ for(idx=precision-length; idx>0; idx--){
++ *(--bufpt) = '0'; /* Zero pad */
++ }
++ if( prefix ) *(--bufpt) = prefix; /* Add sign */
++ if( flag_alternateform && infop->prefix ){ /* Add "0" or "0x" */
++ char *pre, x;
++ pre = infop->prefix;
++ if( *bufpt!=pre[0] ){
++ for(pre=infop->prefix; (x=(*pre))!=0; pre++) *(--bufpt) = x;
++ }
++ }
++
++ length = (int)(&buf[BUFSIZE]-bufpt);
++ break;
++ case FLOAT:
++ case EXP:
++ case GENERIC:
++ realvalue = va_arg(ap,double);
++#ifndef NOFLOATINGPOINT
++ if( precision<0 ) precision = 6; /* Set default precision */
++ if( precision>BUFSIZE-10 ) precision = BUFSIZE-10;
++ if( realvalue<0.0 ){
++ realvalue = -realvalue;
++ prefix = '-';
++ }else{
++ if( flag_plussign ) prefix = '+';
++ else if( flag_blanksign ) prefix = ' ';
++ else prefix = 0;
++ }
++ if( infop->type==GENERIC && precision>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>0; idx--, rounder*=0.1);
++#else
++ /* It makes more sense to use 0.5 */
++ if( precision>MAXDIG-1 ) idx = MAXDIG-1;
++ else idx = precision;
++ for(rounder=0.5; idx>0; idx--, rounder*=0.1);
++#endif
++ if( infop->type==FLOAT ) realvalue += rounder;
++ /* Normalize realvalue to within 10.0 > realvalue >= 1.0 */
++ exp = 0;
++ if( realvalue>0.0 ){
++ int k = 0;
++ while( realvalue>=1e8 && k++<100 ){ realvalue *= 1e-8; exp+=8; }
++ while( realvalue>=10.0 && k++<100 ){ realvalue *= 0.1; exp++; }
++ while( realvalue<1e-8 && k++<100 ){ realvalue *= 1e8; exp-=8; }
++ while( realvalue<1.0 && k++<100 ){ realvalue *= 10.0; exp--; }
++ if( k>=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>=10.0 ){ realvalue *= 0.1; exp++; }
++ }
++ if( xtype==GENERIC ){
++ flag_rtz = !flag_alternateform;
++ if( exp<-4 || exp>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 && exp+precision<BUFSIZE-30 ){
++ flag_dp = (precision>0 || flag_alternateform);
++ if( prefix ) *(bufpt++) = prefix; /* Sign */
++ if( exp<0 ) *(bufpt++) = '0'; /* Digits before "." */
++ else for(; exp>=0; exp--) *(bufpt++) = getdigit(&realvalue,&nsd);
++ if( flag_dp ) *(bufpt++) = '.'; /* The decimal point */
++ for(exp++; exp<0 && precision>0; precision--, exp++){
++ *(bufpt++) = '0';
++ }
++ while( (precision--)>0 ) *(bufpt++) = getdigit(&realvalue,&nsd);
++ *(bufpt--) = 0; /* Null terminate */
++ if( flag_rtz && flag_dp ){ /* Remove trailing zeros and "." */
++ while( bufpt>=buf && *bufpt=='0' ) *(bufpt--) = 0;
++ if( bufpt>=buf && *bufpt=='.' ) *(bufpt--) = 0;
++ }
++ bufpt++; /* point to next free slot */
++ }else{ /* EXP or GENERIC */
++ flag_dp = (precision>0 || flag_alternateform);
++ if( prefix ) *(bufpt++) = prefix; /* Sign */
++ *(bufpt++) = getdigit(&realvalue,&nsd); /* First digit */
++ if( flag_dp ) *(bufpt++) = '.'; /* Decimal point */
++ while( (precision--)>0 ) *(bufpt++) = getdigit(&realvalue,&nsd);
++ bufpt--; /* point to last digit */
++ if( flag_rtz && flag_dp ){ /* Remove tail zeros */
++ while( bufpt>=buf && *bufpt=='0' ) *(bufpt--) = 0;
++ if( bufpt>=buf && *bufpt=='.' ) *(bufpt--) = 0;
++ }
++ bufpt++; /* point to next free slot */
++ if( exp || flag_exp ){
++ *(bufpt++) = infop->charset[0];
++ if( exp<0 ){ *(bufpt++) = '-'; exp = -exp; } /* sign of exp */
++ else { *(bufpt++) = '+'; }
++ if( exp>=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 && !flag_leftjustify && length < width){
++ int i;
++ int nPad = width - length;
++ for(i=width; i>=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>=0 ){
++ for(idx=1; idx<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>=0 && precision<length ) length = precision;
++ break;
++ case SEEIT:
++ {
++ int i;
++ int c;
++ char *arg = va_arg(ap,char*);
++ for(i=0; i<BUFSIZE-1 && (c = *arg++)!=0; i++){
++ if( c<0x20 || c>=0x7f ){
++ buf[i++] = '^';
++ buf[i] = (c&0x1f)+0x40;
++ }else{
++ buf[i] = c;
++ }
++ }
++ bufpt = buf;
++ length = i;
++ if( precision>=0 && precision<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>0 ){
++ if( flag_center ){
++ nspace = nspace/2;
++ width -= nspace;
++ flag_leftjustify = 1;
++ }
++ count += nspace;
++ while( nspace>=SPACESIZE ){
++ (*func)(spaces,SPACESIZE,arg);
++ nspace -= SPACESIZE;
++ }
++ if( nspace>0 ) (*func)(spaces,nspace,arg);
++ }
++ }
++ if( length>0 ){
++ (*func)(bufpt,length,arg);
++ count += length;
++ }
++ if( xtype==MEM_STRING && zMem ){
++ free(zMem);
++ }
++ if( flag_leftjustify ){
++ register int nspace;
++ nspace = width-length;
++ if( nspace>0 ){
++ count += nspace;
++ while( nspace>=SPACESIZE ){
++ (*func)(spaces,SPACESIZE,arg);
++ nspace -= SPACESIZE;
++ }
++ if( nspace>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)->next;
++ tail = ((struct s_strargument*)arg)->last;
++ if( tail ){
++ while( a-- >0 && head<tail ) *(head++) = *(t++);
++ }else{
++ while( a-- >0 ) *(head++) = *(t++);
++ }
++ *head = 0;
++ ((struct s_strargument*)arg)->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 = &buf[n-1];
++ *buf = 0;
++ return vxprintf(__sout,&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 = &str[sz-1];
++
++ va_start(args, format);
++ ret = vxprintf(__sout, &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,&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, &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->nChar + nNewChar + 1 > pM->nAlloc ){
++ pM->nAlloc = pM->nChar + nNewChar*2 + 1;
++ if( pM->zText==pM->zBase ){
++ pM->zText = malloc(pM->nAlloc);
++ if( pM->zText && pM->nChar ) memcpy(pM->zText,pM->zBase,pM->nChar);
++ }else{
++ pM->zText = realloc(pM->zText, pM->nAlloc);
++ }
++ }
++ if( pM->zText ){
++ memcpy(&pM->zText[pM->nChar], zNewText, nNewChar);
++ pM->nChar += nNewChar;
++ pM->zText[pM->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,&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,&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,&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,&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, &arg, format, args);
++ va_end(args);
++
++ return ret;
++}
++#endif
diff --git a/devel/psptoolchain-newlib/pkg-descr b/devel/psptoolchain-newlib/pkg-descr
new file mode 100644
index 000000000000..ebd84fb39295
--- /dev/null
+++ b/devel/psptoolchain-newlib/pkg-descr
@@ -0,0 +1,4 @@
+The PlayStation Portable Toolchain is a collection of tools and utilities
+for homebrew PSP development.
+
+WWW: http://www.ps2dev.org
diff --git a/devel/psptoolchain-newlib/pkg-plist b/devel/psptoolchain-newlib/pkg-plist
new file mode 100644
index 000000000000..3ce66a21e9ed
--- /dev/null
+++ b/devel/psptoolchain-newlib/pkg-plist
@@ -0,0 +1,105 @@
+psp/lib/libm.a
+psp/lib/libg.a
+psp/lib/libc.a
+psp/lib/crt0.o
+psp/include/wctype.h
+psp/include/wchar.h
+psp/include/utmp.h
+psp/include/utime.h
+psp/include/unistd.h
+psp/include/unctrl.h
+psp/include/time.h
+psp/include/termios.h
+psp/include/sys/wait.h
+psp/include/sys/utime.h
+psp/include/sys/unistd.h
+psp/include/sys/types.h
+psp/include/sys/times.h
+psp/include/sys/timeb.h
+psp/include/sys/time.h
+psp/include/sys/syslimits.h
+psp/include/sys/string.h
+psp/include/sys/stdio.h
+psp/include/sys/stat.h
+psp/include/sys/socket.h
+psp/include/sys/signal.h
+psp/include/sys/select.h
+psp/include/sys/sched.h
+psp/include/sys/resource.h
+psp/include/sys/reent.h
+psp/include/sys/queue.h
+psp/include/sys/param.h
+psp/include/sys/lock.h
+psp/include/sys/ioctl.h
+psp/include/sys/iconvnls.h
+psp/include/sys/file.h
+psp/include/sys/features.h
+psp/include/sys/fd_set.h
+psp/include/sys/fcntl.h
+psp/include/sys/errno.h
+psp/include/sys/dirent.h
+psp/include/sys/config.h
+psp/include/sys/cdefs.h
+psp/include/sys/_types.h
+psp/include/string.h
+psp/include/stdlib.h
+psp/include/stdio.h
+psp/include/stdint.h
+psp/include/signal.h
+psp/include/setjmp.h
+psp/include/search.h
+psp/include/regdef.h
+psp/include/reent.h
+psp/include/pwd.h
+psp/include/pthread.h
+psp/include/process.h
+psp/include/paths.h
+psp/include/newlib.h
+psp/include/netinet/tcp.h
+psp/include/netinet/in.h
+psp/include/netdb.h
+psp/include/math.h
+psp/include/malloc.h
+psp/include/machine/types.h
+psp/include/machine/time.h
+psp/include/machine/termios.h
+psp/include/machine/stdlib.h
+psp/include/machine/setjmp.h
+psp/include/machine/setjmp-dj.h
+psp/include/machine/regdef.h
+psp/include/machine/param.h
+psp/include/machine/malloc.h
+psp/include/machine/ieeefp.h
+psp/include/machine/fastmath.h
+psp/include/machine/endian.h
+psp/include/machine/ansi.h
+psp/include/machine/_types.h
+psp/include/locale.h
+psp/include/limits.h
+psp/include/libgen.h
+psp/include/langinfo.h
+psp/include/inttypes.h
+psp/include/ieeefp.h
+psp/include/iconv.h
+psp/include/grp.h
+psp/include/getopt.h
+psp/include/fcntl.h
+psp/include/fastmath.h
+psp/include/errno.h
+psp/include/envz.h
+psp/include/dirent.h
+psp/include/ctype.h
+psp/include/assert.h
+psp/include/arpa/inet.h
+psp/include/argz.h
+psp/include/ar.h
+psp/include/alloca.h
+psp/include/_syslist.h
+psp/include/_ansi.h
+@dirrm psp/include/sys
+@dirrm psp/include/netinet
+@dirrm psp/include/machine
+@dirrm psp/include/arpa
+@dirrmtry psp/include/bits
+@dirrmtry psp/include
+@dirrmtry psp