diff options
author | Marcelo Araujo <araujo@FreeBSD.org> | 2009-08-21 00:54:33 +0000 |
---|---|---|
committer | Marcelo Araujo <araujo@FreeBSD.org> | 2009-08-21 00:54:33 +0000 |
commit | 8cbd3957fb9309b77590faad70c31ada2caee71f (patch) | |
tree | 6e6dc53459a6b9a79b032994edb9301bd33d61c2 /devel/psptoolchain-newlib | |
parent | 074f004e7be95f94905b7f7e9a1d2145f99f3948 (diff) |
Notes
Diffstat (limited to 'devel/psptoolchain-newlib')
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 |