diff --git a/dkpsp/patches/binutils-2.16.1.patch b/dkpsp/patches/binutils-2.16.1.patch
index 04b42ed..b665948 100644
--- a/dkpsp/patches/binutils-2.16.1.patch
+++ b/dkpsp/patches/binutils-2.16.1.patch
@@ -1,6 +1,6 @@
diff -Nbaur binutils-2.16.1/bfd/Makefile.am binutils-2.16.1-psp/bfd/Makefile.am
--- binutils-2.16.1/bfd/Makefile.am Sun Jun 12 19:58:52 2005
-+++ binutils-2.16.1-psp/bfd/Makefile.am Wed Aug 24 01:57:12 2005
++++ binutils-2.16.1-psp/bfd/Makefile.am Thu Nov 3 18:04:53 2005
@@ -3,7 +3,7 @@
AUTOMAKE_OPTIONS = 1.9 cygnus
@@ -12,7 +12,7 @@ diff -Nbaur binutils-2.16.1/bfd/Makefile.am binutils-2.16.1-psp/bfd/Makefile.am
CSEARCH = -I. -I$(srcdir) -I$(INCDIR)
diff -Nbaur binutils-2.16.1/bfd/Makefile.in binutils-2.16.1-psp/bfd/Makefile.in
--- binutils-2.16.1/bfd/Makefile.in Sun Jun 12 19:58:55 2005
-+++ binutils-2.16.1-psp/bfd/Makefile.in Wed Aug 24 01:57:13 2005
++++ binutils-2.16.1-psp/bfd/Makefile.in Thu Nov 3 18:04:53 2005
@@ -250,7 +250,7 @@
AUTOMAKE_OPTIONS = 1.9 cygnus
@@ -24,7 +24,7 @@ diff -Nbaur binutils-2.16.1/bfd/Makefile.in binutils-2.16.1-psp/bfd/Makefile.in
MKDEP = gcc -MM
diff -Nbaur binutils-2.16.1/bfd/archures.c binutils-2.16.1-psp/bfd/archures.c
--- binutils-2.16.1/bfd/archures.c Mon Jan 17 14:08:03 2005
-+++ binutils-2.16.1-psp/bfd/archures.c Wed Aug 24 01:57:12 2005
++++ binutils-2.16.1-psp/bfd/archures.c Thu Nov 3 18:04:53 2005
@@ -155,6 +155,7 @@
.#define bfd_mach_mips16 16
.#define bfd_mach_mips5 5
@@ -35,7 +35,7 @@ diff -Nbaur binutils-2.16.1/bfd/archures.c binutils-2.16.1-psp/bfd/archures.c
.#define bfd_mach_mipsisa64 64
diff -Nbaur binutils-2.16.1/bfd/bfd-in2.h binutils-2.16.1-psp/bfd/bfd-in2.h
--- binutils-2.16.1/bfd/bfd-in2.h Wed Mar 2 21:23:20 2005
-+++ binutils-2.16.1-psp/bfd/bfd-in2.h Wed Aug 24 01:57:12 2005
++++ binutils-2.16.1-psp/bfd/bfd-in2.h Thu Nov 3 18:04:54 2005
@@ -1600,6 +1600,7 @@
#define bfd_mach_mips16 16
#define bfd_mach_mips5 5
@@ -46,7 +46,7 @@ diff -Nbaur binutils-2.16.1/bfd/bfd-in2.h binutils-2.16.1-psp/bfd/bfd-in2.h
#define bfd_mach_mipsisa64 64
diff -Nbaur binutils-2.16.1/bfd/cpu-mips.c binutils-2.16.1-psp/bfd/cpu-mips.c
--- binutils-2.16.1/bfd/cpu-mips.c Thu Mar 3 11:40:58 2005
-+++ binutils-2.16.1-psp/bfd/cpu-mips.c Wed Aug 24 01:57:13 2005
++++ binutils-2.16.1-psp/bfd/cpu-mips.c Thu Nov 3 18:04:54 2005
@@ -86,6 +86,7 @@
I_mipsisa64,
I_mipsisa64r2,
@@ -67,7 +67,7 @@ diff -Nbaur binutils-2.16.1/bfd/cpu-mips.c binutils-2.16.1-psp/bfd/cpu-mips.c
/* The default architecture is mips:3000, but with a machine number of
diff -Nbaur binutils-2.16.1/bfd/doc/chew.c binutils-2.16.1-psp/bfd/doc/chew.c
--- binutils-2.16.1/bfd/doc/chew.c Thu Mar 3 11:41:02 2005
-+++ binutils-2.16.1-psp/bfd/doc/chew.c Wed Aug 24 02:05:41 2005
++++ binutils-2.16.1-psp/bfd/doc/chew.c Thu Nov 3 18:30:10 2005
@@ -91,6 +91,12 @@
#define DEF_SIZE 5000
#define STACK 50
@@ -83,7 +83,7 @@ diff -Nbaur binutils-2.16.1/bfd/doc/chew.c binutils-2.16.1-psp/bfd/doc/chew.c
diff -Nbaur binutils-2.16.1/bfd/elfxx-mips.c binutils-2.16.1-psp/bfd/elfxx-mips.c
--- binutils-2.16.1/bfd/elfxx-mips.c Sat May 28 22:58:29 2005
-+++ binutils-2.16.1-psp/bfd/elfxx-mips.c Wed Aug 24 01:57:12 2005
++++ binutils-2.16.1-psp/bfd/elfxx-mips.c Thu Nov 3 18:04:54 2005
@@ -4669,6 +4669,9 @@
case E_MIPS_MACH_SB1:
return bfd_mach_mips_sb1;
@@ -105,7 +105,24 @@ diff -Nbaur binutils-2.16.1/bfd/elfxx-mips.c binutils-2.16.1-psp/bfd/elfxx-mips.
case bfd_mach_mipsisa32:
val = E_MIPS_ARCH_32;
break;
-@@ -9641,6 +9648,7 @@
+@@ -8422,6 +8429,8 @@
+ if (dynobj != NULL && force_local && h->root.type != STT_TLS)
+ {
+ got = mips_elf_got_section (dynobj, FALSE);
++ if (got)
++ {
+ g = mips_elf_section_data (got)->u.got_info;
+
+ if (g->next)
+@@ -8472,6 +8481,7 @@
+ g->global_gotno--;
+ }
+ }
++ }
+
+ _bfd_elf_link_hash_hide_symbol (info, &h->root, force_local);
+ }
+@@ -9641,6 +9651,7 @@
/* MIPS II extensions. */
{ bfd_mach_mips4000, bfd_mach_mips6000 },
{ bfd_mach_mipsisa32, bfd_mach_mips6000 },
@@ -115,15 +132,15 @@ diff -Nbaur binutils-2.16.1/bfd/elfxx-mips.c binutils-2.16.1-psp/bfd/elfxx-mips.
{ bfd_mach_mips6000, bfd_mach_mips3000 },
diff -Nbaur binutils-2.16.1/bfd/version.h binutils-2.16.1-psp/bfd/version.h
--- binutils-2.16.1/bfd/version.h Sun Jun 12 18:37:59 2005
-+++ binutils-2.16.1-psp/bfd/version.h Wed Aug 24 01:58:28 2005
++++ binutils-2.16.1-psp/bfd/version.h Thu Nov 3 18:04:54 2005
@@ -1,3 +1,3 @@
-#define BFD_VERSION_DATE 20050612
-+#define BFD_VERSION_DATE (PSPDEV 20050822)
++#define BFD_VERSION_DATE (PSPDEV 20051022)
#define BFD_VERSION @bfd_version@
#define BFD_VERSION_STRING @bfd_version_string@
diff -Nbaur binutils-2.16.1/binutils/readelf.c binutils-2.16.1-psp/binutils/readelf.c
--- binutils-2.16.1/binutils/readelf.c Wed Apr 20 19:43:36 2005
-+++ binutils-2.16.1-psp/binutils/readelf.c Wed Aug 24 01:57:13 2005
++++ binutils-2.16.1-psp/binutils/readelf.c Thu Nov 3 18:04:54 2005
@@ -2043,6 +2043,7 @@
case E_MIPS_MACH_5500: strcat (buf, ", 5500"); break;
case E_MIPS_MACH_SB1: strcat (buf, ", sb1"); break;
@@ -134,7 +151,7 @@ diff -Nbaur binutils-2.16.1/binutils/readelf.c binutils-2.16.1-psp/binutils/read
MIPS ELF does not specify EF_MIPS_MACH, it is a GNU
diff -Nbaur binutils-2.16.1/config.sub binutils-2.16.1-psp/config.sub
--- binutils-2.16.1/config.sub Wed Jan 19 00:34:56 2005
-+++ binutils-2.16.1-psp/config.sub Wed Aug 24 01:57:13 2005
++++ binutils-2.16.1-psp/config.sub Thu Nov 3 18:04:54 2005
@@ -253,6 +253,7 @@
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
@@ -164,7 +181,7 @@ diff -Nbaur binutils-2.16.1/config.sub binutils-2.16.1-psp/config.sub
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
diff -Nbaur binutils-2.16.1/gas/config/tc-mips.c binutils-2.16.1-psp/gas/config/tc-mips.c
--- binutils-2.16.1/gas/config/tc-mips.c Sun Jun 12 19:07:03 2005
-+++ binutils-2.16.1-psp/gas/config/tc-mips.c Wed Aug 24 01:57:13 2005
++++ binutils-2.16.1-psp/gas/config/tc-mips.c Thu Nov 3 18:04:54 2005
@@ -365,11 +365,15 @@
#define CPU_HAS_MDMX(cpu) (FALSE \
)
@@ -182,7 +199,95 @@ diff -Nbaur binutils-2.16.1/gas/config/tc-mips.c binutils-2.16.1-psp/gas/config/
/* True if mflo and mfhi can be immediately followed by instructions
which write to the HI and LO registers.
-@@ -7817,6 +7821,30 @@
+@@ -393,6 +397,7 @@
+ || mips_opts.arch == CPU_R12000 \
+ || mips_opts.arch == CPU_RM7000 \
+ || mips_opts.arch == CPU_VR5500 \
++ || mips_opts.arch == CPU_ALLEGREX \
+ )
+
+ /* Whether the processor uses hardware interlocks to protect reads
+@@ -1161,6 +1166,20 @@
+ static segT pdr_seg;
+ #endif
+
++/* Expressions saved for use in VFPU immediate mode macros. */
++
++static expressionS vimm_expr[4];
++static expressionS voffset_expr[4];
++
++/* VFPU instruction prefixes to apply to the current VFPU instruction. */
++
++static int vfpu_has_dprefix;
++static int vfpu_has_sprefix;
++static int vfpu_has_tprefix;
++static char vfpu_dprefix_operands[64];
++static char vfpu_sprefix_operands[64];
++static char vfpu_tprefix_operands[64];
++
+ /* The default target format to use. */
+
+ const char *
+@@ -1641,6 +1660,58 @@
+ return;
+ }
+
++ /* If we've generated operands for a VFPU prefix instruction then we need
++ to assemble and append the prefix instruction before emitting the
++ instruction it prefixes. Note that in mips_ip prefix operands do not
++ cause any side effects with imm_expr or offset_expr. If they did
++ we'd have to save and restore them here. */
++ if (CPU_IS_ALLEGREX (mips_opts.arch)
++ && (vfpu_has_dprefix || vfpu_has_sprefix || vfpu_has_tprefix))
++ {
++ if (mips_opts.noreorder &&
++ (history[0].insn_mo->pinfo & (INSN_UNCOND_BRANCH_DELAY
++ | INSN_COND_BRANCH_DELAY
++ | INSN_COND_BRANCH_LIKELY)))
++ as_bad (_("VFPU instruction with prefix can't be used in a branch delay slot"));
++
++ if (vfpu_has_dprefix)
++ {
++ struct mips_cl_insn dprefix_insn;
++ bfd_reloc_code_real_type dprefix_unused_reloc[3]
++ = {BFD_RELOC_UNUSED, BFD_RELOC_UNUSED, BFD_RELOC_UNUSED};
++ char dprefix_str[80];
++
++ sprintf (dprefix_str, "vpfxd %s", vfpu_dprefix_operands);
++ mips_ip (str, &dprefix_insn);
++ append_insn (&dprefix_insn, NULL, dprefix_unused_reloc);
++ vfpu_has_dprefix = 0;
++ }
++ if (vfpu_has_sprefix)
++ {
++ struct mips_cl_insn sprefix_insn;
++ bfd_reloc_code_real_type sprefix_unused_reloc[3]
++ = {BFD_RELOC_UNUSED, BFD_RELOC_UNUSED, BFD_RELOC_UNUSED};
++ char sprefix_str[80];
++
++ sprintf (sprefix_str, "vpfxs %s", vfpu_sprefix_operands);
++ mips_ip (str, &sprefix_insn);
++ append_insn (&sprefix_insn, NULL, sprefix_unused_reloc);
++ vfpu_has_sprefix = 0;
++ }
++ if (vfpu_has_tprefix)
++ {
++ struct mips_cl_insn tprefix_insn;
++ bfd_reloc_code_real_type tprefix_unused_reloc[3]
++ = {BFD_RELOC_UNUSED, BFD_RELOC_UNUSED, BFD_RELOC_UNUSED};
++ char tprefix_str[80];
++
++ sprintf (tprefix_str, "vpfxt %s", vfpu_tprefix_operands);
++ mips_ip (str, &tprefix_insn);
++ append_insn (&tprefix_insn, NULL, tprefix_unused_reloc);
++ vfpu_has_tprefix = 0;
++ }
++ }
++
+ if (insn.insn_mo->pinfo == INSN_MACRO)
+ {
+ macro_start ();
+@@ -7817,6 +7888,30 @@
case '%': USE_BITS (OP_MASK_VECALIGN, OP_SH_VECALIGN); break;
case '[': break;
case ']': break;
@@ -213,7 +318,525 @@ diff -Nbaur binutils-2.16.1/gas/config/tc-mips.c binutils-2.16.1-psp/gas/config/
default:
as_bad (_("internal: bad mips opcode (unknown operand type `%c'): %s %s"),
c, opc->name, opc->args);
-@@ -8485,6 +8513,7 @@
+@@ -8125,6 +8220,517 @@
+ }
+ break;
+
++ case '?': /* VFPU extension character. */
++ switch (*++args)
++ {
++ case '[': /* these must match exactly */
++ case ']':
++ if (*s++ == *args)
++ continue;
++ break;
++
++ case '0': /* Source or target prefix. */
++ case '1':
++ case '2':
++ case '3':
++ {
++ char *orig_s = s;
++ int pos = *args - '0';
++ int negation = 0;
++ int is_constant = 0;
++ int abs_consthi = 0;
++ int swz_constlo = 0;
++ int constant_code = 0;
++ int bad_format = 0;
++ unsigned int operand;
++
++ if (*s == '-')
++ {
++ negation = 1;
++ ++s;
++ }
++ if (ISDIGIT (*s))
++ {
++ is_constant = 1;
++ if (*s == '0')
++ constant_code = 0;
++ else if (*s == '1')
++ {
++ if (s[1] == '/')
++ {
++ s += 2;
++ if (*s == '2')
++ constant_code = 3;
++ else if (*s == '3')
++ constant_code = 5;
++ else if (*s == '4')
++ constant_code = 6;
++ else if (*s == '6')
++ constant_code = 7;
++ else
++ bad_format = 1;
++ }
++ else
++ constant_code = 1;
++ }
++ else if (*s == '2')
++ constant_code = 2;
++ else if (*s == '3')
++ constant_code = 4;
++ else
++ bad_format = 1;
++
++ /* Bits 0-1 of the constant code are stored in the
++ SWZ/CST[1:0] field, and bit 2 is stored in the
++ ABS/CST[2] field. */
++ swz_constlo = constant_code & VFPU_MASK_PFX_SWZ_CSTLO;
++ abs_consthi = constant_code >> 2;
++ }
++ else
++ {
++ if (*s == '|')
++ {
++ abs_consthi = 1;
++ ++s;
++ }
++ if (*s == 'x' || *s == 'X')
++ {
++ swz_constlo = 0;
++ ++s;
++ }
++ else if (*s == 'y' || *s == 'Y')
++ {
++ swz_constlo = 1;
++ ++s;
++ }
++ else if (*s == 'z' || *s == 'Z')
++ {
++ swz_constlo = 2;
++ ++s;
++ }
++ else if (*s == 'w' || *s == 'W')
++ {
++ swz_constlo = 3;
++ ++s;
++ }
++ else if (*s != ',' && *s != '|'
++ && ! IS_SPACE_OR_NUL (*s))
++ bad_format = 1;
++ if (! bad_format)
++ {
++ /* Make sure the abs value was written properly. */
++ if (*s == '|')
++ {
++ ++s;
++ if (! abs_consthi)
++ bad_format = 1;
++ }
++ else if (abs_consthi)
++ bad_format = 1;
++ }
++ }
++
++ if (bad_format
++ || (*s != ',' && ! IS_SPACE_OR_NUL (*s)))
++ as_bad (_("Invalid prefix format (%s)"), orig_s);
++
++ /* The bit positions of each field vary depending on the
++ position of our operand. We can't use INSERT_OPERAND()
++ as it would mask out the values set by other operands. */
++ operand = (((negation & VFPU_MASK_PFX_NEG)
++ << (VFPU_SH_PFX_NEG + pos))
++ || ((is_constant & VFPU_MASK_PFX_CST)
++ << (VFPU_SH_PFX_CST + pos))
++ || ((abs_consthi & VFPU_MASK_PFX_ABS_CSTHI)
++ << (VFPU_SH_PFX_ABS_CSTHI + pos))
++ || ((swz_constlo & VFPU_MASK_PFX_SWZ_CSTLO)
++ << (VFPU_SH_PFX_SWZ_CSTLO + pos * 2)));
++ ip->insn_opcode |= operand;
++ }
++ continue;
++
++ case '4': /* Destination prefix. */
++ case '5':
++ case '6':
++ case '7':
++ {
++ char *orig_s = s;
++ int mask = 0;
++ int saturation = 0;
++ int pos = *args - '4';
++ unsigned int operand;
++
++ if (*s == '[')
++ ++s;
++ if (*s == '-')
++ ++s;
++ if (*s == 'm' || *s == 'M')
++ {
++ mask = 1;
++ ++s;
++ }
++ else if (*s == '0')
++ {
++ saturation = 1;
++ ++s;
++ }
++ else if (*s == '1')
++ {
++ saturation = 3;
++ ++s;
++ }
++ if (*s == ':')
++ {
++ ++s;
++ if (*s == '+')
++ ++s;
++ if (*s == '1')
++ ++s;
++ }
++ if (*s == ']')
++ ++s;
++ if (*s != ',' && ! IS_SPACE_OR_NUL (*s))
++ as_bad (_("Invalid prefix format (%s)"), orig_s);
++
++ /* The position of the stored mask and saturation code
++ depend on the position of the prefix operand. Because
++ the bits aren't consecutive, we have to be careful to
++ insert them without masking out any other operands. */
++ operand = (((mask & VFPU_MASK_PFX_MASK)
++ << (VFPU_SH_PFX_MASK + pos))
++ || ((saturation & VFPU_MASK_PFX_SAT)
++ << (VFPU_SH_PFX_SAT + pos * 2)));
++ ip->insn_opcode |= operand;
++ }
++ continue;
++
++ case 'a': /* Constant. */
++ {
++ static const char * const vfpu_const_names[20] = {
++ "", "VFPU_HUGE", "VFPU_SQRT2", "VFPU_SQRT1_2",
++ "VFPU_2_SQRTPI", "VFPU_2_PI", "VFPU_1_PI", "VFPU_PI_4",
++ "VFPU_PI_2", "VFPU_PI", "VFPU_E", "VFPU_LOG2E",
++ "VFPU_LOG10E", "VFPU_LN2", "VFPU_LN10", "VFPU_2PI",
++ "VFPU_PI_6", "VFPU_LOG10TWO", "VFPU_LOG2TEN", "VFPU_SQRT3_2"
++ };
++ const int vfpu_num_constants = ARRAY_SIZE (vfpu_const_names) - 1;
++ int i;
++
++ if (!ISDIGIT (*s))
++ {
++ /* Try to match one of the predefined constants. */
++ for (i = 1; i <= vfpu_num_constants; i++)
++ if (!strcasecmp (s, vfpu_const_names[i]))
++ break;
++ if (i <= vfpu_num_constants)
++ s += strlen (vfpu_const_names[i]);
++ else
++ as_bad (_("Invalid constant code (%s)"), s);
++ INSERT_OPERAND (VFPU_CONST, *ip, i);
++ }
++ else
++ {
++ my_getExpression (&imm_expr, s);
++ check_absolute_expr (ip, &imm_expr);
++ if (imm_expr.X_add_number == 0
++ || imm_expr.X_add_number > vfpu_num_constants)
++ as_bad (_("Improper constant code (%lu)"),
++ (unsigned long) imm_expr.X_add_number);
++ INSERT_OPERAND (VFPU_CONST, *ip, imm_expr.X_add_number);
++ imm_expr.X_op = O_absent;
++ s = expr_end;
++ }
++ }
++ continue;
++
++ case 'b':
++ my_getExpression (&imm_expr, s);
++ check_absolute_expr (ip, &imm_expr);
++ if ((unsigned long) imm_expr.X_add_number > 31)
++ as_bad (_("Improper scale (%lu)"),
++ (unsigned long) imm_expr.X_add_number);
++ INSERT_OPERAND (VFPU_IMM5, *ip, imm_expr.X_add_number);
++ imm_expr.X_op = O_absent;
++ s = expr_end;
++ continue;
++
++ case 'c': /* Condition code bit. */
++ my_getExpression (&imm_expr, s);
++ check_absolute_expr (ip, &imm_expr);
++ if ((unsigned long) imm_expr.X_add_number > 5)
++ as_bad (_("Improper condition bit (%lu)"),
++ (unsigned long) imm_expr.X_add_number);
++ INSERT_OPERAND (VFPU_CC, *ip, imm_expr.X_add_number);
++ imm_expr.X_op = O_absent;
++ s = expr_end;
++ continue;
++
++ case 'e': /* Condition code bit for conditional moves. */
++ my_getExpression (&imm_expr, s);
++ check_absolute_expr (ip, &imm_expr);
++ if ((unsigned long) imm_expr.X_add_number > 6)
++ as_bad (_("Improper condition bit (%lu)"),
++ (unsigned long) imm_expr.X_add_number);
++ INSERT_OPERAND (VFPU_IMM3, *ip, imm_expr.X_add_number);
++ imm_expr.X_op = O_absent;
++ s = expr_end;
++ continue;
++
++ case 'f': /* Condition code. */
++ {
++ static const char * const vfpu_cond_names[16] = {
++ "FL", "EQ", "LT", "LE", "TR", "NE", "GE", "GT",
++ "EZ", "EN", "EI", "ES", "NZ", "NN", "NI", "NS"
++ };
++ unsigned long cond;
++ int i, arg_count;
++
++ if (!ISDIGIT (*s))
++ {
++ for (i = 0; i < VFPU_NUM_CONDS; i++)
++ if (!strncasecmp (s, vfpu_cond_names[i], 2))
++ break;
++ if (i < VFPU_NUM_CONDS)
++ s += 2;
++ else
++ as_bad (_("Invalid VFPU condition code (%s)"), s);
++ cond = i;
++ }
++ else
++ {
++ my_getExpression (&imm_expr, s);
++ check_absolute_expr (ip, &imm_expr);
++ cond = imm_expr.X_add_number;
++ if (cond >= VFPU_NUM_CONDS)
++ as_bad (_("Invalid VFPU condition code (%lu)"), cond);
++ imm_expr.X_op = O_absent;
++ s = expr_end;
++ }
++
++ /* Verify that the right number of arguments were passed
++ for the selected condition code. */
++ arg_count = *++args - '0';
++ if (cond != VFPU_COND_FL && cond != VFPU_COND_TR
++ && ((cond >= VFPU_COND_EZ && arg_count < 1)
++ || (arg_count <= 1)))
++ as_bad (_("Invalid VFPU condition operation"));
++ INSERT_OPERAND (VFPU_COND, *ip, cond);
++ }
++ continue;
++
++ case 'i': /* Wrap. */
++ my_getExpression (&imm_expr, s);
++ check_absolute_expr (ip, &imm_expr);
++ if ((unsigned long) imm_expr.X_add_number > 255)
++ as_bad (_("Improper wrap (%lu)"),
++ (unsigned long) imm_expr.X_add_number);
++ INSERT_OPERAND (VFPU_IMM8, *ip, imm_expr.X_add_number);
++ imm_expr.X_op = O_absent;
++ s = expr_end;
++ continue;
++
++ case 'o': /* VFPU 16-bit offset. */
++ /* Check whether there is only a single bracketed expression
++ left. If so, it must be the base register and the
++ constant must be zero. */
++ if (*s == '(' && strchr (s + 1, '(') == 0)
++ {
++ offset_expr.X_op = O_constant;
++ offset_expr.X_add_number = 0;
++ continue;
++ }
++
++ /* If this value won't fit into a 16 bit offset, then go
++ find a macro that will generate the 32 bit offset
++ code pattern. */
++ if (my_getSmallExpression (&offset_expr, offset_reloc, s) == 0
++ && (offset_expr.X_op != O_constant
++ || offset_expr.X_add_number >= 0x8000
++ || offset_expr.X_add_number < -0x8000))
++ break;
++
++ s = expr_end;
++ continue;
++
++ case 'q':
++ case 'r': /* VFPU control register. */
++ if (s[0] != '$' || !ISDIGIT (s[1]))
++ {
++ as_bad (_("Invalid VFPU control register name (%s)"), s);
++ continue;
++ }
++
++ ++s;
++ regno = 0;
++ do
++ {
++ regno *= 10;
++ regno += *s - '0';
++ ++s;
++ }
++ while (ISDIGIT (*s));
++ if (regno < 128 || regno > 143)
++ as_bad (_("Invalid VFPU control register number (%d)"), regno);
++ else if (regno == 133 || regno == 134)
++ as_bad (_("Improper VFPU control register number (%d)"), regno);
++ if (*args == 'q')
++ INSERT_OPERAND (VFPU_VMTVC, *ip, regno);
++ else
++ INSERT_OPERAND (VFPU_VMFVC, *ip, regno);
++ continue;
++
++ case 'u': /* 16-bit floating point constant. */
++ {
++ if (s[0] == '0' && (s[1] == 'x' || s[1] == 'X'))
++ {
++ my_getExpression (&imm_expr, s);
++ check_absolute_expr (ip, &imm_expr);
++ if ((unsigned long) imm_expr.X_add_number > 0xffff)
++ as_bad (_("Improper half floating point constant: (%lu)"),
++ (unsigned long) imm_expr.X_add_number);
++ INSERT_OPERAND (VFPU_FLOAT16, *ip, imm_expr.X_add_number);
++ imm_expr.X_op = O_absent;
++ s = expr_end;
++ }
++ else
++ {
++ union flt2int {
++ unsigned long i;
++ float f;
++ } flt2int;
++ unsigned char temp[8];
++ char *save_in;
++ char *err;
++ int len;
++ int sign, exponent, fraction, exponent16;
++ unsigned int float16 = 0;
++
++ save_in = input_line_pointer;
++ input_line_pointer = s;
++ err = md_atof ('f', (char *) temp, &len);
++ s = input_line_pointer;
++ input_line_pointer = save_in;
++ if (err != NULL && *err != '\0')
++ {
++ as_bad (_("Bad half floating point constant: %s"), err);
++ memset (temp, '\0', sizeof temp);
++ }
++
++ /* Convert the 32-bit IEEE754 float into the VFPU
++ 16-bit float format. */
++ if (! target_big_endian)
++ flt2int.i = bfd_getl32 (temp);
++ else
++ flt2int.i = bfd_getb32 (temp);
++ /* TODO: There must be constants for these somewhere... */
++ sign = (flt2int.i >> 31) & 0x1;
++ exponent = (flt2int.i >> 23) & 0xff;
++ fraction = flt2int.i & 0x7fffff;
++ exponent16 = exponent - 112;
++ if (exponent16 >= 0)
++ {
++ if (exponent16 > VFPU_FLOAT16_EXP_MAX
++ && exponent != 0xff)
++ {
++ as_warn (_("Half floating point overflow: %g"),
++ flt2int.f);
++ exponent16 = VFPU_FLOAT16_EXP_MAX;
++ fraction = 0;
++ }
++ else if (exponent16 <= VFPU_FLOAT16_EXP_MAX)
++ fraction = (flt2int.i >> 13) & VFPU_MASK_FLOAT16_FRAC;
++ else if (exponent == 0xff)
++ {
++ exponent16 = VFPU_FLOAT16_EXP_MAX;
++ if (! fraction)
++ fraction = 0;
++ else
++ fraction = 1;
++ }
++ }
++ else
++ {
++ if (exponent != 0 || fraction != 0)
++ as_warn (_("Half floating point underflow: %g"),
++ flt2int.f);
++ exponent16 = 0;
++ fraction = 0;
++ }
++ INSERT_BITS (float16, sign, VFPU_MASK_FLOAT16_SIGN,
++ VFPU_SH_FLOAT16_SIGN);
++ INSERT_BITS (float16, exponent16, VFPU_MASK_FLOAT16_EXP,
++ VFPU_SH_FLOAT16_EXP);
++ INSERT_BITS (float16, fraction, VFPU_MASK_FLOAT16_FRAC,
++ VFPU_SH_FLOAT16_FRAC);
++ INSERT_OPERAND (VFPU_FLOAT16, *ip, float16);
++ /* Parse the 16-bit constant. */
++ sprintf ((char *) temp, "0x%04x", float16);
++ my_getExpression (&imm_expr, (char *) temp);
++ }
++ }
++ continue;
++
++ case 'w': /* Rotation code. */
++ {
++ int bad_code = 0;
++ int opsize;
++
++ if (*s != '[')
++ {
++ my_getExpression (&imm_expr, s);
++ check_absolute_expr (ip, &imm_expr);
++ if ((unsigned long) imm_expr.X_add_number > 31)
++ as_bad (_("Improper rotation code (%lu)"),
++ (unsigned long) imm_expr.X_add_number);
++ INSERT_OPERAND (VFPU_ROT, *ip, imm_expr.X_add_number);
++ imm_expr.X_op = O_absent;
++ s = expr_end;
++ continue;
++ }
++
++
++ }
++ continue;
++
++ case 'y':
++ /* Save the current immediate and offset expressions for
++ the lvi macro. */
++ {
++ int slot = *++args - '0';
++
++ assert (slot >= 0 && slot < 4);
++
++ memcpy (&vimm_expr[slot], &imm_expr, sizeof (imm_expr));
++ memcpy (&voffset_expr[slot], &offset_expr, sizeof (offset_expr));
++ imm_expr.X_op = O_absent;
++ offset_expr.X_op = O_absent;
++ imm_reloc[0] = BFD_RELOC_UNUSED;
++ imm_reloc[1] = BFD_RELOC_UNUSED;
++ imm_reloc[2] = BFD_RELOC_UNUSED;
++ offset_reloc[0] = BFD_RELOC_UNUSED;
++ offset_reloc[1] = BFD_RELOC_UNUSED;
++ offset_reloc[2] = BFD_RELOC_UNUSED;
++ }
++ continue;
++
++ case 'z': /* Store to write buffer. */
++ {
++ int wb = 0;
++
++ if (strncasecmp (s, "WT", 2) == 0)
++ wb = 0;
++ else if (strncasecmp (s, "WB", 2) == 0)
++ wb = 1;
++ else
++ as_bad (_("Invalid memory access type (%s)"), s);
++ s += 2;
++ INSERT_OPERAND (VFPU_RWB, *ip, wb);
++ }
++ continue;
++
++ }
++ break;
++
+ case '<': /* must be at least one digit */
+ /*
+ * According to the manual, if the shift amount is greater
+@@ -8485,6 +9091,7 @@
if ((regno & 1) != 0
&& HAVE_32BIT_FPRS
@@ -221,7 +844,7 @@ diff -Nbaur binutils-2.16.1/gas/config/tc-mips.c binutils-2.16.1-psp/gas/config/
&& ! (strcmp (str, "mtc1") == 0
|| strcmp (str, "mfc1") == 0
|| strcmp (str, "lwc1") == 0
-@@ -13743,6 +13772,8 @@
+@@ -13743,6 +14350,8 @@
/* MIPS II */
{ "r6000", 0, ISA_MIPS2, CPU_R6000 },
@@ -232,7 +855,7 @@ diff -Nbaur binutils-2.16.1/gas/config/tc-mips.c binutils-2.16.1-psp/gas/config/
{ "r4000", 0, ISA_MIPS3, CPU_R4000 },
diff -Nbaur binutils-2.16.1/gas/configure binutils-2.16.1-psp/gas/configure
--- binutils-2.16.1/gas/configure Tue Mar 1 00:43:51 2005
-+++ binutils-2.16.1-psp/gas/configure Wed Aug 24 01:57:13 2005
++++ binutils-2.16.1-psp/gas/configure Thu Nov 3 18:04:54 2005
@@ -4537,6 +4537,9 @@
mips64vr | mips64vrel)
mips_cpu=vr4100
@@ -245,7 +868,7 @@ diff -Nbaur binutils-2.16.1/gas/configure binutils-2.16.1-psp/gas/configure
;;
diff -Nbaur binutils-2.16.1/gas/configure.in binutils-2.16.1-psp/gas/configure.in
--- binutils-2.16.1/gas/configure.in Tue Mar 1 00:43:57 2005
-+++ binutils-2.16.1-psp/gas/configure.in Wed Aug 24 01:57:13 2005
++++ binutils-2.16.1-psp/gas/configure.in Thu Nov 3 18:04:54 2005
@@ -222,6 +222,9 @@
mips64vr | mips64vrel)
mips_cpu=vr4100
@@ -256,9 +879,22 @@ diff -Nbaur binutils-2.16.1/gas/configure.in binutils-2.16.1-psp/gas/configure.i
mipsisa32r2* | mipsisa64r2*)
changequote(,)dnl
mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
+diff -Nbaur binutils-2.16.1/gas/testsuite/gas/mips/mips.exp binutils-2.16.1-psp/gas/testsuite/gas/mips/mips.exp
+--- binutils-2.16.1/gas/testsuite/gas/mips/mips.exp Tue Apr 19 18:09:45 2005
++++ binutils-2.16.1-psp/gas/testsuite/gas/mips/mips.exp Thu Nov 3 18:04:54 2005
+@@ -382,6 +382,9 @@
+ mips_arch_create sb1 64 mips64 { mips3d } \
+ { -march=sb1 -mtune=sb1 } { -mmips:sb1 } \
+ { mipsisa64sb1-*-* mipsisa64sb1el-*-* }
++mips_arch_create allegrex 32 mips2 { ror } \
++ { -march=allegrex -mtune=allegrex } { -mmips:allegrex } \
++ { mipsallegrex-*-* mipsallegrexel-*-* }
+
+
+ #
diff -Nbaur binutils-2.16.1/include/bin-bugs.h binutils-2.16.1-psp/include/bin-bugs.h
--- binutils-2.16.1/include/bin-bugs.h Fri Jul 23 16:40:19 2004
-+++ binutils-2.16.1-psp/include/bin-bugs.h Wed Aug 24 01:57:13 2005
++++ binutils-2.16.1-psp/include/bin-bugs.h Thu Nov 3 18:04:54 2005
@@ -1,3 +1,3 @@
#ifndef REPORT_BUGS_TO
-#define REPORT_BUGS_TO ""
@@ -266,7 +902,7 @@ diff -Nbaur binutils-2.16.1/include/bin-bugs.h binutils-2.16.1-psp/include/bin-b
#endif
diff -Nbaur binutils-2.16.1/include/elf/common.h binutils-2.16.1-psp/include/elf/common.h
--- binutils-2.16.1/include/elf/common.h Fri Oct 8 14:55:08 2004
-+++ binutils-2.16.1-psp/include/elf/common.h Wed Aug 24 01:57:13 2005
++++ binutils-2.16.1-psp/include/elf/common.h Thu Nov 3 18:04:54 2005
@@ -93,6 +93,7 @@
#define ET_HIOS 0xFEFF /* Operating system-specific */
#define ET_LOPROC 0xFF00 /* Processor-specific */
@@ -277,7 +913,7 @@ diff -Nbaur binutils-2.16.1/include/elf/common.h binutils-2.16.1-psp/include/elf
are officially assigned by registry@caldera.com. See below for a list of
diff -Nbaur binutils-2.16.1/include/elf/mips.h binutils-2.16.1-psp/include/elf/mips.h
--- binutils-2.16.1/include/elf/mips.h Thu Mar 3 11:58:06 2005
-+++ binutils-2.16.1-psp/include/elf/mips.h Wed Aug 24 01:57:13 2005
++++ binutils-2.16.1-psp/include/elf/mips.h Thu Nov 3 18:04:54 2005
@@ -212,6 +212,7 @@
#define E_MIPS_MACH_5400 0x00910000
#define E_MIPS_MACH_5500 0x00980000
@@ -288,8 +924,8 @@ diff -Nbaur binutils-2.16.1/include/elf/mips.h binutils-2.16.1-psp/include/elf/m
exist. Symbols with a st_shndx field corresponding to one of these
diff -Nbaur binutils-2.16.1/include/opcode/mips.h binutils-2.16.1-psp/include/opcode/mips.h
--- binutils-2.16.1/include/opcode/mips.h Thu Mar 3 11:58:10 2005
-+++ binutils-2.16.1-psp/include/opcode/mips.h Wed Aug 24 01:57:13 2005
-@@ -171,6 +171,83 @@
++++ binutils-2.16.1-psp/include/opcode/mips.h Thu Nov 3 18:04:54 2005
+@@ -171,6 +171,97 @@
#define MDMX_FMTSEL_VEC_QH 0x15
#define MDMX_FMTSEL_VEC_OB 0x16
@@ -334,6 +970,18 @@ diff -Nbaur binutils-2.16.1/include/opcode/mips.h binutils-2.16.1-psp/include/op
+#define VFPU_OP_VT_VS_VD 0xff800000
+#define VFPU_OPCODE_VMMUL 0xf0000000
+
++/* VFPU condition codes. FL and TR accept no arguments, while any conditions
++ above and including EZ only accept one argument. The rest require two
++ arguments. */
++enum
++{
++ VFPU_COND_FL, VFPU_COND_EQ, VFPU_COND_LT, VFPU_COND_LE,
++ VFPU_COND_TR, VFPU_COND_NE, VFPU_COND_GE, VFPU_COND_GT,
++ VFPU_COND_EZ, VFPU_COND_EN, VFPU_COND_EI, VFPU_COND_ES,
++ VFPU_COND_NZ, VFPU_COND_NN, VFPU_COND_NI, VFPU_COND_NS,
++ VFPU_NUM_CONDS
++};
++
+/* VFPU prefix instruction operands. The *_SH_* values really specify where
+ the bitfield begins, as VFPU prefix instructions have four operands
+ encoded within the immediate field. */
@@ -343,9 +991,11 @@ diff -Nbaur binutils-2.16.1/include/opcode/mips.h binutils-2.16.1-psp/include/op
+#define VFPU_MASK_PFX_CST 0x1 /* Constant. */
+#define VFPU_SH_PFX_ABS_CSTHI 8
+#define VFPU_MASK_PFX_ABS_CSTHI 0x1 /* Abs/Constant (bit 2). */
++#define VFPU_SH_PFX_SWZ_CSTLO 0
+#define VFPU_MASK_PFX_SWZ_CSTLO 0x3 /* Swizzle/Constant (bits 0-1). */
+#define VFPU_SH_PFX_MASK 8
+#define VFPU_MASK_PFX_MASK 0x1 /* Mask. */
++#define VFPU_SH_PFX_SAT 0
+#define VFPU_MASK_PFX_SAT 0x3 /* Saturation. */
+
+/* Special handling of the vrot instructions. */
@@ -373,7 +1023,7 @@ diff -Nbaur binutils-2.16.1/include/opcode/mips.h binutils-2.16.1-psp/include/op
/* This structure holds information for a particular instruction. */
struct mips_opcode
-@@ -258,6 +335,29 @@
+@@ -258,6 +349,29 @@
Requires that "+A" or "+E" occur first to set position.
Enforces: 32 < (pos+size) <= 64.
@@ -403,7 +1053,7 @@ diff -Nbaur binutils-2.16.1/include/opcode/mips.h binutils-2.16.1-psp/include/op
Floating point instructions:
"D" 5 bit destination register (OP_*_FD)
"M" 3 bit compare condition code (OP_*_CCC) (only used for mips4 and up)
-@@ -442,6 +542,8 @@
+@@ -442,6 +556,8 @@
#define INSN_5400 0x01000000
/* NEC VR5500 instruction. */
#define INSN_5500 0x02000000
@@ -412,7 +1062,7 @@ diff -Nbaur binutils-2.16.1/include/opcode/mips.h binutils-2.16.1-psp/include/op
/* MIPS ISA defines, use instead of hardcoding ISA level. */
-@@ -489,6 +591,7 @@
+@@ -489,6 +605,7 @@
#define CPU_MIPS64 64
#define CPU_MIPS64R2 65
#define CPU_SB1 12310201 /* octal 'SB', 01. */
@@ -420,7 +1070,7 @@ diff -Nbaur binutils-2.16.1/include/opcode/mips.h binutils-2.16.1-psp/include/op
/* Test for membership in an ISA including chip specific ISAs. INSN
is pointer to an element of the opcode table; ISA is the specified
-@@ -510,6 +613,7 @@
+@@ -510,6 +627,7 @@
|| (cpu == CPU_VR4120 && ((insn)->membership & INSN_4120) != 0) \
|| (cpu == CPU_VR5400 && ((insn)->membership & INSN_5400) != 0) \
|| (cpu == CPU_VR5500 && ((insn)->membership & INSN_5500) != 0) \
@@ -428,62 +1078,62 @@ diff -Nbaur binutils-2.16.1/include/opcode/mips.h binutils-2.16.1-psp/include/op
|| 0) /* Please keep this term for easier source merging. */
/* This is a list of macro expanded instructions.
-@@ -625,6 +729,16 @@
+@@ -625,6 +743,16 @@
M_LL_AB,
M_LLD_AB,
M_LS_A,
-+ M_LVHIP,
-+ M_LVHIS,
-+ M_LVIP,
-+ M_LVIQ,
-+ M_LVIS,
-+ M_LVIT,
-+ M_LVLQ_AB,
-+ M_LVRQ_AB,
-+ M_LVQ_AB,
-+ M_LVQ_AB_2,
++ M_LVHI_P,
++ M_LVHI_S,
++ M_LVI_P,
++ M_LVI_Q,
++ M_LVI_S,
++ M_LVI_T,
++ M_LVL_Q_AB,
++ M_LVR_Q_AB,
++ M_LV_Q_AB,
++ M_LV_Q_AB_2,
M_LW_A,
M_LW_AB,
M_LWC0_A,
-@@ -714,6 +828,10 @@
+@@ -714,6 +842,10 @@
M_SUB_I,
M_SUBU_I,
M_SUBU_I_2,
-+ M_SVLQ_AB,
-+ M_SVQ_AB,
-+ M_SVRQ_AB,
-+ M_SVS_AB,
++ M_SVL_Q_AB,
++ M_SV_Q_AB,
++ M_SVR_Q_AB,
++ M_SV_S_AB,
M_TEQ_I,
M_TGE_I,
M_TGEU_I,
-@@ -728,14 +846,24 @@
+@@ -728,14 +860,24 @@
M_ULH_A,
M_ULHU,
M_ULHU_A,
-+ M_ULVQ,
-+ M_ULVQ_AB,
-+ M_ULVS,
++ M_ULV_Q,
++ M_ULV_Q_AB,
++ M_ULV_S,
M_ULW,
M_ULW_A,
M_USH,
M_USH_A,
-+ M_USVQ,
-+ M_USVQ_AB,
-+ M_USVS,
++ M_USV_Q,
++ M_USV_Q_AB,
++ M_USV_S,
M_USW,
M_USW_A,
M_USD,
M_USD_A,
-+ M_VCMOVP,
-+ M_VCMOVQ,
-+ M_VCMOVS,
-+ M_VCMOVT,
++ M_VCMOV_P,
++ M_VCMOV_Q,
++ M_VCMOV_S,
++ M_VCMOV_T,
M_XOR_I,
M_COP0,
M_COP1,
diff -Nbaur binutils-2.16.1/ld/Makefile.am binutils-2.16.1-psp/ld/Makefile.am
--- binutils-2.16.1/ld/Makefile.am Thu Jan 20 19:37:49 2005
-+++ binutils-2.16.1-psp/ld/Makefile.am Wed Aug 24 01:57:13 2005
++++ binutils-2.16.1-psp/ld/Makefile.am Thu Nov 3 18:04:54 2005
@@ -190,6 +190,7 @@
eelf_i386_chaos.o \
eelf_i386_fbsd.o \
@@ -504,7 +1154,7 @@ diff -Nbaur binutils-2.16.1/ld/Makefile.am binutils-2.16.1-psp/ld/Makefile.am
${GENSCRIPTS} elf_s390 "$(tdir_elf_s390)"
diff -Nbaur binutils-2.16.1/ld/Makefile.in binutils-2.16.1-psp/ld/Makefile.in
--- binutils-2.16.1/ld/Makefile.in Sun Jan 23 05:36:37 2005
-+++ binutils-2.16.1-psp/ld/Makefile.in Wed Aug 24 01:57:13 2005
++++ binutils-2.16.1-psp/ld/Makefile.in Thu Nov 3 18:04:54 2005
@@ -315,6 +315,7 @@
eelf_i386_chaos.o \
eelf_i386_fbsd.o \
@@ -525,7 +1175,7 @@ diff -Nbaur binutils-2.16.1/ld/Makefile.in binutils-2.16.1-psp/ld/Makefile.in
${GENSCRIPTS} elf_s390 "$(tdir_elf_s390)"
diff -Nbaur binutils-2.16.1/ld/configure.tgt binutils-2.16.1-psp/ld/configure.tgt
--- binutils-2.16.1/ld/configure.tgt Tue Feb 8 19:54:27 2005
-+++ binutils-2.16.1-psp/ld/configure.tgt Wed Aug 24 01:57:13 2005
++++ binutils-2.16.1-psp/ld/configure.tgt Thu Nov 3 18:04:54 2005
@@ -428,6 +428,8 @@
mips*vr4100-*-elf*) targ_emul=elf32b4300 ;;
mips*vr5000el-*-elf*) targ_emul=elf32l4300 ;;
@@ -537,7 +1187,7 @@ diff -Nbaur binutils-2.16.1/ld/configure.tgt binutils-2.16.1-psp/ld/configure.tg
mips*el-*-rtems*) targ_emul=elf32elmip ;;
diff -Nbaur binutils-2.16.1/ld/emulparams/elf_mipsallegrexel_psp.sh binutils-2.16.1-psp/ld/emulparams/elf_mipsallegrexel_psp.sh
--- binutils-2.16.1/ld/emulparams/elf_mipsallegrexel_psp.sh Thu Jan 1 00:00:00 1970
-+++ binutils-2.16.1-psp/ld/emulparams/elf_mipsallegrexel_psp.sh Wed Aug 24 01:57:13 2005
++++ binutils-2.16.1-psp/ld/emulparams/elf_mipsallegrexel_psp.sh Thu Nov 3 18:04:54 2005
@@ -0,0 +1,22 @@
+# Based off of the default elf32 MIPS target. However, we use a seperate
+# script template because the PSP architecture defines sections that normally
@@ -563,7 +1213,7 @@ diff -Nbaur binutils-2.16.1/ld/emulparams/elf_mipsallegrexel_psp.sh binutils-2.1
+OTHER_SECTIONS="/DISCARD/ : { *(.comment) *(.pdr) }"
diff -Nbaur binutils-2.16.1/ld/scripttempl/elf_psp.sc binutils-2.16.1-psp/ld/scripttempl/elf_psp.sc
--- binutils-2.16.1/ld/scripttempl/elf_psp.sc Thu Jan 1 00:00:00 1970
-+++ binutils-2.16.1-psp/ld/scripttempl/elf_psp.sc Wed Aug 24 01:57:13 2005
++++ binutils-2.16.1-psp/ld/scripttempl/elf_psp.sc Thu Nov 3 18:04:54 2005
@@ -0,0 +1,496 @@
+#
+# Unusual variables checked by this code:
@@ -1063,7 +1713,7 @@ diff -Nbaur binutils-2.16.1/ld/scripttempl/elf_psp.sc binutils-2.16.1-psp/ld/scr
+EOF
diff -Nbaur binutils-2.16.1/opcodes/mips-dis.c binutils-2.16.1-psp/opcodes/mips-dis.c
--- binutils-2.16.1/opcodes/mips-dis.c Thu Mar 3 11:49:50 2005
-+++ binutils-2.16.1-psp/opcodes/mips-dis.c Wed Aug 24 01:57:13 2005
++++ binutils-2.16.1-psp/opcodes/mips-dis.c Thu Nov 3 18:04:54 2005
@@ -140,6 +140,139 @@
"c0_taglo", "c0_taghi", "c0_errorepc", "c0_desave",
};
@@ -1330,7 +1980,7 @@ diff -Nbaur binutils-2.16.1/opcodes/mips-dis.c binutils-2.16.1-psp/opcodes/mips-
+ case '7':
+ {
+ unsigned int pos = *d, base = '4';
-+ unsigned int mask = (l >> (pos - (base - VFPU_MASK_PFX_MASK))) & VFPU_MASK_PFX_MASK;
++ unsigned int mask = (l >> (pos - (base - VFPU_SH_PFX_MASK))) & VFPU_MASK_PFX_MASK;
+ unsigned int saturation = (l >> ((pos - base) * 2)) & VFPU_MASK_PFX_SAT;
+
+ if (mask)
@@ -1620,7 +2270,7 @@ diff -Nbaur binutils-2.16.1/opcodes/mips-dis.c binutils-2.16.1-psp/opcodes/mips-
default:
diff -Nbaur binutils-2.16.1/opcodes/mips-opc.c binutils-2.16.1-psp/opcodes/mips-opc.c
--- binutils-2.16.1/opcodes/mips-opc.c Thu Mar 3 11:49:50 2005
-+++ binutils-2.16.1-psp/opcodes/mips-opc.c Wed Aug 24 01:57:13 2005
++++ binutils-2.16.1-psp/opcodes/mips-opc.c Thu Nov 3 18:04:54 2005
@@ -109,6 +109,7 @@
#define N5 (INSN_5400 | INSN_5500)
#define N54 INSN_5400
@@ -1633,7 +2283,7 @@ diff -Nbaur binutils-2.16.1/opcodes/mips-opc.c binutils-2.16.1-psp/opcodes/mips-
{"bnel", "s,t,p", 0x54000000, 0xfc000000, CBL|RD_s|RD_t, 0, I2|T3 },
{"bnel", "s,I,p", 0, (int) M_BNEL_I, INSN_MACRO, 0, I2|T3 },
{"break", "", 0x0000000d, 0xffffffff, TRAP, 0, I1 },
-+{"break", "B", 0x0000000d, 0xfc00003f, TRAP, 0, I32|AL },
++{"break", "B", 0x0000000d, 0xfc00003f, TRAP, 0, AL },
{"break", "c", 0x0000000d, 0xfc00ffff, TRAP, 0, I1 },
{"break", "c,q", 0x0000000d, 0xfc00003f, TRAP, 0, I1 },
{"c.f.d", "S,T", 0x46200030, 0xffe007ff, RD_S|RD_T|WR_CC|FP_D, 0, I1 },
@@ -1656,7 +2306,7 @@ diff -Nbaur binutils-2.16.1/opcodes/mips-opc.c binutils-2.16.1-psp/opcodes/mips-
{"ctc0", "t,G", 0x40c00000, 0xffe007ff, COD|RD_t|WR_CC, 0, I1 },
{"ctc1", "t,G", 0x44c00000, 0xffe007ff, COD|RD_t|WR_CC|FP_S, 0, I1 },
{"ctc1", "t,S", 0x44c00000, 0xffe007ff, COD|RD_t|WR_CC|FP_S, 0, I1 },
-@@ -465,10 +469,12 @@
+@@ -465,13 +469,15 @@
{"cvt.ps.s","D,V,T", 0x46000026, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, 0, I5 },
{"cvt.pw.ps", "D,S", 0x46c00024, 0xffff003f, WR_D|RD_S|FP_S|FP_D, 0, M3D },
{"dabs", "d,v", 0, (int) M_DABS, INSN_MACRO, 0, I3 },
@@ -1668,7 +2318,20 @@ diff -Nbaur binutils-2.16.1/opcodes/mips-opc.c binutils-2.16.1-psp/opcodes/mips-
+{"min", "d,v,t", 0x0000002d, 0xfc0007ff, WR_d|RD_s|RD_t, 0, AL },
{"daddu", "d,v,t", 0x0000002d, 0xfc0007ff, WR_d|RD_s|RD_t, 0, I3 },
{"daddu", "t,r,I", 0, (int) M_DADDU_I, INSN_MACRO, 0, I3 },
- {"dbreak", "", 0x7000003f, 0xffffffff, 0, 0, N5 },
+-{"dbreak", "", 0x7000003f, 0xffffffff, 0, 0, N5 },
++{"dbreak", "", 0x7000003f, 0xffffffff, 0, 0, N5|AL },
+ {"dclo", "U,s", 0x70000025, 0xfc0007ff, RD_s|WR_d|WR_t, 0, I64|N55 },
+ {"dclz", "U,s", 0x70000024, 0xfc0007ff, RD_s|WR_d|WR_t, 0, I64|N55 },
+ /* dctr and dctw are used on the r5000. */
+@@ -558,7 +564,7 @@
+ {"dremu", "z,s,t", 0x0000001f, 0xfc00ffff, RD_s|RD_t|WR_HILO, 0, I3 },
+ {"dremu", "d,v,t", 3, (int) M_DREMU_3, INSN_MACRO, 0, I3 },
+ {"dremu", "d,v,I", 3, (int) M_DREMU_3I, INSN_MACRO, 0, I3 },
+-{"dret", "", 0x7000003e, 0xffffffff, 0, 0, N5 },
++{"dret", "", 0x7000003e, 0xffffffff, 0, 0, N5|AL },
+ {"drol", "d,v,t", 0, (int) M_DROL, INSN_MACRO, 0, I3 },
+ {"drol", "d,v,I", 0, (int) M_DROL_I, INSN_MACRO, 0, I3 },
+ {"dror", "d,v,t", 0, (int) M_DROR, INSN_MACRO, 0, I3 },
@@ -595,8 +601,8 @@
{"dsubu", "d,v,I", 0, (int) M_DSUBU_I, INSN_MACRO, 0, I3 },
{"ei", "", 0x41606020, 0xffffffff, WR_t|WR_C0, 0, I33 },
@@ -1735,6 +2398,15 @@ diff -Nbaur binutils-2.16.1/opcodes/mips-opc.c binutils-2.16.1-psp/opcodes/mips-
{"maddu", "s,t", 0x70000001, 0xfc00ffff, RD_s|RD_t|MOD_HILO, 0, I32|N55},
{"maddu", "s,t", 0x70000001, 0xfc00ffff, RD_s|RD_t|WR_HILO|IS_M, 0, G1 },
{"maddu", "d,s,t", 0x70000001, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d|IS_M, 0, G1 },
+@@ -739,7 +738,7 @@
+ /* mfhc2 is at the bottom of the table. */
+ {"mfc3", "t,G", 0x4c000000, 0xffe007ff, LCD|WR_t|RD_C3, 0, I1 },
+ {"mfc3", "t,G,H", 0x4c000000, 0xffe007f8, LCD|WR_t|RD_C3, 0, I32 },
+-{"mfdr", "t,G", 0x7000003d, 0xffe007ff, LCD|WR_t|RD_C0, 0, N5 },
++{"mfdr", "t,G", 0x7000003d, 0xffe007ff, LCD|WR_t|RD_C0, 0, N5|AL },
+ {"mfhi", "d", 0x00000010, 0xffff07ff, WR_d|RD_HI, 0, I1 },
+ {"mflo", "d", 0x00000012, 0xffff07ff, WR_d|RD_LO, 0, I1 },
+ {"min.ob", "X,Y,Q", 0x78000006, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, 0, MX|SB1 },
@@ -756,7 +755,7 @@
{"movf.l", "X,Y,N", 0x46a00011, 0xffe3003f, WR_D|RD_S|RD_CC|FP_D, 0, MX|SB1 },
{"movf.s", "D,S,N", 0x46000011, 0xffe3003f, WR_D|RD_S|RD_CC|FP_S, 0, I4|I32 },
@@ -1764,6 +2436,15 @@ diff -Nbaur binutils-2.16.1/opcodes/mips-opc.c binutils-2.16.1-psp/opcodes/mips-
{"msubu", "s,t", 0x70000005, 0xfc00ffff, RD_s|RD_t|MOD_HILO, 0, I32|N55 },
{"mtpc", "t,P", 0x4080c801, 0xffe0ffc1, COD|RD_t|WR_C0, 0, M1|N5 },
{"mtps", "t,P", 0x4080c800, 0xffe0ffc1, COD|RD_t|WR_C0, 0, M1|N5 },
+@@ -802,7 +803,7 @@
+ /* mthc2 is at the bottom of the table. */
+ {"mtc3", "t,G", 0x4c800000, 0xffe007ff, COD|RD_t|WR_C3|WR_CC, 0, I1 },
+ {"mtc3", "t,G,H", 0x4c800000, 0xffe007f8, COD|RD_t|WR_C3|WR_CC, 0, I32 },
+-{"mtdr", "t,G", 0x7080003d, 0xffe007ff, COD|RD_t|WR_C0, 0, N5 },
++{"mtdr", "t,G", 0x7080003d, 0xffe007ff, COD|RD_t|WR_C0, 0, N5|AL },
+ {"mthi", "s", 0x00000011, 0xfc1fffff, RD_s|WR_HI, 0, I1 },
+ {"mtlo", "s", 0x00000013, 0xfc1fffff, RD_s|WR_LO, 0, I1 },
+ {"mul.d", "D,V,T", 0x46200002, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, 0, I1 },
@@ -936,13 +937,13 @@
{"rol", "d,v,I", 0, (int) M_ROL_I, INSN_MACRO, 0, I1 },
{"ror", "d,v,t", 0, (int) M_ROR, INSN_MACRO, 0, I1 },
@@ -1837,12 +2518,14 @@ diff -Nbaur binutils-2.16.1/opcodes/mips-opc.c binutils-2.16.1-psp/opcodes/mips-
{"xor", "d,v,t", 0x00000026, 0xfc0007ff, WR_d|RD_s|RD_t, 0, I1 },
{"xor", "t,r,I", 0, (int) M_XOR_I, INSN_MACRO, 0, I1 },
{"xor.ob", "X,Y,Q", 0x7800000d, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, 0, MX|SB1 },
-@@ -1179,6 +1173,317 @@
+@@ -1179,6 +1173,319 @@
{"xor.qh", "X,Y,Q", 0x7820000d, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, 0, MX },
{"xori", "t,r,i", 0x38000000, 0xfc000000, WR_t|RD_s, 0, I1 },
+/* Sony Allegrex CPU core. */
+{"bitrev", "d,t", 0x7c000520, 0xffe007ff, WR_d|RD_t, 0, AL },
++{"mfic", "t,G", 0x70000024, 0xffe007ff, LCD|WR_t|RD_C0, 0, AL },
++{"mtic", "t,G", 0x70000026, 0xffe007ff, COD|RD_t|WR_C0, 0, AL },
+
+/* Sony Allegrex VFPU instructions. */
+{"bvf", "?c,p", 0x49000000, 0xffe30000, CBD|RD_CC, 0, AL },
@@ -1850,37 +2533,37 @@ diff -Nbaur binutils-2.16.1/opcodes/mips-opc.c binutils-2.16.1-psp/opcodes/mips-
+{"bvt", "?c,p", 0x49010000, 0xffe30000, CBD|RD_CC, 0, AL },
+{"bvtl", "?c,p", 0x49030000, 0xffe30000, CBL|RD_CC, 0, AL },
+{"lv.s", "?m0x,?o(b)", 0xc8000000, 0xfc000000, CLD|RD_s|WR_CC, 0, AL },
-+{"lv.s", "?m0x,A(b)", 0, (int) M_LVQ_AB, INSN_MACRO, 0, AL },
-+{"ulv.s", "?m0x,o(b)", 0, (int) M_ULVS, INSN_MACRO, 0, AL },
++{"lv.s", "?m0x,A(b)", 0, (int) M_LV_Q_AB, INSN_MACRO, 0, AL },
++{"ulv.s", "?m0x,o(b)", 0, (int) M_ULV_S, INSN_MACRO, 0, AL },
+{"lv.q", "?n3x,?o(b)", 0xd8000000, 0xfc000002, CLD|RD_s|WR_CC, 0, AL },
-+{"lv.q", "?n3x,A(b)", 0, (int) M_LVQ_AB_2, INSN_MACRO, 0, AL },
-+{"ulv.q", "?n3x,?o(b)", 0, (int) M_ULVQ, INSN_MACRO, 0, AL },
-+{"ulv.q", "?n3x,A(b)", 0, (int) M_ULVQ_AB, INSN_MACRO, 0, AL },
-+{"lvi.s", "?t0x,l?y0", 0, (int) M_LVIS, INSN_MACRO, 0, AL },
-+{"lvi.p", "?t1x,?[l?y0,l?y1?]", 0, (int) M_LVIP, INSN_MACRO, 0, AL },
-+{"lvi.t", "?t2x,?[l?y0,l?y1,l?y2?]", 0, (int) M_LVIT, INSN_MACRO, 0, AL },
-+{"lvi.q", "?t3x,?[l?y0,l?y1,l?y2,l?y3?]", 0, (int) M_LVIQ, INSN_MACRO, 0, AL },
-+{"lvhi.s", "?t0x,?[?u?y0,?u?y1?]", 0, (int) M_LVHIS, INSN_MACRO, 0, AL },
-+{"lvhi.p", "?t1x,?[?u?y0,?u?y1,?u?y2,?u?y3?]", 0, (int) M_LVHIP, INSN_MACRO, 0, AL },
++{"lv.q", "?n3x,A(b)", 0, (int) M_LV_Q_AB_2, INSN_MACRO, 0, AL },
++{"ulv.q", "?n3x,?o(b)", 0, (int) M_ULV_Q, INSN_MACRO, 0, AL },
++{"ulv.q", "?n3x,A(b)", 0, (int) M_ULV_Q_AB, INSN_MACRO, 0, AL },
++{"lvi.s", "?t0x,l?y0", 0, (int) M_LVI_S, INSN_MACRO, 0, AL },
++{"lvi.p", "?t1x,?[l?y0,l?y1?]", 0, (int) M_LVI_P, INSN_MACRO, 0, AL },
++{"lvi.t", "?t2x,?[l?y0,l?y1,l?y2?]", 0, (int) M_LVI_T, INSN_MACRO, 0, AL },
++{"lvi.q", "?t3x,?[l?y0,l?y1,l?y2,l?y3?]", 0, (int) M_LVI_Q, INSN_MACRO, 0, AL },
++{"lvhi.s", "?t0x,?[?u?y0,?u?y1?]", 0, (int) M_LVHI_S, INSN_MACRO, 0, AL },
++{"lvhi.p", "?t1x,?[?u?y0,?u?y1,?u?y2,?u?y3?]", 0, (int) M_LVHI_P, INSN_MACRO, 0, AL },
+{"sv.s", "?m0x,?o(b)", 0xe8000000, 0xfc000000, SM|RD_s|RD_C2, 0, AL },
-+{"sv.s", "?m0x,A(b)", 0, (int) M_SVS_AB, INSN_MACRO, 0, AL },
-+{"usv.s", "?m0x,o(b)", 0, (int) M_USVS, INSN_MACRO, 0, AL },
++{"sv.s", "?m0x,A(b)", 0, (int) M_SV_S_AB, INSN_MACRO, 0, AL },
++{"usv.s", "?m0x,o(b)", 0, (int) M_USV_S, INSN_MACRO, 0, AL },
+{"sv.q", "?n3x,?o(b)", 0xf8000000, 0xfc000002, SM|RD_s|RD_C2, 0, AL },
+{"sv.q", "?n3x,?o(b),?z", 0xf8000000, 0xfc000000, SM|RD_s|RD_C2, 0, AL },
-+{"sv.q", "?n3x,A(b)", 0, (int) M_SVQ_AB, INSN_MACRO, 0, AL },
-+{"sv.q", "?n3x,A(b),?z", 0, (int) M_SVQ_AB, INSN_MACRO, 0, AL },
-+{"sv.q", "?n3x,A,?z", 0, (int) M_SVQ_AB, INSN_MACRO, 0, AL },
-+{"usv.q", "?n3x,?o(b)", 0, (int) M_USVQ, INSN_MACRO, 0, AL },
-+{"usv.q", "?n3x,A(b)", 0, (int) M_USVQ_AB, INSN_MACRO, 0, AL },
++{"sv.q", "?n3x,A(b)", 0, (int) M_SV_Q_AB, INSN_MACRO, 0, AL },
++{"sv.q", "?n3x,A(b),?z", 0, (int) M_SV_Q_AB, INSN_MACRO, 0, AL },
++{"sv.q", "?n3x,A,?z", 0, (int) M_SV_Q_AB, INSN_MACRO, 0, AL },
++{"usv.q", "?n3x,?o(b)", 0, (int) M_USV_Q, INSN_MACRO, 0, AL },
++{"usv.q", "?n3x,A(b)", 0, (int) M_USV_Q_AB, INSN_MACRO, 0, AL },
+{"vwb.q", "?n3x,?o(b)", 0xf8000002, 0xfc000002, SM|RD_s|RD_C2, 0, AL },
+{"lvl.q", "?n3x,?o(b)", 0xd4000000, 0xfc000002, CLD|RD_s|WR_CC, 0, AL },
-+{"lvl.q", "?n3x,A(b)", 0, (int) M_LVLQ_AB, INSN_MACRO, 0, AL },
++{"lvl.q", "?n3x,A(b)", 0, (int) M_LVL_Q_AB, INSN_MACRO, 0, AL },
+{"lvr.q", "?n3x,?o(b)", 0xd4000002, 0xfc000002, CLD|RD_s|WR_CC, 0, AL },
-+{"lvr.q", "?n3x,A(b)", 0, (int) M_LVRQ_AB, INSN_MACRO, 0, AL },
++{"lvr.q", "?n3x,A(b)", 0, (int) M_LVR_Q_AB, INSN_MACRO, 0, AL },
+{"svl.q", "?n3x,?o(b)", 0xf4000000, 0xfc000002, SM|RD_s|RD_C2, 0, AL },
-+{"svl.q", "?n3x,A(b)", 0, (int) M_SVLQ_AB, INSN_MACRO, 0, AL },
++{"svl.q", "?n3x,A(b)", 0, (int) M_SVL_Q_AB, INSN_MACRO, 0, AL },
+{"svr.q", "?n3x,?o(b)", 0xf4000002, 0xfc000002, SM|RD_s|RD_C2, 0, AL },
-+{"svr.q", "?n3x,A(b)", 0, (int) M_SVRQ_AB, INSN_MACRO, 0, AL },
++{"svr.q", "?n3x,A(b)", 0, (int) M_SVR_Q_AB, INSN_MACRO, 0, AL },
+{"mtv", "t,?d0z", 0x48e00000, 0xffe0ff80, LCD|WR_t|WR_C2, 0, AL },
+{"mfv", "t,?d0z", 0x48600000, 0xffe0ff80, COD|RD_t|WR_CC|RD_C2, 0, AL },
+{"mtvc", "t,?q", 0x48e00000, 0xffe0ff00, LCD|WR_t|WR_C2, 0, AL },
@@ -1945,7 +2628,7 @@ diff -Nbaur binutils-2.16.1/opcodes/mips-opc.c binutils-2.16.1-psp/opcodes/mips-
+{"vf2iu.q", "?d3m,?s3s,?b", 0xd2408080, 0xffe08080, RD_C2, 0, AL },
+{"vf2id.q", "?d3m,?s3s,?b", 0xd2608080, 0xffe08080, RD_C2, 0, AL },
+{"vi2f.q", "?d3d,?s3w,?b", 0xd2808080, 0xffe08080, RD_C2, 0, AL },
-+{"vcmov.q", "?d3d,?s3s,?e", 0, (int) M_VCMOVQ, INSN_MACRO, 0, AL },
++{"vcmov.q", "?d3d,?s3s,?e", 0, (int) M_VCMOV_Q, INSN_MACRO, 0, AL },
+{"vcmovt.q", "?d3d,?s3s,?e", 0xd2a08080, 0xfff88080, RD_C2, 0, AL },
+{"vcmovf.q", "?d3d,?s3s,?e", 0xd2a88080, 0xfff88080, RD_C2, 0, AL },
+{"vmmul.q", "?v7z,?s7y,?t7x", 0xf0008080, 0xff808080, RD_C2, 0, AL },
@@ -2008,7 +2691,7 @@ diff -Nbaur binutils-2.16.1/opcodes/mips-opc.c binutils-2.16.1-psp/opcodes/mips-
+{"vf2iu.t", "?d2m,?s2s,?b", 0xd2408000, 0xffe08080, RD_C2, 0, AL },
+{"vf2id.t", "?d2m,?s2s,?b", 0xd2608000, 0xffe08080, RD_C2, 0, AL },
+{"vi2f.t", "?d2d,?s2w,?b", 0xd2808000, 0xffe08080, RD_C2, 0, AL },
-+{"vcmov.t", "?d2d,?s2s,?e", 0, (int) M_VCMOVT, INSN_MACRO, 0, AL },
++{"vcmov.t", "?d2d,?s2s,?e", 0, (int) M_VCMOV_T, INSN_MACRO, 0, AL },
+{"vcmovt.t", "?d2d,?s2s,?e", 0xd2a08000, 0xfff88080, RD_C2, 0, AL },
+{"vcmovf.t", "?d2d,?s2s,?e", 0xd2a88000, 0xfff88080, RD_C2, 0, AL },
+{"vmmul.t", "?v6z,?s6y,?t6x", 0xf0008000, 0xff808080, RD_C2, 0, AL },
@@ -2077,7 +2760,7 @@ diff -Nbaur binutils-2.16.1/opcodes/mips-opc.c binutils-2.16.1-psp/opcodes/mips-
+{"vf2iu.p", "?d1m,?s1s,?b", 0xd2400080, 0xffe08080, RD_C2, 0, AL },
+{"vf2id.p", "?d1m,?s1s,?b", 0xd2600080, 0xffe08080, RD_C2, 0, AL },
+{"vi2f.p", "?d1d,?s1w,?b", 0xd2800080, 0xffe08080, RD_C2, 0, AL },
-+{"vcmov.p", "?d1d,?s1s,?e", 0, (int) M_VCMOVP, INSN_MACRO, 0, AL },
++{"vcmov.p", "?d1d,?s1s,?e", 0, (int) M_VCMOV_P, INSN_MACRO, 0, AL },
+{"vcmovt.p", "?d1d,?s1s,?e", 0xd2a00080, 0xfff88080, RD_C2, 0, AL },
+{"vcmovf.p", "?d1d,?s1s,?e", 0xd2a80080, 0xfff88080, RD_C2, 0, AL },
+{"vmmul.p", "?v5z,?s5y,?t5x", 0xf0000080, 0xff808080, RD_C2, 0, AL },
@@ -2138,7 +2821,7 @@ diff -Nbaur binutils-2.16.1/opcodes/mips-opc.c binutils-2.16.1-psp/opcodes/mips-
+{"vf2iu.s", "?d0m,?s0s,?b", 0xd2400000, 0xffe08080, RD_C2, 0, AL },
+{"vf2id.s", "?d0m,?s0s,?b", 0xd2600000, 0xffe08080, RD_C2, 0, AL },
+{"vi2f.s", "?d0d,?s0w,?b", 0xd2800000, 0xffe08080, RD_C2, 0, AL },
-+{"vcmov.s", "?d0d,?s0s,?e", 0, (int) M_VCMOVS, INSN_MACRO, 0, AL },
++{"vcmov.s", "?d0d,?s0s,?e", 0, (int) M_VCMOV_S, INSN_MACRO, 0, AL },
+{"vcmovt.s", "?d0d,?s0s,?e", 0xd2a00000, 0xfff88080, RD_C2, 0, AL },
+{"vcmovf.s", "?d0d,?s0s,?e", 0xd2a80000, 0xfff88080, RD_C2, 0, AL },
+{"vwbn.s", "?d0d,?s0s,?i", 0xd3000000, 0xff008080, RD_C2, 0, AL },
@@ -2155,7 +2838,7 @@ diff -Nbaur binutils-2.16.1/opcodes/mips-opc.c binutils-2.16.1-psp/opcodes/mips-
/* Coprocessor 2 move/branch operations overlap with VR5400 .ob format
instructions so they are here for the latters to take precedence. */
{"bc2f", "p", 0x49000000, 0xffff0000, CBD|RD_CC, 0, I1 },
-@@ -1197,6 +1502,36 @@
+@@ -1197,6 +1504,36 @@
{"mtc2", "t,G", 0x48800000, 0xffe007ff, COD|RD_t|WR_C2|WR_CC, 0, I1 },
{"mtc2", "t,G,H", 0x48800000, 0xffe007f8, COD|RD_t|WR_C2|WR_CC, 0, I32 },
{"mthc2", "t,i", 0x48e00000, 0xffe00000, COD|RD_t|WR_C2|WR_CC, 0, I33 },
diff --git a/dkpsp/patches/gcc-4.0.2.patch b/dkpsp/patches/gcc-4.0.2.patch
new file mode 100644
index 0000000..2d1b7a7
--- /dev/null
+++ b/dkpsp/patches/gcc-4.0.2.patch
@@ -0,0 +1,1092 @@
+--- gcc-4.0.2.orig/config.sub 2005-04-25 03:36:56.000000000 -0700
++++ gcc-psp/config.sub 2005-07-22 17:40:49.000000000 -0700
+@@ -254,6 +254,7 @@
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipstx39 | mipstx39el \
++ | mipsallegrex | mipsallegrexel \
+ | mn10200 | mn10300 \
+ | msp430 \
+ | ns16k | ns32k \
+@@ -328,6 +329,7 @@
+ | mipsisa64sb1-* | mipsisa64sb1el-* \
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipstx39-* | mipstx39el-* \
++ | mipsallegrex-* | mipsallegrexel-* \
+ | mmix-* \
+ | msp430-* \
+ | none-* | np1-* | ns16k-* | ns32k-* \
+@@ -668,6 +670,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/'`
+ ;;
+--- gcc-4.0.2.orig/gcc/c-incpath.c 2005-01-23 07:05:27.000000000 -0800
++++ gcc-psp/gcc/c-incpath.c 2005-07-22 21:49:25.000000000 -0700
+@@ -331,13 +331,18 @@
+ cpp_dir *p;
+
+ #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+- /* Convert all backslashes to slashes. The native CRT stat()
+- function does not recognize a directory that ends in a backslash
+- (unless it is a drive root dir, such "c:\"). Forward slashes,
+- trailing or otherwise, cause no problems for stat(). */
+- char* c;
+- for (c = path; *c; c++)
+- if (*c == '\\') *c = '/';
++ /* Remove unnecessary trailing slashes. On some versions of MS
++ Windows, trailing _forward_ slashes cause no problems for stat().
++ On newer versions, stat() does not recognise a directory that ends
++ in a '\\' or '/', unless it is a drive root dir, such as "c:/",
++ where it is obligatory. */
++ int pathlen = strlen (path);
++ char* end = path + pathlen - 1;
++ /* Preserve the lead '/' or lead "c:/". */
++ char* start = path + (pathlen > 2 && path[1] == ':' ? 3 : 1);
++
++ for (; end > start && IS_DIR_SEPARATOR (*end); end--)
++ *end = 0;
+ #endif
+
+ p = xmalloc (sizeof (cpp_dir));
+--- gcc-4.0.2.orig/gcc/config.gcc 2005-10-22 14:38:16.000000000 -0700
++++ gcc-psp/gcc/config.gcc 2005-07-22 17:40:41.000000000 -0700
+@@ -406,12 +406,6 @@
+ tm_defines="${tm_defines} FBSD_MAJOR=5" ;;
+ *-*-freebsd6 | *-*-freebsd[6].*)
+ tm_defines="${tm_defines} FBSD_MAJOR=6" ;;
+- *-*-freebsd7 | *-*-freebsd[7].*)
+- tm_defines="${tm_defines} FBSD_MAJOR=7" ;;
+- *-*-freebsd8 | *-*-freebsd[8].*)
+- tm_defines="${tm_defines} FBSD_MAJOR=8" ;;
+- *-*-freebsd9 | *-*-freebsd[9].*)
+- tm_defines="${tm_defines} FBSD_MAJOR=9" ;;
+ *)
+ echo 'Please update *-*-freebsd* in gcc/config.gcc'
+ exit 1
+@@ -740,11 +734,6 @@
+ tmake_file=bfin/t-bfin-elf
+ use_collect2=no
+ ;;
+-bfin*-uclinux*)
+- tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/uclinux.h"
+- tmake_file=bfin/t-bfin-elf
+- use_collect2=no
+- ;;
+ bfin*-*)
+ tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h"
+ tmake_file=bfin/t-bfin
+@@ -1531,6 +1520,18 @@
+ tmake_file=mips/t-r3900
+ use_fixproto=yes
+ ;;
++mipsallegrex-*-elf* | mipsallegrexel-*-elf*)
++ tm_file="elfos.h ${tm_file} mips/elf.h"
++ tmake_file=mips/t-allegrex
++ target_cpu_default="MASK_SINGLE_FLOAT|MASK_DIVIDE_BREAKS"
++ tm_defines="MIPS_ISA_DEFAULT=2 MIPS_CPU_STRING_DEFAULT=\\\"allegrex\\\" MIPS_ABI_DEFAULT=ABI_EABI"
++ case ${target} in
++ mipsallegrex*-psp-elf*)
++ tm_file="${tm_file} mips/psp.h"
++ ;;
++ esac
++ use_fixproto=yes
++ ;;
+ mmix-knuth-mmixware)
+ need_64bit_hwint=yes
+ ;;
+--- gcc-4.0.2.orig/gcc/config/mips/allegrex.md 1969-12-31 16:00:00.000000000 -0800
++++ gcc-psp/gcc/config/mips/allegrex.md 2005-08-28 09:29:14.000000000 -0700
+@@ -0,0 +1,183 @@
++;; Sony ALLEGREX instructions.
++;; Copyright (C) 2005 Free Software Foundation, Inc.
++;;
++;; This file is part of GCC.
++;;
++;; GCC is free software; you can redistribute it and/or modify
++;; it under the terms of the GNU General Public License as published by
++;; the Free Software Foundation; either version 2, or (at your option)
++;; any later version.
++;;
++;; GCC is distributed in the hope that it will be useful,
++;; but WITHOUT ANY WARRANTY; without even the implied warranty of
++;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++;; GNU General Public License for more details.
++;;
++;; You should have received a copy of the GNU General Public License
++;; along with GCC; see the file COPYING. If not, write to
++;; the Free Software Foundation, 59 Temple Place - Suite 330,
++;; Boston, MA 02111-1307, USA.
++
++; Multiply Add and Subtract.
++
++(define_insn "allegrex_madd"
++ [(set (match_operand:SI 0 "register_operand" "+l")
++ (plus:SI (mult:SI (match_operand:SI 1 "register_operand" "d")
++ (match_operand:SI 2 "register_operand" "d"))
++ (match_dup 0)))
++ (clobber (match_scratch:SI 3 "=h"))]
++ "TARGET_ALLEGREX"
++ "madd\t%1,%2"
++ [(set_attr "type" "imadd")
++ (set_attr "mode" "SI")])
++
++(define_insn "allegrex_msub"
++ [(set (match_operand:SI 0 "register_operand" "+l")
++ (minus:SI (match_dup 0)
++ (mult:SI (match_operand:SI 1 "register_operand" "d")
++ (match_operand:SI 2 "register_operand" "d"))))
++ (clobber (match_scratch:SI 3 "=h"))]
++ "TARGET_ALLEGREX"
++ "msub\t%1,%2"
++ [(set_attr "type" "imadd")
++ (set_attr "mode" "SI")])
++
++
++; Min and max.
++
++(define_insn "sminsi3"
++ [(set (match_operand:SI 0 "register_operand" "=d")
++ (smin:SI (match_operand:SI 1 "register_operand" "d")
++ (match_operand:SI 2 "register_operand" "d")))]
++ "TARGET_ALLEGREX"
++ "min\t%0,%1,%2"
++ [(set_attr "type" "arith")
++ (set_attr "mode" "SI")])
++
++(define_insn "smaxsi3"
++ [(set (match_operand:SI 0 "register_operand" "=d")
++ (smax:SI (match_operand:SI 1 "register_operand" "d")
++ (match_operand:SI 2 "register_operand" "d")))]
++ "TARGET_ALLEGREX"
++ "max\t%0,%1,%2"
++ [(set_attr "type" "arith")
++ (set_attr "mode" "SI")])
++
++
++; Extended shift instructions.
++
++(define_insn "allegrex_bitrev"
++ [(set (match_operand:SI 0 "register_operand" "=d")
++ (unspec:SI [(match_operand:SI 1 "register_operand" "d")]
++ UNSPEC_BITREV))]
++ "TARGET_ALLEGREX"
++ "bitrev\t%0,%1"
++ [(set_attr "type" "arith")
++ (set_attr "mode" "SI")])
++
++(define_insn "allegrex_wsbh"
++ [(set (match_operand:SI 0 "register_operand" "=d")
++ (unspec:SI [(match_operand:SI 1 "register_operand" "d")]
++ UNSPEC_WSBH))]
++ "TARGET_ALLEGREX"
++ "wsbh\t%0,%1"
++ [(set_attr "type" "arith")
++ (set_attr "mode" "SI")])
++
++(define_insn "allegrex_wsbw"
++ [(set (match_operand:SI 0 "register_operand" "=d")
++ (unspec:SI [(match_operand:SI 1 "register_operand" "d")]
++ UNSPEC_WSBW))]
++ "TARGET_ALLEGREX"
++ "wsbw\t%0,%1"
++ [(set_attr "type" "arith")
++ (set_attr "mode" "SI")])
++
++
++; Count leading ones, count trailing zeros, and count trailing ones (clz is
++; already defined).
++
++(define_insn "allegrex_clo"
++ [(set (match_operand:SI 0 "register_operand" "=d")
++ (unspec:SI [(match_operand:SI 1 "register_operand" "d")]
++ UNSPEC_CLO))]
++ "TARGET_ALLEGREX"
++ "clo\t%0,%1"
++ [(set_attr "type" "clz")
++ (set_attr "mode" "SI")])
++
++(define_expand "ctzsi2"
++ [(set (match_operand:SI 0 "register_operand")
++ (ctz:SI (match_operand:SI 1 "register_operand")))]
++ "TARGET_ALLEGREX"
++{
++ rtx r1;
++
++ r1 = gen_reg_rtx (SImode);
++ emit_insn (gen_allegrex_bitrev (r1, operands[1]));
++ emit_insn (gen_clzsi2 (operands[0], r1));
++ DONE;
++})
++
++(define_expand "allegrex_cto"
++ [(set (match_operand:SI 0 "register_operand")
++ (unspec:SI [(match_operand:SI 1 "register_operand")]
++ UNSPEC_CTO))]
++ "TARGET_ALLEGREX"
++{
++ rtx r1;
++
++ r1 = gen_reg_rtx (SImode);
++ emit_insn (gen_allegrex_bitrev (r1, operands[1]));
++ emit_insn (gen_allegrex_clo (operands[0], r1));
++ DONE;
++})
++
++
++; Misc.
++
++(define_insn "allegrex_sync"
++ [(unspec_volatile [(const_int 0)] UNSPEC_SYNC)]
++ "TARGET_ALLEGREX"
++ "sync"
++ [(set_attr "type" "unknown")
++ (set_attr "mode" "none")])
++
++(define_insn "allegrex_cache"
++ [(unspec_volatile [(match_operand:SI 0 "const_int_operand" "")
++ (match_operand:SI 1 "register_operand" "d")]
++ UNSPEC_CACHE)]
++ "TARGET_ALLEGREX"
++ "cache\t%0,0(%1)"
++ [(set_attr "type" "unknown")
++ (set_attr "mode" "none")])
++
++
++; Floating-point builtins.
++
++(define_insn "allegrex_ceil_w_s"
++ [(set (match_operand:SI 0 "register_operand" "=f")
++ (unspec:SI [(match_operand:SF 1 "register_operand" "f")]
++ UNSPEC_CEIL_W_S))]
++ "TARGET_ALLEGREX"
++ "ceil.w.s\t%0,%1"
++ [(set_attr "type" "fcvt")
++ (set_attr "mode" "SF")])
++
++(define_insn "allegrex_floor_w_s"
++ [(set (match_operand:SI 0 "register_operand" "=f")
++ (unspec:SI [(match_operand:SF 1 "register_operand" "f")]
++ UNSPEC_FLOOR_W_S))]
++ "TARGET_ALLEGREX"
++ "floor.w.s\t%0,%1"
++ [(set_attr "type" "fcvt")
++ (set_attr "mode" "SF")])
++
++(define_insn "allegrex_round_w_s"
++ [(set (match_operand:SI 0 "register_operand" "=f")
++ (unspec:SI [(match_operand:SF 1 "register_operand" "f")]
++ UNSPEC_ROUND_W_S))]
++ "TARGET_ALLEGREX"
++ "round.w.s\t%0,%1"
++ [(set_attr "type" "fcvt")
++ (set_attr "mode" "SF")])
+--- gcc-4.0.2.orig/gcc/config/mips/mips-protos.h 2004-12-29 19:07:56.000000000 -0800
++++ gcc-psp/gcc/config/mips/mips-protos.h 2005-08-23 23:52:02.000000000 -0700
+@@ -205,5 +205,6 @@
+ extern void irix_asm_output_align (FILE *, unsigned);
+ extern const char *current_section_name (void);
+ extern unsigned int current_section_flags (void);
++extern bool mips_use_ins_ext_p (rtx, rtx, rtx);
+
+ #endif /* ! GCC_MIPS_PROTOS_H */
+--- gcc-4.0.2.orig/gcc/config/mips/mips.c 2005-05-08 04:56:53.000000000 -0700
++++ gcc-psp/gcc/config/mips/mips.c 2005-08-26 18:56:46.000000000 -0700
+@@ -150,6 +150,15 @@
+ MIPS_DF_FTYPE_DF,
+ MIPS_DF_FTYPE_DF_DF,
+
++ /* For the Sony ALLEGREX. */
++ MIPS_SI_FTYPE_QI,
++ MIPS_SI_FTYPE_HI,
++ MIPS_SI_FTYPE_SI,
++ MIPS_SI_FTYPE_SI_SI,
++ MIPS_VOID_FTYPE_VOID,
++ MIPS_VOID_FTYPE_SI_SI,
++ MIPS_SI_FTYPE_SF,
++
+ /* The last type. */
+ MIPS_MAX_FTYPE_MAX
+ };
+@@ -162,6 +171,10 @@
+ operands 1 and above. */
+ MIPS_BUILTIN_DIRECT,
+
++ /* The builtin corresponds directly to an .md pattern. There is no return
++ value and the arguments are mapped to operands 0 and above. */
++ MIPS_BUILTIN_DIRECT_NO_TARGET,
++
+ /* The builtin corresponds to a comparison instruction followed by
+ a mips_cond_move_tf_ps pattern. The first two arguments are the
+ values to compare and the second two arguments are the vector
+@@ -185,7 +198,12 @@
+ MIPS_BUILTIN_CMP_LOWER,
+
+ /* As above, but the instruction only sets a single $fcc register. */
+- MIPS_BUILTIN_CMP_SINGLE
++ MIPS_BUILTIN_CMP_SINGLE,
++
++ /* The builtin corresponds to the ALLEGREX cache instruction. Operand 0
++ is the function code (must be less than 32) and operand 1 is the base
++ address. */
++ MIPS_BUILTIN_CACHE
+ };
+
+ /* Invokes MACRO (COND) for each c.cond.fmt condition. */
+@@ -361,13 +379,14 @@
+ static rtx mips_prepare_builtin_target (enum insn_code, unsigned int, rtx);
+ static rtx mips_expand_builtin (tree, rtx, rtx, enum machine_mode, int);
+ static void mips_init_builtins (void);
+-static rtx mips_expand_builtin_direct (enum insn_code, rtx, tree);
++static rtx mips_expand_builtin_direct (enum insn_code, rtx, tree, bool);
+ static rtx mips_expand_builtin_movtf (enum mips_builtin_type,
+ enum insn_code, enum mips_fp_condition,
+ rtx, tree);
+ static rtx mips_expand_builtin_compare (enum mips_builtin_type,
+ enum insn_code, enum mips_fp_condition,
+ rtx, tree);
++static rtx mips_expand_builtin_cache (enum insn_code icode, rtx, tree);
+
+ /* Structure to be filled in by compute_frame_size with register
+ save masks, and offsets for the current function. */
+@@ -673,6 +692,7 @@
+
+ /* MIPS II */
+ { "r6000", PROCESSOR_R6000, 2 },
++ { "allegrex", PROCESSOR_ALLEGREX, 2 },
+
+ /* MIPS III */
+ { "r4000", PROCESSOR_R4000, 3 },
+@@ -3969,6 +3989,38 @@
+ return true;
+ }
+
++/* Return true if (zero_extract OP SIZE POSITION) can be used as the
++ source of an "ext" instruction or the destination of an "ins"
++ instruction. OP must be a register operand and the following
++ conditions must hold:
++
++ 0 <= POSITION < GET_MODE_BITSIZE (GET_MODE (op))
++ 0 < SIZE <= GET_MODE_BITSIZE (GET_MODE (op))
++ 0 < POSITION + SIZE <= GET_MODE_BITSIZE (GET_MODE (op))
++
++ Also reject lengths equal to a word as they are better handled
++ by the move patterns. */
++
++bool
++mips_use_ins_ext_p (rtx op, rtx size, rtx position)
++{
++ HOST_WIDE_INT len, pos;
++
++ if (!ISA_HAS_EXT_INS
++ || !register_operand (op, VOIDmode)
++ || GET_MODE_BITSIZE (GET_MODE (op)) > BITS_PER_WORD)
++ return false;
++
++ len = INTVAL (size);
++ pos = INTVAL (position);
++
++ if (len <= 0 || len >= GET_MODE_BITSIZE (GET_MODE (op))
++ || pos < 0 || pos + len > GET_MODE_BITSIZE (GET_MODE (op)))
++ return false;
++
++ return true;
++}
++
+ /* Set up globals to generate code for the ISA or processor
+ described by INFO. */
+
+@@ -9498,6 +9550,67 @@
+ DIRECT_BUILTIN (sqrt_ps, MIPS_V2SF_FTYPE_V2SF, MASK_PAIRED_SINGLE)
+ };
+
++/* Builtin functions for the Sony ALLEGREX processor.
++
++ These have the `__builtin_allgrex_' prefix instead of `__builtin_mips_'
++ to maintain compatibility with Sony's ALLEGREX GCC port.
++
++ Some of the builtins may seem redundant, but they are the same as the
++ builtins defined in the Sony compiler. I chose to map redundant and
++ trivial builtins to the original instruction instead of creating
++ duplicate patterns specifically for the ALLEGREX (as Sony does). */
++
++/* Define a MIPS_BUILTIN_DIRECT function for instruction CODE_FOR_allegrex_.
++ FUNCTION_TYPE and TARGET_FLAGS are builtin_description fields. */
++#define DIRECT_ALLEGREX_BUILTIN(INSN, FUNCTION_TYPE, TARGET_FLAGS) \
++ { CODE_FOR_allegrex_ ## INSN, 0, "__builtin_allegrex_" #INSN, \
++ MIPS_BUILTIN_DIRECT, FUNCTION_TYPE, TARGET_FLAGS }
++
++/* Same as the above, but mapped to an instruction that doesn't share the
++ NAME. NAME is the name of the builtin without the builtin prefix. */
++#define DIRECT_ALLEGREX_NAMED_BUILTIN(NAME, INSN, FUNCTION_TYPE, TARGET_FLAGS) \
++ { CODE_FOR_ ## INSN, 0, "__builtin_allegrex_" #NAME, \
++ MIPS_BUILTIN_DIRECT, FUNCTION_TYPE, TARGET_FLAGS }
++
++/* Define a MIPS_BUILTIN_DIRECT_NO_TARGET function for instruction
++ CODE_FOR_allegrex_. FUNCTION_TYPE and TARGET_FLAGS are
++ builtin_description fields. */
++#define DIRECT_ALLEGREX_NO_TARGET_BUILTIN(INSN, FUNCTION_TYPE, TARGET_FLAGS) \
++ { CODE_FOR_allegrex_ ## INSN, 0, "__builtin_allegrex_" #INSN, \
++ MIPS_BUILTIN_DIRECT_NO_TARGET, FUNCTION_TYPE, TARGET_FLAGS }
++
++/* Define a builtin with a specific function TYPE. */
++#define SPECIAL_ALLEGREX_BUILTIN(TYPE, INSN, FUNCTION_TYPE, TARGET_FLAGS) \
++ { CODE_FOR_allegrex_ ## INSN, 0, "__builtin_allegrex_" #INSN, \
++ MIPS_BUILTIN_ ## TYPE, FUNCTION_TYPE, TARGET_FLAGS }
++
++static const struct builtin_description allegrex_bdesc[] =
++{
++ DIRECT_ALLEGREX_BUILTIN(bitrev, MIPS_SI_FTYPE_SI, 0),
++ DIRECT_ALLEGREX_BUILTIN(wsbh, MIPS_SI_FTYPE_SI, 0),
++ DIRECT_ALLEGREX_BUILTIN(wsbw, MIPS_SI_FTYPE_SI, 0),
++ DIRECT_ALLEGREX_NAMED_BUILTIN(clz, clzsi2, MIPS_SI_FTYPE_SI, 0),
++ DIRECT_ALLEGREX_BUILTIN(clo, MIPS_SI_FTYPE_SI, 0),
++ DIRECT_ALLEGREX_NAMED_BUILTIN(ctz, ctzsi2, MIPS_SI_FTYPE_SI, 0),
++ DIRECT_ALLEGREX_BUILTIN(cto, MIPS_SI_FTYPE_SI, 0),
++ DIRECT_ALLEGREX_NAMED_BUILTIN(rotr, rotrsi3, MIPS_SI_FTYPE_SI_SI, 0),
++ DIRECT_ALLEGREX_NAMED_BUILTIN(rotl, rotlsi3, MIPS_SI_FTYPE_SI_SI, 0),
++
++ DIRECT_ALLEGREX_NAMED_BUILTIN(seb, extendqisi2, MIPS_SI_FTYPE_QI, 0),
++ DIRECT_ALLEGREX_NAMED_BUILTIN(seh, extendhisi2, MIPS_SI_FTYPE_HI, 0),
++ DIRECT_ALLEGREX_NAMED_BUILTIN(max, smaxsi3, MIPS_SI_FTYPE_SI_SI, 0),
++ DIRECT_ALLEGREX_NAMED_BUILTIN(min, sminsi3, MIPS_SI_FTYPE_SI_SI, 0),
++
++ DIRECT_ALLEGREX_NO_TARGET_BUILTIN(sync, MIPS_VOID_FTYPE_VOID, 0),
++ SPECIAL_ALLEGREX_BUILTIN(CACHE, cache, MIPS_VOID_FTYPE_SI_SI, 0),
++
++ DIRECT_ALLEGREX_NAMED_BUILTIN(sqrt_s, sqrtsf2, MIPS_SF_FTYPE_SF, 0),
++ DIRECT_ALLEGREX_BUILTIN(ceil_w_s, MIPS_SI_FTYPE_SF, 0),
++ DIRECT_ALLEGREX_BUILTIN(floor_w_s, MIPS_SI_FTYPE_SF, 0),
++ DIRECT_ALLEGREX_BUILTIN(round_w_s, MIPS_SI_FTYPE_SF, 0),
++ DIRECT_ALLEGREX_NAMED_BUILTIN(trunc_w_s, fix_truncsfsi2_insn, MIPS_SI_FTYPE_SF, 0)
++};
++
+ /* This helps provide a mapping from builtin function codes to bdesc
+ arrays. */
+
+@@ -9517,7 +9630,8 @@
+ static const struct bdesc_map bdesc_arrays[] =
+ {
+ { mips_bdesc, ARRAY_SIZE (mips_bdesc), PROCESSOR_DEFAULT },
+- { sb1_bdesc, ARRAY_SIZE (sb1_bdesc), PROCESSOR_SB1 }
++ { sb1_bdesc, ARRAY_SIZE (sb1_bdesc), PROCESSOR_SB1 },
++ { allegrex_bdesc, ARRAY_SIZE (allegrex_bdesc), PROCESSOR_ALLEGREX }
+ };
+
+ /* Take the head of argument list *ARGLIST and convert it into a form
+@@ -9534,7 +9648,15 @@
+ value = expand_expr (TREE_VALUE (*arglist), NULL_RTX, VOIDmode, 0);
+ mode = insn_data[icode].operand[op].mode;
+ if (!insn_data[icode].operand[op].predicate (value, mode))
++ {
+ value = copy_to_mode_reg (mode, value);
++ /* Check the predicate again. */
++ if (!insn_data[icode].operand[op].predicate (value, mode))
++ {
++ error ("invalid argument to builtin function");
++ return const0_rtx;
++ }
++ }
+
+ *arglist = TREE_CHAIN (*arglist);
+ return value;
+@@ -9591,7 +9713,10 @@
+ switch (type)
+ {
+ case MIPS_BUILTIN_DIRECT:
+- return mips_expand_builtin_direct (icode, target, arglist);
++ return mips_expand_builtin_direct (icode, target, arglist, true);
++
++ case MIPS_BUILTIN_DIRECT_NO_TARGET:
++ return mips_expand_builtin_direct (icode, target, arglist, false);
+
+ case MIPS_BUILTIN_MOVT:
+ case MIPS_BUILTIN_MOVF:
+@@ -9606,6 +9731,9 @@
+ return mips_expand_builtin_compare (type, icode, bdesc[fcode].cond,
+ target, arglist);
+
++ case MIPS_BUILTIN_CACHE:
++ return mips_expand_builtin_cache (icode, target, arglist);
++
+ default:
+ return 0;
+ }
+@@ -9622,10 +9750,12 @@
+ tree V2SF_type_node;
+ unsigned int offset;
+
+- /* We have only builtins for -mpaired-single and -mips3d. */
+- if (!TARGET_PAIRED_SINGLE_FLOAT)
++ /* We have only builtins for -mpaired-single, -mips3d, and the Sony ALLEGREX. */
++ if (!TARGET_PAIRED_SINGLE_FLOAT && !TARGET_ALLEGREX)
+ return;
+
++ if (TARGET_PAIRED_SINGLE_FLOAT)
++ {
+ V2SF_type_node = build_vector_type_for_mode (float_type_node, V2SFmode);
+
+ types[MIPS_V2SF_FTYPE_V2SF]
+@@ -9684,6 +9814,45 @@
+ types[MIPS_DF_FTYPE_DF_DF]
+ = build_function_type_list (double_type_node,
+ double_type_node, double_type_node, NULL_TREE);
++ }
++
++ if (TARGET_ALLEGREX)
++ {
++ types[MIPS_SI_FTYPE_QI]
++ = build_function_type_list (intSI_type_node,
++ intQI_type_node,
++ NULL_TREE);
++
++ types[MIPS_SI_FTYPE_HI]
++ = build_function_type_list (intSI_type_node,
++ intHI_type_node,
++ NULL_TREE);
++
++ types[MIPS_SI_FTYPE_SI]
++ = build_function_type_list (intSI_type_node,
++ intSI_type_node,
++ NULL_TREE);
++
++ types[MIPS_SI_FTYPE_SI_SI]
++ = build_function_type_list (intSI_type_node,
++ intSI_type_node, intSI_type_node,
++ NULL_TREE);
++
++ types[MIPS_VOID_FTYPE_VOID]
++ = build_function_type_list (void_type_node, void_type_node, NULL_TREE);
++
++ types[MIPS_VOID_FTYPE_SI_SI]
++ = build_function_type_list (void_type_node,
++ intSI_type_node, intSI_type_node, NULL_TREE);
++
++ types[MIPS_SF_FTYPE_SF]
++ = build_function_type_list (float_type_node,
++ float_type_node, NULL_TREE);
++
++ types[MIPS_SI_FTYPE_SF]
++ = build_function_type_list (intSI_type_node,
++ float_type_node, NULL_TREE);
++ }
+
+ /* Iterate through all of the bdesc arrays, initializing all of the
+ builtin functions. */
+@@ -9703,30 +9872,44 @@
+
+ /* Expand a MIPS_BUILTIN_DIRECT function. ICODE is the code of the
+ .md pattern and ARGLIST is the list of function arguments. TARGET,
+- if nonnull, suggests a good place to put the result. */
++ if nonnull, suggests a good place to put the result.
++ HAS_TARGET indicates the function must return something. */
+
+ static rtx
+-mips_expand_builtin_direct (enum insn_code icode, rtx target, tree arglist)
++mips_expand_builtin_direct (enum insn_code icode, rtx target, tree arglist,
++ bool has_target)
+ {
+ rtx ops[MAX_RECOG_OPERANDS];
+- int i;
++ int i = 0;
+
+- target = mips_prepare_builtin_target (icode, 0, target);
+- for (i = 1; i < insn_data[icode].n_operands; i++)
++ if (has_target)
++ {
++ /* We save target to ops[0]. */
++ ops[0] = mips_prepare_builtin_target (icode, 0, target);
++ i = 1;
++ }
++
++ /* We need to test if arglist is not zero. Some instructions have extra
++ clobber registers. */
++ for (; i < insn_data[icode].n_operands && arglist != 0; i++)
+ ops[i] = mips_prepare_builtin_arg (icode, i, &arglist);
+
+- switch (insn_data[icode].n_operands)
++ switch (i)
+ {
++ case 0:
++ emit_insn (GEN_FCN (icode) (0));
++ break;
++
+ case 2:
+- emit_insn (GEN_FCN (icode) (target, ops[1]));
++ emit_insn (GEN_FCN (icode) (ops[0], ops[1]));
+ break;
+
+ case 3:
+- emit_insn (GEN_FCN (icode) (target, ops[1], ops[2]));
++ emit_insn (GEN_FCN (icode) (ops[0], ops[1], ops[2]));
+ break;
+
+ case 4:
+- emit_insn (GEN_FCN (icode) (target, ops[1], ops[2], ops[3]));
++ emit_insn (GEN_FCN (icode) (ops[0], ops[1], ops[2], ops[3]));
+ break;
+
+ default:
+@@ -9857,4 +10040,26 @@
+ return target;
+ }
+
++/* Expand a __builtin_allegrex_cache() function. Make sure the passed
++ cache function code is less than 32. */
++
++static rtx
++mips_expand_builtin_cache (enum insn_code icode, rtx target, tree arglist)
++{
++ rtx op0, op1;
++
++ op0 = mips_prepare_builtin_arg (icode, 0, &arglist);
++ op1 = mips_prepare_builtin_arg (icode, 1, &arglist);
++
++ if (GET_CODE (op0) == CONST_INT)
++ if (INTVAL (op0) < 0 || INTVAL (op0) > 0x1f)
++ {
++ error ("invalid function code '%d'", INTVAL (op0));
++ return const0_rtx;
++ }
++
++ emit_insn (GEN_FCN (icode) (op0, op1));
++ return target;
++}
++
+ #include "gt-mips.h"
+--- gcc-4.0.2.orig/gcc/config/mips/mips.h 2005-04-15 00:00:18.000000000 -0700
++++ gcc-psp/gcc/config/mips/mips.h 2005-08-25 20:24:02.000000000 -0700
+@@ -59,7 +59,8 @@
+ PROCESSOR_R8000,
+ PROCESSOR_R9000,
+ PROCESSOR_SB1,
+- PROCESSOR_SR71000
++ PROCESSOR_SR71000,
++ PROCESSOR_ALLEGREX
+ };
+
+ /* Which ABI to use. ABI_32 (original 32, or o32), ABI_N32 (n32),
+@@ -308,6 +309,7 @@
+ #define TARGET_MIPS9000 (mips_arch == PROCESSOR_R9000)
+ #define TARGET_SB1 (mips_arch == PROCESSOR_SB1)
+ #define TARGET_SR71K (mips_arch == PROCESSOR_SR71000)
++#define TARGET_ALLEGREX (mips_arch == PROCESSOR_ALLEGREX)
+
+ /* Scheduling target defines. */
+ #define TUNE_MIPS3000 (mips_tune == PROCESSOR_R3000)
+@@ -322,6 +324,7 @@
+ #define TUNE_MIPS7000 (mips_tune == PROCESSOR_R7000)
+ #define TUNE_MIPS9000 (mips_tune == PROCESSOR_R9000)
+ #define TUNE_SB1 (mips_tune == PROCESSOR_SB1)
++#define TUNE_ALLEGREX (mips_tune == PROCESSOR_ALLEGREX)
+
+ /* True if the pre-reload scheduler should try to create chains of
+ multiply-add or multiply-subtract instructions. For example,
+@@ -873,6 +876,9 @@
+ && !TARGET_MIPS5500 \
+ && !TARGET_MIPS16)
+
++/* ISA has just the integer condition move instructions (movn,movz) */
++#define ISA_HAS_INT_CONDMOVE (TARGET_ALLEGREX)
++
+ /* ISA has the mips4 FP condition code instructions: FP-compare to CC,
+ branch on CC, and move (both FP and non-FP) on CC. */
+ #define ISA_HAS_8CC (ISA_MIPS4 \
+@@ -889,7 +895,8 @@
+
+ /* ISA has conditional trap instructions. */
+ #define ISA_HAS_COND_TRAP (!ISA_MIPS1 \
+- && !TARGET_MIPS16)
++ && !TARGET_MIPS16 \
++ && !TARGET_ALLEGREX)
+
+ /* ISA has integer multiply-accumulate instructions, madd and msub. */
+ #define ISA_HAS_MADD_MSUB ((ISA_MIPS32 \
+@@ -907,6 +914,7 @@
+ #define ISA_HAS_CLZ_CLO ((ISA_MIPS32 \
+ || ISA_MIPS32R2 \
+ || ISA_MIPS64 \
++ || TARGET_ALLEGREX \
+ ) && !TARGET_MIPS16)
+
+ /* ISA has double-word count leading zeroes/ones instruction (not
+@@ -954,6 +962,7 @@
+ || TARGET_MIPS5400 \
+ || TARGET_MIPS5500 \
+ || TARGET_SR71K \
++ || TARGET_ALLEGREX \
+ ))
+
+ /* ISA has 64-bit rotate right instruction. */
+@@ -987,6 +996,13 @@
+ /* ISA includes the MIPS32r2 seb and seh instructions. */
+ #define ISA_HAS_SEB_SEH (!TARGET_MIPS16 \
+ && (ISA_MIPS32R2 \
++ || TARGET_ALLEGREX \
++ ))
++
++/* ISA includes the MIPS32/64 rev 2 ext and ins instructions. */
++#define ISA_HAS_EXT_INS (!TARGET_MIPS16 \
++ && (ISA_MIPS32R2 \
++ || TARGET_ALLEGREX \
+ ))
+
+ /* True if the result of a load is not available to the next instruction.
+@@ -1017,7 +1033,8 @@
+ #define ISA_HAS_HILO_INTERLOCKS (ISA_MIPS32 \
+ || ISA_MIPS32R2 \
+ || ISA_MIPS64 \
+- || TARGET_MIPS5500)
++ || TARGET_MIPS5500 \
++ || TARGET_ALLEGREX)
+
+ /* Add -G xx support. */
+
+@@ -1427,6 +1444,11 @@
+ /* Define if loading short immediate values into registers sign extends. */
+ #define SHORT_IMMEDIATES_SIGN_EXTEND
+
++/* The [d]clz instructions have the natural values at 0. */
++
++#define CLZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) \
++ ((VALUE) = GET_MODE_BITSIZE (MODE), true)
++
+ /* Standard register usage. */
+
+ /* Number of hardware registers. We have:
+--- gcc-4.0.2.orig/gcc/config/mips/mips.md 2005-05-08 04:56:58.000000000 -0700
++++ gcc-psp/gcc/config/mips/mips.md 2005-08-28 09:29:10.000000000 -0700
+@@ -70,6 +70,21 @@
+ (UNSPEC_RSQRT2 209)
+ (UNSPEC_RECIP1 210)
+ (UNSPEC_RECIP2 211)
++
++ ;; Sony ALLEGREX instructions
++ (UNSPEC_BITREV 400)
++ (UNSPEC_WSBH 401)
++ (UNSPEC_WSBW 402)
++
++ (UNSPEC_CLO 403)
++ (UNSPEC_CTO 404)
++
++ (UNSPEC_CACHE 405)
++ (UNSPEC_SYNC 406)
++
++ (UNSPEC_CEIL_W_S 407)
++ (UNSPEC_FLOOR_W_S 408)
++ (UNSPEC_ROUND_W_S 409)
+ ]
+ )
+
+@@ -1514,9 +1529,9 @@
+ (mult:DI
+ (any_extend:DI (match_operand:SI 1 "register_operand" "d"))
+ (any_extend:DI (match_operand:SI 2 "register_operand" "d")))))]
+- "!TARGET_64BIT && ISA_HAS_MSAC"
++ "!TARGET_64BIT && (ISA_HAS_MSAC || TARGET_ALLEGREX)"
+ {
+- if (TARGET_MIPS5500)
++ if (TARGET_MIPS5500 || TARGET_ALLEGREX)
+ return "msub\t%1,%2";
+ else
+ return "msac\t$0,%1,%2";
+@@ -1631,12 +1646,12 @@
+ (mult:DI (any_extend:DI (match_operand:SI 1 "register_operand" "d"))
+ (any_extend:DI (match_operand:SI 2 "register_operand" "d")))
+ (match_operand:DI 3 "register_operand" "0")))]
+- "(TARGET_MAD || ISA_HAS_MACC)
++ "(TARGET_MAD || ISA_HAS_MACC || TARGET_ALLEGREX)
+ && !TARGET_64BIT"
+ {
+ if (TARGET_MAD)
+ return "mad\t%1,%2";
+- else if (TARGET_MIPS5500)
++ else if (TARGET_MIPS5500 || TARGET_ALLEGREX)
+ return "madd\t%1,%2";
+ else
+ /* See comment in *macc. */
+@@ -1911,36 +1926,24 @@
+ ;; ....................
+ ;;
+
+-(define_insn "ffs2"
+- [(set (match_operand:GPR 0 "register_operand" "=&d")
+- (ffs:GPR (match_operand:GPR 1 "register_operand" "d")))
+- (clobber (match_scratch:GPR 2 "=&d"))
+- (clobber (match_scratch:GPR 3 "=&d"))]
+- "!TARGET_MIPS16"
++(define_expand "ffs2"
++ [(set (match_operand:GPR 0 "register_operand" "")
++ (ffs:GPR (match_operand:GPR 1 "register_operand" "")))]
++ "ISA_HAS_CLZ_CLO"
+ {
+- if (optimize && find_reg_note (insn, REG_DEAD, operands[1]))
+- return "%(\
+-move\t%0,%.\;\
+-beq\t%1,%.,2f\n\
+-%~1:\tand\t%2,%1,0x0001\;\
+-addu\t%0,%0,1\;\
+-beq\t%2,%.,1b\;\
+-srl\t%1,%1,1\n\
+-%~2:%)";
+-
+- return "%(\
+-move\t%0,%.\;\
+-move\t%3,%1\;\
+-beq\t%3,%.,2f\n\
+-%~1:\tand\t%2,%3,0x0001\;\
+-addu\t%0,%0,1\;\
+-beq\t%2,%.,1b\;\
+-srl\t%3,%3,1\n\
+-%~2:%)";
+-}
+- [(set_attr "type" "multi")
+- (set_attr "mode" "")
+- (set_attr "length" "28")])
++ rtx r1, r2, r3, r4;
++
++ r1 = gen_reg_rtx (mode);
++ r2 = gen_reg_rtx (mode);
++ r3 = gen_reg_rtx (mode);
++ r4 = gen_reg_rtx (mode);
++ emit_insn (gen_neg2 (r1, operands[1]));
++ emit_insn (gen_and3 (r2, operands[1], r1));
++ emit_insn (gen_clz2 (r3, r2));
++ emit_move_insn (r4, GEN_INT (GET_MODE_BITSIZE (mode)));
++ emit_insn (gen_sub3 (operands[0], r4, r3));
++ DONE;
++})
+
+ ;;
+ ;; ...................
+@@ -2790,7 +2793,7 @@
+
+ (define_expand "extzv"
+ [(set (match_operand 0 "register_operand")
+- (zero_extract (match_operand:QI 1 "memory_operand")
++ (zero_extract (match_operand 1 "nonimmediate_operand")
+ (match_operand 2 "immediate_operand")
+ (match_operand 3 "immediate_operand")))]
+ "!TARGET_MIPS16"
+@@ -2799,12 +2802,33 @@
+ INTVAL (operands[2]),
+ INTVAL (operands[3])))
+ DONE;
++ else if (mips_use_ins_ext_p (operands[1], operands[2], operands[3]))
++ {
++ if (GET_MODE (operands[0]) == DImode)
++ emit_insn (gen_extzvdi (operands[0], operands[1], operands[2],
++ operands[3]));
++ else
++ emit_insn (gen_extzvsi (operands[0], operands[1], operands[2],
++ operands[3]));
++ DONE;
++ }
+ else
+ FAIL;
+ })
+
++(define_insn "extzv"
++ [(set (match_operand:GPR 0 "register_operand" "=d")
++ (zero_extract:GPR (match_operand:GPR 1 "register_operand" "d")
++ (match_operand:SI 2 "immediate_operand" "I")
++ (match_operand:SI 3 "immediate_operand" "I")))]
++ "mips_use_ins_ext_p (operands[1], operands[2], operands[3])"
++ "ext\t%0,%1,%3,%2"
++ [(set_attr "type" "arith")
++ (set_attr "mode" "")])
++
++
+ (define_expand "insv"
+- [(set (zero_extract (match_operand:QI 0 "memory_operand")
++ [(set (zero_extract (match_operand 0 "nonimmediate_operand")
+ (match_operand 1 "immediate_operand")
+ (match_operand 2 "immediate_operand"))
+ (match_operand 3 "reg_or_0_operand"))]
+@@ -2814,10 +2838,30 @@
+ INTVAL (operands[1]),
+ INTVAL (operands[2])))
+ DONE;
++ else if (mips_use_ins_ext_p (operands[0], operands[1], operands[2]))
++ {
++ if (GET_MODE (operands[0]) == DImode)
++ emit_insn (gen_insvdi (operands[0], operands[1], operands[2],
++ operands[3]));
++ else
++ emit_insn (gen_insvsi (operands[0], operands[1], operands[2],
++ operands[3]));
++ DONE;
++ }
+ else
+ FAIL;
+ })
+
++(define_insn "insv"
++ [(set (zero_extract:GPR (match_operand:GPR 0 "register_operand" "+d")
++ (match_operand:SI 1 "immediate_operand" "I")
++ (match_operand:SI 2 "immediate_operand" "I"))
++ (match_operand:GPR 3 "reg_or_0_operand" "dJ"))]
++ "mips_use_ins_ext_p (operands[0], operands[1], operands[2])"
++ "ins\t%0,%z3,%2,%1"
++ [(set_attr "type" "arith")
++ (set_attr "mode" "")])
++
+ ;; Unaligned word moves generated by the bit field patterns.
+ ;;
+ ;; As far as the rtl is concerned, both the left-part and right-part
+@@ -4087,6 +4131,25 @@
+ [(set_attr "type" "shift")
+ (set_attr "mode" "")])
+
++(define_expand "rotl3"
++ [(set (match_operand:GPR 0 "register_operand")
++ (rotate:GPR (match_operand:GPR 1 "register_operand")
++ (match_operand:SI 2 "arith_operand")))]
++ "ISA_HAS_ROTR_"
++{
++ rtx temp;
++
++ if (GET_CODE (operands[2]) == CONST_INT)
++ temp = GEN_INT (GET_MODE_BITSIZE (mode) - INTVAL (operands[2]));
++ else
++ {
++ temp = gen_reg_rtx (mode);
++ emit_insn (gen_neg2 (temp, operands[2]));
++ }
++ emit_insn (gen_rotr3 (operands[0], operands[1], temp));
++ DONE;
++})
++
+ ;;
+ ;; ....................
+ ;;
+@@ -5200,7 +5263,7 @@
+ (const_int 0)])
+ (match_operand:GPR 2 "reg_or_0_operand" "dJ,0")
+ (match_operand:GPR 3 "reg_or_0_operand" "0,dJ")))]
+- "ISA_HAS_CONDMOVE"
++ "ISA_HAS_CONDMOVE || ISA_HAS_INT_CONDMOVE"
+ "@
+ mov%T4\t%0,%z2,%1
+ mov%t4\t%0,%z3,%1"
+@@ -5230,8 +5293,12 @@
+ (if_then_else:GPR (match_dup 5)
+ (match_operand:GPR 2 "reg_or_0_operand")
+ (match_operand:GPR 3 "reg_or_0_operand")))]
+- "ISA_HAS_CONDMOVE"
++ "ISA_HAS_CONDMOVE || ISA_HAS_INT_CONDMOVE"
+ {
++ if (ISA_HAS_INT_CONDMOVE
++ && GET_MODE_CLASS (GET_MODE (cmp_operands[0])) == MODE_FLOAT)
++ FAIL;
++
+ gen_conditional_move (operands);
+ DONE;
+ })
+@@ -5299,3 +5366,6 @@
+ ; The MIPS Paired-Single Floating Point and MIPS-3D Instructions.
+
+ (include "mips-ps-3d.md")
++
++; Sony ALLEGREX instructions.
++(include "allegrex.md")
+--- gcc-4.0.2.orig/gcc/config/mips/psp.h 1969-12-31 16:00:00.000000000 -0800
++++ gcc-psp/gcc/config/mips/psp.h 2005-07-12 03:05:10.000000000 -0700
+@@ -0,0 +1,31 @@
++/* Support for Sony's Playstation Portable (PSP).
++ Copyright (C) 2005 Free Software Foundation, Inc.
++ Contributed by Marcus R. Brown
++
++This file is part of GCC.
++
++GCC is free software; you can redistribute it and/or modify
++it under the terms of the GNU General Public License as published by
++the Free Software Foundation; either version 2, or (at your option)
++any later version.
++
++GCC is distributed in the hope that it will be useful,
++but WITHOUT ANY WARRANTY; without even the implied warranty of
++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++GNU General Public License for more details.
++
++You should have received a copy of the GNU General Public License
++along with GCC; see the file COPYING. If not, write to
++the Free Software Foundation, 59 Temple Place - Suite 330,
++Boston, MA 02111-1307, USA. */
++
++/* Override the startfile spec to include crt0.o. */
++#undef STARTFILE_SPEC
++#define STARTFILE_SPEC "crt0%O%s crti%O%s crtbegin%O%s"
++
++#undef SUBTARGET_CPP_SPEC
++#define SUBTARGET_CPP_SPEC "-DPSP=1 -D__psp__=1 -D_PSP=1"
++
++/* Get rid of the .pdr section. */
++#undef SUBTARGET_ASM_SPEC
++#define SUBTARGET_ASM_SPEC "-mno-pdr"
+--- gcc-4.0.2.orig/gcc/config/mips/t-allegrex 1969-12-31 16:00:00.000000000 -0800
++++ gcc-psp/gcc/config/mips/t-allegrex 2005-06-19 18:09:38.000000000 -0700
+@@ -0,0 +1,29 @@
++# Suppress building libgcc1.a, since the MIPS compiler port is complete
++# and does not need anything from libgcc1.a.
++LIBGCC1 =
++CROSS_LIBGCC1 =
++
++EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crti.o crtn.o
++# Don't let CTOR_LIST end up in sdata section.
++CRTSTUFF_T_CFLAGS = -G 0
++
++# Assemble startup files.
++$(T)crti.o: $(srcdir)/config/mips/crti.asm $(GCC_PASSES)
++ $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
++ -c -o $(T)crti.o -x assembler-with-cpp $(srcdir)/config/mips/crti.asm
++
++$(T)crtn.o: $(srcdir)/config/mips/crtn.asm $(GCC_PASSES)
++ $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
++ -c -o $(T)crtn.o -x assembler-with-cpp $(srcdir)/config/mips/crtn.asm
++
++# We must build libgcc2.a with -G 0, in case the user wants to link
++# without the $gp register.
++TARGET_LIBGCC2_CFLAGS = -G 0
++
++# Build the libraries for both hard and soft floating point
++
++MULTILIB_OPTIONS =
++MULTILIB_DIRNAMES =
++
++LIBGCC = stmp-multilib
++INSTALL_LIBGCC = install-multilib
+--- gcc-4.0.2.orig/gcc/hwint.h 2004-11-23 20:31:57.000000000 -0800
++++ gcc-psp/gcc/hwint.h 2005-07-22 21:50:31.000000000 -0700
+@@ -80,7 +80,7 @@
+ # define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%lx%08lx"
+ # endif
+ #else
+-# define HOST_WIDE_INT_PRINT "ll"
++# define HOST_WIDE_INT_PRINT HOST_LONG_LONG_FORMAT
+ # define HOST_WIDE_INT_PRINT_C "LL"
+ /* We can assume that 'long long' is at least 64 bits. */
+ # define HOST_WIDE_INT_PRINT_DOUBLE_HEX \
+--- gcc-4.0.2.orig/gcc/version.c 2005-10-22 14:38:17.000000000 -0700
++++ gcc-psp/gcc/version.c 2005-10-22 14:44:30.000000000 -0700
+@@ -5,7 +5,7 @@
+ please modify this string to indicate that, e.g. by putting your
+ organization's name in parentheses at the end of the string. */
+
+-const char version_string[] = "4.0.2";
++const char version_string[] = "4.0.2 (PSPDEV 20051022)";
+
+ /* This is the location of the online document giving instructions for
+ reporting bugs. If you distribute a modified version of GCC,
+@@ -14,4 +14,4 @@
+ forward us bugs reported to you, if you determine that they are
+ not bugs in your modifications.) */
+
+-const char bug_report_url[] = "";
++const char bug_report_url[] = "";
diff --git a/dkpsp/patches/newlib-1.13.0.patch b/dkpsp/patches/newlib-1.13.0.patch
index fbc8d83..6ab9dd2 100644
--- a/dkpsp/patches/newlib-1.13.0.patch
+++ b/dkpsp/patches/newlib-1.13.0.patch
@@ -1,4447 +1,5642 @@
---- newlib-1.13.0.orig/config.sub 2004-11-15 20:18:39.000000000 -0500
-+++ newlib-psp/config.sub 2005-07-06 22:53:22.000000000 -0400
-@@ -253,6 +253,7 @@
- | mipsisa64sb1 | mipsisa64sb1el \
- | mipsisa64sr71k | mipsisa64sr71kel \
- | mipstx39 | mipstx39el \
-+ | mipsallegrex | mipsallegrexel \
- | mn10200 | mn10300 \
- | msp430 \
- | ns16k | ns32k \
-@@ -326,6 +327,7 @@
- | mipsisa64sb1-* | mipsisa64sb1el-* \
- | mipsisa64sr71k-* | mipsisa64sr71kel-* \
- | mipstx39-* | mipstx39el-* \
-+ | mipsallegrex-* | mipsallegrexel-* \
- | mmix-* \
- | msp430-* \
- | none-* | np1-* | ns16k-* | ns32k-* \
-@@ -665,6 +667,10 @@
- basic_machine=m68k-atari
- os=-mint
- ;;
-+ psp)
-+ basic_machine=mipsallegrexel-psp
-+ os=-elf
-+ ;;
- mips3*-*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
- ;;
---- newlib-1.13.0.orig/configure 2004-12-16 14:51:28.000000000 -0500
-+++ newlib-psp/configure 2005-07-06 22:53:22.000000000 -0400
-@@ -1507,6 +1507,9 @@
- mips*-*-linux*)
- noconfigdirs="$noconfigdirs target-newlib target-libgloss"
- ;;
-+ mipsallegrex*-*-*)
-+ noconfigdirs="$noconfigdirs target-libgloss"
-+ ;;
- mips*-*-*)
- noconfigdirs="$noconfigdirs gprof ${libgcj}"
- ;;
---- newlib-1.13.0.orig/configure.in 2004-12-16 14:51:28.000000000 -0500
-+++ newlib-psp/configure.in 2005-07-06 22:53:22.000000000 -0400
-@@ -716,6 +716,9 @@
- mips*-*-linux*)
- noconfigdirs="$noconfigdirs target-newlib target-libgloss"
- ;;
-+ mipsallegrex*-*-*)
-+ noconfigdirs="$noconfigdirs target-libgloss"
-+ ;;
- mips*-*-*)
- noconfigdirs="$noconfigdirs gprof ${libgcj}"
- ;;
---- newlib-1.13.0.orig/newlib/configure.host 2004-10-05 15:44:24.000000000 -0400
-+++ newlib-psp/newlib/configure.host 2005-07-28 15:42:00.000000000 -0400
-@@ -570,7 +570,14 @@
- ;;
- mips*-*-elf*)
- default_newlib_io_long_long="yes"
-- newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES"
-+ case "${host}" in
-+ mipsallegrex*-psp-*)
-+ sys_dir=psp
-+ syscall_dir=syscalls
-+ newlib_cflags="${newlib_cflags} -G0 -DPREFER_SIZE_OVER_SPEED -DCOMPACT_CTYPE -DCLOCK_PROVIDED -I${prefix}/psp/sdk/include" ;;
-+ *)
-+ newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" ;;
-+ esac
- ;;
- mmix-*)
- syscall_dir=syscalls
---- newlib-1.13.0.orig/newlib/libc/include/sys/config.h 2004-06-22 17:54:51.000000000 -0400
-+++ newlib-psp/newlib/libc/include/sys/config.h 2005-08-16 16:40:10.000000000 -0400
-@@ -94,6 +94,12 @@
- #endif
- #endif
-
-+/* We compile newlib with -G0 for PSP, but if we're compiling an app with $gp enabled,
-+ then _impure_ptr is expected to live in .sdata. */
-+#if defined(__psp__)
-+#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
-+#endif
-+
- #ifdef __xstormy16__
- #define __SMALL_BITFIELDS
- #undef INT_MAX
---- newlib-1.13.0.orig/newlib/libc/sys/psp/Makefile.am 1969-12-31 19:00:00.000000000 -0500
-+++ newlib-psp/newlib/libc/sys/psp/Makefile.am 2005-10-02 20:55:44.000000000 -0400
-@@ -0,0 +1,22 @@
-+## Process this file with automake to generate Makefile.in
-+
-+AUTOMAKE_OPTIONS = cygnus
-+
-+INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
-+
-+noinst_LIBRARIES = lib.a
-+
-+LIBCGLUE_MULT_OBJS = _close.o _exit.o _fork.o _fstat.o _getpid.o _gettimeofday.o _kill.o _lseek.o \
-+ _open.o _read.o _sbrk.o _wait.o _write.o clock.o isatty.o time.o _link.o _unlink.o sleep.o \
-+ opendir.o readdir.o closedir.o getcwd.o chdir.o mkdir.o rmdir.o realpath.o _stat.o truncate.o access.o
-+
-+lib_a_SOURCES = libcglue.c pspcwd.c
-+lib_a_LIBADD = $(LIBCGLUE_MULT_OBJS)
-+
-+all: crt0.o
-+
-+$(LIBCGLUE_MULT_OBJS): libcglue.c
-+ $(COMPILE) -DF_$* $< -c -o $@
-+
-+ACLOCAL_AMFLAGS = -I ../../..
-+CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
---- newlib-1.13.0.orig/newlib/libc/sys/psp/Makefile.in 1969-12-31 19:00:00.000000000 -0500
-+++ newlib-psp/newlib/libc/sys/psp/Makefile.in 2005-10-02 20:55:42.000000000 -0400
-@@ -0,0 +1,344 @@
-+# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
-+
-+# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
-+# This Makefile.in is free software; the Free Software Foundation
-+# gives unlimited permission to copy and/or distribute it,
-+# with or without modifications, as long as this notice is preserved.
-+
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-+# PARTICULAR PURPOSE.
-+
-+
-+SHELL = @SHELL@
-+
-+srcdir = @srcdir@
-+top_srcdir = @top_srcdir@
-+VPATH = @srcdir@
-+prefix = @prefix@
-+exec_prefix = @exec_prefix@
-+
-+bindir = @bindir@
-+sbindir = @sbindir@
-+libexecdir = @libexecdir@
-+datadir = @datadir@
-+sysconfdir = @sysconfdir@
-+sharedstatedir = @sharedstatedir@
-+localstatedir = @localstatedir@
-+libdir = @libdir@
-+infodir = @infodir@
-+mandir = @mandir@
-+includedir = @includedir@
-+oldincludedir = /usr/include
-+
-+DESTDIR =
-+
-+pkgdatadir = $(datadir)/@PACKAGE@
-+pkglibdir = $(libdir)/@PACKAGE@
-+pkgincludedir = $(includedir)/@PACKAGE@
-+
-+top_builddir = .
-+
-+ACLOCAL = @ACLOCAL@
-+AUTOCONF = @AUTOCONF@
-+AUTOMAKE = @AUTOMAKE@
-+AUTOHEADER = @AUTOHEADER@
-+
-+INSTALL = @INSTALL@
-+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-+INSTALL_DATA = @INSTALL_DATA@
-+INSTALL_SCRIPT = @INSTALL_SCRIPT@
-+transform = @program_transform_name@
-+
-+NORMAL_INSTALL = :
-+PRE_INSTALL = :
-+POST_INSTALL = :
-+NORMAL_UNINSTALL = :
-+PRE_UNINSTALL = :
-+POST_UNINSTALL = :
-+build_alias = @build_alias@
-+build_triplet = @build@
-+host_alias = @host_alias@
-+host_triplet = @host@
-+target_alias = @target_alias@
-+target_triplet = @target@
-+AR = @AR@
-+AS = @AS@
-+CC = @CC@
-+CPP = @CPP@
-+EXEEXT = @EXEEXT@
-+HAVE_LIB = @HAVE_LIB@
-+LDFLAGS = @LDFLAGS@
-+LIB = @LIB@
-+LTLIB = @LTLIB@
-+MAINT = @MAINT@
-+MAKEINFO = @MAKEINFO@
-+NEWLIB_CFLAGS = @NEWLIB_CFLAGS@
-+OBJEXT = @OBJEXT@
-+PACKAGE = @PACKAGE@
-+RANLIB = @RANLIB@
-+VERSION = @VERSION@
-+aext = @aext@
-+libm_machine_dir = @libm_machine_dir@
-+machine_dir = @machine_dir@
-+newlib_basedir = @newlib_basedir@
-+oext = @oext@
-+sys_dir = @sys_dir@
-+
-+AUTOMAKE_OPTIONS = cygnus
-+
-+INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
-+
-+noinst_LIBRARIES = lib.a
-+
-+LIBCGLUE_MULT_OBJS = _close.o _exit.o _fork.o _fstat.o _getpid.o _gettimeofday.o _kill.o _lseek.o _open.o _read.o _sbrk.o _wait.o _write.o clock.o isatty.o time.o _link.o _unlink.o sleep.o opendir.o readdir.o closedir.o getcwd.o chdir.o mkdir.o rmdir.o realpath.o _stat.o truncate.o access.o
-+
-+
-+lib_a_SOURCES = libcglue.c pspcwd.c
-+lib_a_LIBADD = $(LIBCGLUE_MULT_OBJS)
-+
-+ACLOCAL_AMFLAGS = -I ../../..
-+CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
-+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-+mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs
-+CONFIG_CLEAN_FILES =
-+LIBRARIES = $(noinst_LIBRARIES)
-+
-+
-+DEFS = @DEFS@ -I. -I$(srcdir)
-+CPPFLAGS = @CPPFLAGS@
-+LIBS = @LIBS@
-+lib_a_DEPENDENCIES = _close.o _exit.o _fork.o _fstat.o _getpid.o \
-+_gettimeofday.o _kill.o _lseek.o _open.o _read.o _sbrk.o _wait.o \
-+_write.o clock.o isatty.o time.o _link.o _unlink.o sleep.o opendir.o \
-+readdir.o closedir.o getcwd.o chdir.o mkdir.o rmdir.o realpath.o \
-+_stat.o truncate.o access.o
-+lib_a_OBJECTS = libcglue.o pspcwd.o
-+CFLAGS = @CFLAGS@
-+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-+CCLD = $(CC)
-+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-+DIST_COMMON = README Makefile.am Makefile.in aclocal.m4 configure \
-+configure.in
-+
-+
-+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-+
-+TAR = tar
-+GZIP_ENV = --best
-+SOURCES = $(lib_a_SOURCES)
-+OBJECTS = $(lib_a_OBJECTS)
-+
-+all: all-redirect
-+.SUFFIXES:
-+.SUFFIXES: .S .c .o .s
-+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
-+ cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile
-+
-+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-+ cd $(top_builddir) \
-+ && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-+
-+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in \
-+ ../../../acinclude.m4 ../../../aclocal.m4 \
-+ ../../../libtool.m4
-+ cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-+
-+config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-+ $(SHELL) ./config.status --recheck
-+$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
-+ cd $(srcdir) && $(AUTOCONF)
-+
-+mostlyclean-noinstLIBRARIES:
-+
-+clean-noinstLIBRARIES:
-+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-+
-+distclean-noinstLIBRARIES:
-+
-+maintainer-clean-noinstLIBRARIES:
-+
-+.c.o:
-+ $(COMPILE) -c $<
-+
-+.s.o:
-+ $(COMPILE) -c $<
-+
-+.S.o:
-+ $(COMPILE) -c $<
-+
-+mostlyclean-compile:
-+ -rm -f *.o core *.core
-+
-+clean-compile:
-+
-+distclean-compile:
-+ -rm -f *.tab.c
-+
-+maintainer-clean-compile:
-+
-+lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES)
-+ -rm -f lib.a
-+ $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD)
-+ $(RANLIB) lib.a
-+
-+tags: TAGS
-+
-+ID: $(HEADERS) $(SOURCES) $(LISP)
-+ list='$(SOURCES) $(HEADERS)'; \
-+ unique=`for i in $$list; do echo $$i; done | \
-+ awk ' { files[$$0] = 1; } \
-+ END { for (i in files) print i; }'`; \
-+ here=`pwd` && cd $(srcdir) \
-+ && mkid -f$$here/ID $$unique $(LISP)
-+
-+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
-+ tags=; \
-+ here=`pwd`; \
-+ list='$(SOURCES) $(HEADERS)'; \
-+ unique=`for i in $$list; do echo $$i; done | \
-+ awk ' { files[$$0] = 1; } \
-+ END { for (i in files) print i; }'`; \
-+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
-+ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP))
-+
-+mostlyclean-tags:
-+
-+clean-tags:
-+
-+distclean-tags:
-+ -rm -f TAGS ID
-+
-+maintainer-clean-tags:
-+
-+distdir = $(PACKAGE)-$(VERSION)
-+top_distdir = $(distdir)
-+
-+# This target untars the dist file and tries a VPATH configuration. Then
-+# it guarantees that the distribution is self-contained by making another
-+# tarfile.
-+distcheck: dist
-+ -rm -rf $(distdir)
-+ GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
-+ mkdir $(distdir)/=build
-+ mkdir $(distdir)/=inst
-+ dc_install_base=`cd $(distdir)/=inst && pwd`; \
-+ cd $(distdir)/=build \
-+ && ../configure --srcdir=.. --prefix=$$dc_install_base \
-+ && $(MAKE) $(AM_MAKEFLAGS) \
-+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
-+ && $(MAKE) $(AM_MAKEFLAGS) check \
-+ && $(MAKE) $(AM_MAKEFLAGS) install \
-+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
-+ && $(MAKE) $(AM_MAKEFLAGS) dist
-+ -rm -rf $(distdir)
-+ @banner="$(distdir).tar.gz is ready for distribution"; \
-+ dashes=`echo "$$banner" | sed s/./=/g`; \
-+ echo "$$dashes"; \
-+ echo "$$banner"; \
-+ echo "$$dashes"
-+dist: distdir
-+ -chmod -R a+r $(distdir)
-+ GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-+ -rm -rf $(distdir)
-+dist-all: distdir
-+ -chmod -R a+r $(distdir)
-+ GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-+ -rm -rf $(distdir)
-+distdir: $(DISTFILES)
-+ -rm -rf $(distdir)
-+ mkdir $(distdir)
-+ -chmod 777 $(distdir)
-+ @for file in $(DISTFILES); do \
-+ if test -f $$file; then d=.; else d=$(srcdir); fi; \
-+ if test -d $$d/$$file; then \
-+ cp -pr $$d/$$file $(distdir)/$$file; \
-+ else \
-+ test -f $(distdir)/$$file \
-+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-+ || cp -p $$d/$$file $(distdir)/$$file || :; \
-+ fi; \
-+ done
-+info-am:
-+info: info-am
-+dvi-am:
-+dvi: dvi-am
-+check-am:
-+check: check-am
-+installcheck-am:
-+installcheck: installcheck-am
-+install-info-am:
-+install-info: install-info-am
-+install-exec-am:
-+install-exec: install-exec-am
-+
-+install-data-am:
-+install-data: install-data-am
-+
-+install-am: all-am
-+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-+install: install-am
-+uninstall-am:
-+uninstall: uninstall-am
-+all-am: Makefile $(LIBRARIES)
-+all-redirect: all-am
-+install-strip:
-+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-+installdirs:
-+
-+
-+mostlyclean-generic:
-+
-+clean-generic:
-+
-+distclean-generic:
-+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
-+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-+
-+maintainer-clean-generic:
-+mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \
-+ mostlyclean-tags mostlyclean-generic
-+
-+mostlyclean: mostlyclean-am
-+
-+clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \
-+ mostlyclean-am
-+
-+clean: clean-am
-+
-+distclean-am: distclean-noinstLIBRARIES distclean-compile \
-+ distclean-tags distclean-generic clean-am
-+
-+distclean: distclean-am
-+ -rm -f config.status
-+
-+maintainer-clean-am: maintainer-clean-noinstLIBRARIES \
-+ maintainer-clean-compile maintainer-clean-tags \
-+ maintainer-clean-generic distclean-am
-+ @echo "This command is intended for maintainers to use;"
-+ @echo "it deletes files that may require special tools to rebuild."
-+
-+maintainer-clean: maintainer-clean-am
-+ -rm -f config.status
-+
-+.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
-+clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
-+mostlyclean-compile distclean-compile clean-compile \
-+maintainer-clean-compile tags mostlyclean-tags distclean-tags \
-+clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \
-+check-am installcheck-am installcheck install-info-am install-info \
-+install-exec-am install-exec install-data-am install-data install-am \
-+install uninstall-am uninstall all-redirect all-am all installdirs \
-+mostlyclean-generic distclean-generic clean-generic \
-+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
-+
-+
-+all: crt0.o
-+
-+$(LIBCGLUE_MULT_OBJS): libcglue.c
-+ $(COMPILE) -DF_$* $< -c -o $@
-+
-+# Tell versions [3.59,3.63) of GNU make to not export all variables.
-+# Otherwise a system limit (for SysV at least) may be exceeded.
-+.NOEXPORT:
---- newlib-1.13.0.orig/newlib/libc/sys/psp/README 1969-12-31 19:00:00.000000000 -0500
-+++ newlib-psp/newlib/libc/sys/psp/README 2005-07-28 15:42:00.000000000 -0400
-@@ -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
---- newlib-1.13.0.orig/newlib/libc/sys/psp/aclocal.m4 1969-12-31 19:00:00.000000000 -0500
-+++ newlib-psp/newlib/libc/sys/psp/aclocal.m4 2005-09-29 21:46:30.000000000 -0400
-@@ -0,0 +1,1185 @@
-+dnl aclocal.m4 generated automatically by aclocal 1.4-p6
-+
-+dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+dnl This program is distributed in the hope that it will be useful,
-+dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-+dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-+dnl PARTICULAR PURPOSE.
-+
-+# lib-prefix.m4 serial 4 (gettext-0.14.2)
-+dnl Copyright (C) 2001-2005 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+dnl From Bruno Haible.
-+
-+dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
-+dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
-+dnl require excessive bracketing.
-+ifdef([AC_HELP_STRING],
-+[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
-+[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
-+
-+dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
-+dnl to access previously installed libraries. The basic assumption is that
-+dnl a user will want packages to use other packages he previously installed
-+dnl with the same --prefix option.
-+dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
-+dnl libraries, but is otherwise very convenient.
-+AC_DEFUN([AC_LIB_PREFIX],
-+[
-+ AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
-+ AC_REQUIRE([AC_PROG_CC])
-+ AC_REQUIRE([AC_CANONICAL_HOST])
-+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-+ dnl By default, look in $includedir and $libdir.
-+ use_additional=yes
-+ AC_LIB_WITH_FINAL_PREFIX([
-+ eval additional_includedir=\"$includedir\"
-+ eval additional_libdir=\"$libdir\"
-+ ])
-+ AC_LIB_ARG_WITH([lib-prefix],
-+[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
-+ --without-lib-prefix don't search for libraries in includedir and libdir],
-+[
-+ if test "X$withval" = "Xno"; then
-+ use_additional=no
-+ else
-+ if test "X$withval" = "X"; then
-+ AC_LIB_WITH_FINAL_PREFIX([
-+ eval additional_includedir=\"$includedir\"
-+ eval additional_libdir=\"$libdir\"
-+ ])
-+ else
-+ additional_includedir="$withval/include"
-+ additional_libdir="$withval/lib"
-+ fi
-+ fi
-+])
-+ if test $use_additional = yes; then
-+ dnl Potentially add $additional_includedir to $CPPFLAGS.
-+ dnl But don't add it
-+ dnl 1. if it's the standard /usr/include,
-+ dnl 2. if it's already present in $CPPFLAGS,
-+ dnl 3. if it's /usr/local/include and we are using GCC on Linux,
-+ dnl 4. if it doesn't exist as a directory.
-+ if test "X$additional_includedir" != "X/usr/include"; then
-+ haveit=
-+ for x in $CPPFLAGS; do
-+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-+ if test "X$x" = "X-I$additional_includedir"; then
-+ haveit=yes
-+ break
-+ fi
-+ done
-+ if test -z "$haveit"; then
-+ if test "X$additional_includedir" = "X/usr/local/include"; then
-+ if test -n "$GCC"; then
-+ case $host_os in
-+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
-+ esac
-+ fi
-+ fi
-+ if test -z "$haveit"; then
-+ if test -d "$additional_includedir"; then
-+ dnl Really add $additional_includedir to $CPPFLAGS.
-+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
-+ fi
-+ fi
-+ fi
-+ fi
-+ dnl Potentially add $additional_libdir to $LDFLAGS.
-+ dnl But don't add it
-+ dnl 1. if it's the standard /usr/lib,
-+ dnl 2. if it's already present in $LDFLAGS,
-+ dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
-+ dnl 4. if it doesn't exist as a directory.
-+ if test "X$additional_libdir" != "X/usr/lib"; then
-+ haveit=
-+ for x in $LDFLAGS; do
-+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-+ if test "X$x" = "X-L$additional_libdir"; then
-+ haveit=yes
-+ break
-+ fi
-+ done
-+ if test -z "$haveit"; then
-+ if test "X$additional_libdir" = "X/usr/local/lib"; then
-+ if test -n "$GCC"; then
-+ case $host_os in
-+ linux*) haveit=yes;;
-+ esac
-+ fi
-+ fi
-+ if test -z "$haveit"; then
-+ if test -d "$additional_libdir"; then
-+ dnl Really add $additional_libdir to $LDFLAGS.
-+ LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
-+ fi
-+ fi
-+ fi
-+ fi
-+ fi
-+])
-+
-+dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
-+dnl acl_final_exec_prefix, containing the values to which $prefix and
-+dnl $exec_prefix will expand at the end of the configure script.
-+AC_DEFUN([AC_LIB_PREPARE_PREFIX],
-+[
-+ dnl Unfortunately, prefix and exec_prefix get only finally determined
-+ dnl at the end of configure.
-+ if test "X$prefix" = "XNONE"; then
-+ acl_final_prefix="$ac_default_prefix"
-+ else
-+ acl_final_prefix="$prefix"
-+ fi
-+ if test "X$exec_prefix" = "XNONE"; then
-+ acl_final_exec_prefix='${prefix}'
-+ else
-+ acl_final_exec_prefix="$exec_prefix"
-+ fi
-+ acl_save_prefix="$prefix"
-+ prefix="$acl_final_prefix"
-+ eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
-+ prefix="$acl_save_prefix"
-+])
-+
-+dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
-+dnl variables prefix and exec_prefix bound to the values they will have
-+dnl at the end of the configure script.
-+AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
-+[
-+ acl_save_prefix="$prefix"
-+ prefix="$acl_final_prefix"
-+ acl_save_exec_prefix="$exec_prefix"
-+ exec_prefix="$acl_final_exec_prefix"
-+ $1
-+ exec_prefix="$acl_save_exec_prefix"
-+ prefix="$acl_save_prefix"
-+])
-+
-+# lib-link.m4 serial 6 (gettext-0.14.3)
-+dnl Copyright (C) 2001-2005 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+dnl From Bruno Haible.
-+
-+AC_PREREQ(2.50)
-+
-+dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
-+dnl the libraries corresponding to explicit and implicit dependencies.
-+dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
-+dnl augments the CPPFLAGS variable.
-+AC_DEFUN([AC_LIB_LINKFLAGS],
-+[
-+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-+ AC_REQUIRE([AC_LIB_RPATH])
-+ define([Name],[translit([$1],[./-], [___])])
-+ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
-+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
-+ AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
-+ AC_LIB_LINKFLAGS_BODY([$1], [$2])
-+ ac_cv_lib[]Name[]_libs="$LIB[]NAME"
-+ ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
-+ ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
-+ ])
-+ LIB[]NAME="$ac_cv_lib[]Name[]_libs"
-+ LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
-+ INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
-+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
-+ AC_SUBST([LIB]NAME)
-+ AC_SUBST([LTLIB]NAME)
-+ dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
-+ dnl results of this search when this library appears as a dependency.
-+ HAVE_LIB[]NAME=yes
-+ undefine([Name])
-+ undefine([NAME])
-+])
-+
-+dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
-+dnl searches for libname and the libraries corresponding to explicit and
-+dnl implicit dependencies, together with the specified include files and
-+dnl the ability to compile and link the specified testcode. If found, it
-+dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
-+dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
-+dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
-+dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
-+AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
-+[
-+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-+ AC_REQUIRE([AC_LIB_RPATH])
-+ define([Name],[translit([$1],[./-], [___])])
-+ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
-+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
-+
-+ dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
-+ dnl accordingly.
-+ AC_LIB_LINKFLAGS_BODY([$1], [$2])
-+
-+ dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
-+ dnl because if the user has installed lib[]Name and not disabled its use
-+ dnl via --without-lib[]Name-prefix, he wants to use it.
-+ ac_save_CPPFLAGS="$CPPFLAGS"
-+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
-+
-+ AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
-+ ac_save_LIBS="$LIBS"
-+ LIBS="$LIBS $LIB[]NAME"
-+ AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
-+ LIBS="$ac_save_LIBS"
-+ ])
-+ if test "$ac_cv_lib[]Name" = yes; then
-+ HAVE_LIB[]NAME=yes
-+ AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
-+ AC_MSG_CHECKING([how to link with lib[]$1])
-+ AC_MSG_RESULT([$LIB[]NAME])
-+ else
-+ HAVE_LIB[]NAME=no
-+ dnl If $LIB[]NAME didn't lead to a usable library, we don't need
-+ dnl $INC[]NAME either.
-+ CPPFLAGS="$ac_save_CPPFLAGS"
-+ LIB[]NAME=
-+ LTLIB[]NAME=
-+ fi
-+ AC_SUBST([HAVE_LIB]NAME)
-+ AC_SUBST([LIB]NAME)
-+ AC_SUBST([LTLIB]NAME)
-+ undefine([Name])
-+ undefine([NAME])
-+])
-+
-+dnl Determine the platform dependent parameters needed to use rpath:
-+dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
-+dnl hardcode_direct, hardcode_minus_L.
-+AC_DEFUN([AC_LIB_RPATH],
-+[
-+ dnl Tell automake >= 1.10 to complain if config.rpath is missing.
-+ m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
-+ AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
-+ AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
-+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
-+ AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
-+ AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
-+ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
-+ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
-+ . ./conftest.sh
-+ rm -f ./conftest.sh
-+ acl_cv_rpath=done
-+ ])
-+ wl="$acl_cv_wl"
-+ libext="$acl_cv_libext"
-+ shlibext="$acl_cv_shlibext"
-+ hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
-+ hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
-+ hardcode_direct="$acl_cv_hardcode_direct"
-+ hardcode_minus_L="$acl_cv_hardcode_minus_L"
-+ dnl Determine whether the user wants rpath handling at all.
-+ AC_ARG_ENABLE(rpath,
-+ [ --disable-rpath do not hardcode runtime library paths],
-+ :, enable_rpath=yes)
-+])
-+
-+dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
-+dnl the libraries corresponding to explicit and implicit dependencies.
-+dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
-+AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
-+[
-+ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
-+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
-+ dnl By default, look in $includedir and $libdir.
-+ use_additional=yes
-+ AC_LIB_WITH_FINAL_PREFIX([
-+ eval additional_includedir=\"$includedir\"
-+ eval additional_libdir=\"$libdir\"
-+ ])
-+ AC_LIB_ARG_WITH([lib$1-prefix],
-+[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib
-+ --without-lib$1-prefix don't search for lib$1 in includedir and libdir],
-+[
-+ if test "X$withval" = "Xno"; then
-+ use_additional=no
-+ else
-+ if test "X$withval" = "X"; then
-+ AC_LIB_WITH_FINAL_PREFIX([
-+ eval additional_includedir=\"$includedir\"
-+ eval additional_libdir=\"$libdir\"
-+ ])
-+ else
-+ additional_includedir="$withval/include"
-+ additional_libdir="$withval/lib"
-+ fi
-+ fi
-+])
-+ dnl Search the library and its dependencies in $additional_libdir and
-+ dnl $LDFLAGS. Using breadth-first-seach.
-+ LIB[]NAME=
-+ LTLIB[]NAME=
-+ INC[]NAME=
-+ rpathdirs=
-+ ltrpathdirs=
-+ names_already_handled=
-+ names_next_round='$1 $2'
-+ while test -n "$names_next_round"; do
-+ names_this_round="$names_next_round"
-+ names_next_round=
-+ for name in $names_this_round; do
-+ already_handled=
-+ for n in $names_already_handled; do
-+ if test "$n" = "$name"; then
-+ already_handled=yes
-+ break
-+ fi
-+ done
-+ if test -z "$already_handled"; then
-+ names_already_handled="$names_already_handled $name"
-+ dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
-+ dnl or AC_LIB_HAVE_LINKFLAGS call.
-+ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
-+ eval value=\"\$HAVE_LIB$uppername\"
-+ if test -n "$value"; then
-+ if test "$value" = yes; then
-+ eval value=\"\$LIB$uppername\"
-+ test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
-+ eval value=\"\$LTLIB$uppername\"
-+ test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
-+ else
-+ dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
-+ dnl that this library doesn't exist. So just drop it.
-+ :
-+ fi
-+ else
-+ dnl Search the library lib$name in $additional_libdir and $LDFLAGS
-+ dnl and the already constructed $LIBNAME/$LTLIBNAME.
-+ found_dir=
-+ found_la=
-+ found_so=
-+ found_a=
-+ if test $use_additional = yes; then
-+ if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
-+ found_dir="$additional_libdir"
-+ found_so="$additional_libdir/lib$name.$shlibext"
-+ if test -f "$additional_libdir/lib$name.la"; then
-+ found_la="$additional_libdir/lib$name.la"
-+ fi
-+ else
-+ if test -f "$additional_libdir/lib$name.$libext"; then
-+ found_dir="$additional_libdir"
-+ found_a="$additional_libdir/lib$name.$libext"
-+ if test -f "$additional_libdir/lib$name.la"; then
-+ found_la="$additional_libdir/lib$name.la"
-+ fi
-+ fi
-+ fi
-+ fi
-+ if test "X$found_dir" = "X"; then
-+ for x in $LDFLAGS $LTLIB[]NAME; do
-+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-+ case "$x" in
-+ -L*)
-+ dir=`echo "X$x" | sed -e 's/^X-L//'`
-+ if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
-+ found_dir="$dir"
-+ found_so="$dir/lib$name.$shlibext"
-+ if test -f "$dir/lib$name.la"; then
-+ found_la="$dir/lib$name.la"
-+ fi
-+ else
-+ if test -f "$dir/lib$name.$libext"; then
-+ found_dir="$dir"
-+ found_a="$dir/lib$name.$libext"
-+ if test -f "$dir/lib$name.la"; then
-+ found_la="$dir/lib$name.la"
-+ fi
-+ fi
-+ fi
-+ ;;
-+ esac
-+ if test "X$found_dir" != "X"; then
-+ break
-+ fi
-+ done
-+ fi
-+ if test "X$found_dir" != "X"; then
-+ dnl Found the library.
-+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
-+ if test "X$found_so" != "X"; then
-+ dnl Linking with a shared library. We attempt to hardcode its
-+ dnl directory into the executable's runpath, unless it's the
-+ dnl standard /usr/lib.
-+ if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
-+ dnl No hardcoding is needed.
-+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
-+ else
-+ dnl Use an explicit option to hardcode DIR into the resulting
-+ dnl binary.
-+ dnl Potentially add DIR to ltrpathdirs.
-+ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
-+ haveit=
-+ for x in $ltrpathdirs; do
-+ if test "X$x" = "X$found_dir"; then
-+ haveit=yes
-+ break
-+ fi
-+ done
-+ if test -z "$haveit"; then
-+ ltrpathdirs="$ltrpathdirs $found_dir"
-+ fi
-+ dnl The hardcoding into $LIBNAME is system dependent.
-+ if test "$hardcode_direct" = yes; then
-+ dnl Using DIR/libNAME.so during linking hardcodes DIR into the
-+ dnl resulting binary.
-+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
-+ else
-+ if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
-+ dnl Use an explicit option to hardcode DIR into the resulting
-+ dnl binary.
-+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
-+ dnl Potentially add DIR to rpathdirs.
-+ dnl The rpathdirs will be appended to $LIBNAME at the end.
-+ haveit=
-+ for x in $rpathdirs; do
-+ if test "X$x" = "X$found_dir"; then
-+ haveit=yes
-+ break
-+ fi
-+ done
-+ if test -z "$haveit"; then
-+ rpathdirs="$rpathdirs $found_dir"
-+ fi
-+ else
-+ dnl Rely on "-L$found_dir".
-+ dnl But don't add it if it's already contained in the LDFLAGS
-+ dnl or the already constructed $LIBNAME
-+ haveit=
-+ for x in $LDFLAGS $LIB[]NAME; do
-+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-+ if test "X$x" = "X-L$found_dir"; then
-+ haveit=yes
-+ break
-+ fi
-+ done
-+ if test -z "$haveit"; then
-+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
-+ fi
-+ if test "$hardcode_minus_L" != no; then
-+ dnl FIXME: Not sure whether we should use
-+ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
-+ dnl here.
-+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
-+ else
-+ dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
-+ dnl here, because this doesn't fit in flags passed to the
-+ dnl compiler. So give up. No hardcoding. This affects only
-+ dnl very old systems.
-+ dnl FIXME: Not sure whether we should use
-+ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
-+ dnl here.
-+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
-+ fi
-+ fi
-+ fi
-+ fi
-+ else
-+ if test "X$found_a" != "X"; then
-+ dnl Linking with a static library.
-+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
-+ else
-+ dnl We shouldn't come here, but anyway it's good to have a
-+ dnl fallback.
-+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
-+ fi
-+ fi
-+ dnl Assume the include files are nearby.
-+ additional_includedir=
-+ case "$found_dir" in
-+ */lib | */lib/)
-+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
-+ additional_includedir="$basedir/include"
-+ ;;
-+ esac
-+ if test "X$additional_includedir" != "X"; then
-+ dnl Potentially add $additional_includedir to $INCNAME.
-+ dnl But don't add it
-+ dnl 1. if it's the standard /usr/include,
-+ dnl 2. if it's /usr/local/include and we are using GCC on Linux,
-+ dnl 3. if it's already present in $CPPFLAGS or the already
-+ dnl constructed $INCNAME,
-+ dnl 4. if it doesn't exist as a directory.
-+ if test "X$additional_includedir" != "X/usr/include"; then
-+ haveit=
-+ if test "X$additional_includedir" = "X/usr/local/include"; then
-+ if test -n "$GCC"; then
-+ case $host_os in
-+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
-+ esac
-+ fi
-+ fi
-+ if test -z "$haveit"; then
-+ for x in $CPPFLAGS $INC[]NAME; do
-+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-+ if test "X$x" = "X-I$additional_includedir"; then
-+ haveit=yes
-+ break
-+ fi
-+ done
-+ if test -z "$haveit"; then
-+ if test -d "$additional_includedir"; then
-+ dnl Really add $additional_includedir to $INCNAME.
-+ INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
-+ fi
-+ fi
-+ fi
-+ fi
-+ fi
-+ dnl Look for dependencies.
-+ if test -n "$found_la"; then
-+ dnl Read the .la file. It defines the variables
-+ dnl dlname, library_names, old_library, dependency_libs, current,
-+ dnl age, revision, installed, dlopen, dlpreopen, libdir.
-+ save_libdir="$libdir"
-+ case "$found_la" in
-+ */* | *\\*) . "$found_la" ;;
-+ *) . "./$found_la" ;;
-+ esac
-+ libdir="$save_libdir"
-+ dnl We use only dependency_libs.
-+ for dep in $dependency_libs; do
-+ case "$dep" in
-+ -L*)
-+ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
-+ dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
-+ dnl But don't add it
-+ dnl 1. if it's the standard /usr/lib,
-+ dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
-+ dnl 3. if it's already present in $LDFLAGS or the already
-+ dnl constructed $LIBNAME,
-+ dnl 4. if it doesn't exist as a directory.
-+ if test "X$additional_libdir" != "X/usr/lib"; then
-+ haveit=
-+ if test "X$additional_libdir" = "X/usr/local/lib"; then
-+ if test -n "$GCC"; then
-+ case $host_os in
-+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
-+ esac
-+ fi
-+ fi
-+ if test -z "$haveit"; then
-+ haveit=
-+ for x in $LDFLAGS $LIB[]NAME; do
-+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-+ if test "X$x" = "X-L$additional_libdir"; then
-+ haveit=yes
-+ break
-+ fi
-+ done
-+ if test -z "$haveit"; then
-+ if test -d "$additional_libdir"; then
-+ dnl Really add $additional_libdir to $LIBNAME.
-+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
-+ fi
-+ fi
-+ haveit=
-+ for x in $LDFLAGS $LTLIB[]NAME; do
-+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-+ if test "X$x" = "X-L$additional_libdir"; then
-+ haveit=yes
-+ break
-+ fi
-+ done
-+ if test -z "$haveit"; then
-+ if test -d "$additional_libdir"; then
-+ dnl Really add $additional_libdir to $LTLIBNAME.
-+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
-+ fi
-+ fi
-+ fi
-+ fi
-+ ;;
-+ -R*)
-+ dir=`echo "X$dep" | sed -e 's/^X-R//'`
-+ if test "$enable_rpath" != no; then
-+ dnl Potentially add DIR to rpathdirs.
-+ dnl The rpathdirs will be appended to $LIBNAME at the end.
-+ haveit=
-+ for x in $rpathdirs; do
-+ if test "X$x" = "X$dir"; then
-+ haveit=yes
-+ break
-+ fi
-+ done
-+ if test -z "$haveit"; then
-+ rpathdirs="$rpathdirs $dir"
-+ fi
-+ dnl Potentially add DIR to ltrpathdirs.
-+ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
-+ haveit=
-+ for x in $ltrpathdirs; do
-+ if test "X$x" = "X$dir"; then
-+ haveit=yes
-+ break
-+ fi
-+ done
-+ if test -z "$haveit"; then
-+ ltrpathdirs="$ltrpathdirs $dir"
-+ fi
-+ fi
-+ ;;
-+ -l*)
-+ dnl Handle this in the next round.
-+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
-+ ;;
-+ *.la)
-+ dnl Handle this in the next round. Throw away the .la's
-+ dnl directory; it is already contained in a preceding -L
-+ dnl option.
-+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
-+ ;;
-+ *)
-+ dnl Most likely an immediate library name.
-+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
-+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
-+ ;;
-+ esac
-+ done
-+ fi
-+ else
-+ dnl Didn't find the library; assume it is in the system directories
-+ dnl known to the linker and runtime loader. (All the system
-+ dnl directories known to the linker should also be known to the
-+ dnl runtime loader, otherwise the system is severely misconfigured.)
-+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
-+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
-+ fi
-+ fi
-+ fi
-+ done
-+ done
-+ if test "X$rpathdirs" != "X"; then
-+ if test -n "$hardcode_libdir_separator"; then
-+ dnl Weird platform: only the last -rpath option counts, the user must
-+ dnl pass all path elements in one option. We can arrange that for a
-+ dnl single library, but not when more than one $LIBNAMEs are used.
-+ alldirs=
-+ for found_dir in $rpathdirs; do
-+ alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
-+ done
-+ dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
-+ acl_save_libdir="$libdir"
-+ libdir="$alldirs"
-+ eval flag=\"$hardcode_libdir_flag_spec\"
-+ libdir="$acl_save_libdir"
-+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
-+ else
-+ dnl The -rpath options are cumulative.
-+ for found_dir in $rpathdirs; do
-+ acl_save_libdir="$libdir"
-+ libdir="$found_dir"
-+ eval flag=\"$hardcode_libdir_flag_spec\"
-+ libdir="$acl_save_libdir"
-+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
-+ done
-+ fi
-+ fi
-+ if test "X$ltrpathdirs" != "X"; then
-+ dnl When using libtool, the option that works for both libraries and
-+ dnl executables is -R. The -R options are cumulative.
-+ for found_dir in $ltrpathdirs; do
-+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
-+ done
-+ fi
-+])
-+
-+dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
-+dnl unless already present in VAR.
-+dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
-+dnl contains two or three consecutive elements that belong together.
-+AC_DEFUN([AC_LIB_APPENDTOVAR],
-+[
-+ for element in [$2]; do
-+ haveit=
-+ for x in $[$1]; do
-+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-+ if test "X$x" = "X$element"; then
-+ haveit=yes
-+ break
-+ fi
-+ done
-+ if test -z "$haveit"; then
-+ [$1]="${[$1]}${[$1]:+ }$element"
-+ fi
-+ done
-+])
-+
-+# lib-ld.m4 serial 3 (gettext-0.13)
-+dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
-+dnl This file is free software; the Free Software Foundation
-+dnl gives unlimited permission to copy and/or distribute it,
-+dnl with or without modifications, as long as this notice is preserved.
-+
-+dnl Subroutines of libtool.m4,
-+dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
-+dnl with libtool.m4.
-+
-+dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
-+AC_DEFUN([AC_LIB_PROG_LD_GNU],
-+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
-+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-+case `$LD -v 2>&1 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
-+ac_prog=ld
-+if test "$GCC" = yes; then
-+ # Check if gcc -print-prog-name=ld gives a path.
-+ AC_MSG_CHECKING([for ld used by GCC])
-+ case $host in
-+ *-*-mingw*)
-+ # gcc leaves a trailing carriage return which upsets mingw
-+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-+ *)
-+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-+ esac
-+ case $ac_prog in
-+ # Accept absolute paths.
-+ [[\\/]* | [A-Za-z]:[\\/]*)]
-+ [re_direlt='/[^/][^/]*/\.\./']
-+ # Canonicalize the path of ld
-+ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
-+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-+ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
-+ done
-+ test -z "$LD" && LD="$ac_prog"
-+ ;;
-+ "")
-+ # If it fails, then pretend we aren't using GCC.
-+ ac_prog=ld
-+ ;;
-+ *)
-+ # If it is relative, then search for the first ld in PATH.
-+ with_gnu_ld=unknown
-+ ;;
-+ esac
-+elif test "$with_gnu_ld" = yes; then
-+ AC_MSG_CHECKING([for GNU ld])
-+else
-+ AC_MSG_CHECKING([for non-GNU ld])
-+fi
-+AC_CACHE_VAL(acl_cv_path_LD,
-+[if test -z "$LD"; then
-+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
-+ for ac_dir in $PATH; do
-+ test -z "$ac_dir" && ac_dir=.
-+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-+ acl_cv_path_LD="$ac_dir/$ac_prog"
-+ # Check to see if the program is GNU ld. I'd rather use --version,
-+ # but apparently some GNU ld's only accept -v.
-+ # Break only if it was the GNU/non-GNU ld that we prefer.
-+ case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
-+ *GNU* | *'with BFD'*)
-+ test "$with_gnu_ld" != no && break ;;
-+ *)
-+ test "$with_gnu_ld" != yes && break ;;
-+ esac
-+ fi
-+ done
-+ IFS="$ac_save_ifs"
-+else
-+ acl_cv_path_LD="$LD" # Let the user override the test with a path.
-+fi])
-+LD="$acl_cv_path_LD"
-+if test -n "$LD"; then
-+ AC_MSG_RESULT($LD)
-+else
-+ AC_MSG_RESULT(no)
-+fi
-+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-+AC_LIB_PROG_LD_GNU
-+])
-+
-+dnl This provides configure definitions used by all the newlib
-+dnl configure.in files.
-+
-+dnl Basic newlib configury. This calls basic introductory stuff,
-+dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs
-+dnl configure.host. The only argument is the relative path to the top
-+dnl newlib directory.
-+
-+AC_DEFUN(NEWLIB_CONFIGURE,
-+[
-+dnl Default to --enable-multilib
-+AC_ARG_ENABLE(multilib,
-+[ --enable-multilib build many library versions (default)],
-+[case "${enableval}" in
-+ yes) multilib=yes ;;
-+ no) multilib=no ;;
-+ *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;;
-+ esac], [multilib=yes])dnl
-+
-+dnl Support --enable-target-optspace
-+AC_ARG_ENABLE(target-optspace,
-+[ --enable-target-optspace optimize for space],
-+[case "${enableval}" in
-+ yes) target_optspace=yes ;;
-+ no) target_optspace=no ;;
-+ *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;;
-+ esac], [target_optspace=])dnl
-+
-+dnl Support --enable-malloc-debugging - currently only supported for Cygwin
-+AC_ARG_ENABLE(malloc-debugging,
-+[ --enable-malloc-debugging indicate malloc debugging requested],
-+[case "${enableval}" in
-+ yes) malloc_debugging=yes ;;
-+ no) malloc_debugging=no ;;
-+ *) AC_MSG_ERROR(bad value ${enableval} for malloc-debugging option) ;;
-+ esac], [malloc_debugging=])dnl
-+
-+dnl Support --enable-newlib-multithread
-+AC_ARG_ENABLE(newlib-multithread,
-+[ --enable-newlib-multithread enable support for multiple threads],
-+[case "${enableval}" in
-+ yes) newlib_multithread=yes ;;
-+ no) newlib_multithread=no ;;
-+ *) AC_MSG_ERROR(bad value ${enableval} for newlib-multithread option) ;;
-+ esac], [newlib_multithread=yes])dnl
-+
-+dnl Support --enable-newlib-iconv
-+AC_ARG_ENABLE(newlib-iconv,
-+[ --enable-newlib-iconv enable iconv library support],
-+[if test "${newlib_iconv+set}" != set; then
-+ case "${enableval}" in
-+ yes) newlib_iconv=yes ;;
-+ no) newlib_iconv=no ;;
-+ *) AC_MSG_ERROR(bad value ${enableval} for newlib-iconv option) ;;
-+ esac
-+ fi], [newlib_iconv=${newlib_iconv}])dnl
-+
-+dnl Support --enable-newlib-elix-level
-+AC_ARG_ENABLE(newlib-elix-level,
-+[ --enable-newlib-elix-level supply desired elix library level (1-4)],
-+[case "${enableval}" in
-+ 0) newlib_elix_level=0 ;;
-+ 1) newlib_elix_level=1 ;;
-+ 2) newlib_elix_level=2 ;;
-+ 3) newlib_elix_level=3 ;;
-+ 4) newlib_elix_level=4 ;;
-+ *) AC_MSG_ERROR(bad value ${enableval} for newlib-elix-level option) ;;
-+ esac], [newlib_elix_level=0])dnl
-+
-+dnl Support --disable-newlib-io-float
-+AC_ARG_ENABLE(newlib-io-float,
-+[ --disable-newlib-io-float disable printf/scanf family float support],
-+[case "${enableval}" in
-+ yes) newlib_io_float=yes ;;
-+ no) newlib_io_float=no ;;
-+ *) AC_MSG_ERROR(bad value ${enableval} for newlib-io-float option) ;;
-+ esac], [newlib_io_float=yes])dnl
-+
-+dnl Support --disable-newlib-supplied-syscalls
-+AC_ARG_ENABLE(newlib-supplied-syscalls,
-+[ --disable-newlib-supplied-syscalls disable newlib from supplying syscalls],
-+[case "${enableval}" in
-+ yes) newlib_may_supply_syscalls=yes ;;
-+ no) newlib_may_supply_syscalls=no ;;
-+ *) AC_MSG_ERROR(bad value ${enableval} for newlib-supplied-syscalls option) ;;
-+ esac], [newlib_may_supply_syscalls=yes])dnl
-+
-+AM_CONDITIONAL(MAY_SUPPLY_SYSCALLS, test x[$]{newlib_may_supply_syscalls} = xyes)
-+
-+dnl We may get other options which we don't document:
-+dnl --with-target-subdir, --with-multisrctop, --with-multisubdir
-+
-+test -z "[$]{with_target_subdir}" && with_target_subdir=.
-+
-+if test "[$]{srcdir}" = "."; then
-+ if test "[$]{with_target_subdir}" != "."; then
-+ newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1"
-+ else
-+ newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1"
-+ fi
-+else
-+ newlib_basedir="[$]{srcdir}/$1"
-+fi
-+AC_SUBST(newlib_basedir)
-+
-+AC_CANONICAL_SYSTEM
-+
-+AM_INIT_AUTOMAKE(newlib, 1.13.0)
-+
-+# FIXME: We temporarily define our own version of AC_PROG_CC. This is
-+# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
-+# are probably using a cross compiler, which will not be able to fully
-+# link an executable. This should really be fixed in autoconf
-+# itself.
-+
-+AC_DEFUN(LIB_AC_PROG_CC,
-+[AC_BEFORE([$0], [AC_PROG_CPP])dnl
-+AC_CHECK_PROG(CC, gcc, gcc)
-+if test -z "$CC"; then
-+ AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
-+ test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
-+fi
-+
-+AC_PROG_CC_GNU
-+
-+if test $ac_cv_prog_gcc = yes; then
-+ GCC=yes
-+dnl Check whether -g works, even if CFLAGS is set, in case the package
-+dnl plays around with CFLAGS (such as to build both debugging and
-+dnl normal versions of a library), tasteless as that idea is.
-+ ac_test_CFLAGS="${CFLAGS+set}"
-+ ac_save_CFLAGS="$CFLAGS"
-+ CFLAGS=
-+ AC_PROG_CC_G
-+ if test "$ac_test_CFLAGS" = set; then
-+ CFLAGS="$ac_save_CFLAGS"
-+ elif test $ac_cv_prog_cc_g = yes; then
-+ CFLAGS="-g -O2"
-+ else
-+ CFLAGS="-O2"
-+ fi
-+else
-+ GCC=
-+ test "${CFLAGS+set}" = set || CFLAGS="-g"
-+fi
-+])
-+
-+LIB_AC_PROG_CC
-+
-+AC_CHECK_TOOL(AS, as)
-+AC_CHECK_TOOL(AR, ar)
-+AC_CHECK_TOOL(RANLIB, ranlib, :)
-+
-+AC_PROG_INSTALL
-+
-+AM_MAINTAINER_MODE
-+
-+# We need AC_EXEEXT to keep automake happy in cygnus mode. However,
-+# at least currently, we never actually build a program, so we never
-+# need to use $(EXEEXT). Moreover, the test for EXEEXT normally
-+# fails, because we are probably configuring with a cross compiler
-+# which can't create executables. So we include AC_EXEEXT to keep
-+# automake happy, but we don't execute it, since we don't care about
-+# the result.
-+if false; then
-+ AC_EXEEXT
-+fi
-+
-+. [$]{newlib_basedir}/configure.host
-+
-+newlib_cflags="[$]{newlib_cflags} -fno-builtin"
-+
-+NEWLIB_CFLAGS=${newlib_cflags}
-+AC_SUBST(NEWLIB_CFLAGS)
-+
-+LDFLAGS=${ldflags}
-+AC_SUBST(LDFLAGS)
-+
-+AM_CONDITIONAL(ELIX_LEVEL_0, test x[$]{newlib_elix_level} = x0)
-+AM_CONDITIONAL(ELIX_LEVEL_1, test x[$]{newlib_elix_level} = x1)
-+AM_CONDITIONAL(ELIX_LEVEL_2, test x[$]{newlib_elix_level} = x2)
-+AM_CONDITIONAL(ELIX_LEVEL_3, test x[$]{newlib_elix_level} = x3)
-+AM_CONDITIONAL(ELIX_LEVEL_4, test x[$]{newlib_elix_level} = x4)
-+
-+AM_CONDITIONAL(USE_LIBTOOL, test x[$]{use_libtool} = xyes)
-+
-+# Hard-code OBJEXT. Normally it is set by AC_OBJEXT, but we
-+# use oext, which is set in configure.host based on the target platform.
-+OBJEXT=${oext}
-+
-+AC_SUBST(OBJEXT)
-+AC_SUBST(oext)
-+AC_SUBST(aext)
-+
-+AC_SUBST(libm_machine_dir)
-+AC_SUBST(machine_dir)
-+AC_SUBST(sys_dir)
-+])
-+
-+# Do all the work for Automake. This macro actually does too much --
-+# some checks are only needed if your package does certain things.
-+# But this isn't really a big deal.
-+
-+# serial 1
-+
-+dnl Usage:
-+dnl AM_INIT_AUTOMAKE(package,version, [no-define])
-+
-+AC_DEFUN([AM_INIT_AUTOMAKE],
-+[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
-+AC_REQUIRE([AC_PROG_INSTALL])
-+PACKAGE=[$1]
-+AC_SUBST(PACKAGE)
-+VERSION=[$2]
-+AC_SUBST(VERSION)
-+dnl test to see if srcdir already configured
-+if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
-+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
-+fi
-+ifelse([$3],,
-+AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
-+AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
-+AC_REQUIRE([AM_SANITY_CHECK])
-+AC_REQUIRE([AC_ARG_PROGRAM])
-+dnl FIXME This is truly gross.
-+missing_dir=`cd $ac_aux_dir && pwd`
-+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir)
-+AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
-+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir)
-+AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
-+AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
-+AC_REQUIRE([AC_PROG_MAKE_SET])])
-+
-+# Copyright 2002 Free Software Foundation, Inc.
-+
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2, or (at your option)
-+# any later version.
-+
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+# GNU General Public License for more details.
-+
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-+
-+# AM_AUTOMAKE_VERSION(VERSION)
-+# ----------------------------
-+# Automake X.Y traces this macro to ensure aclocal.m4 has been
-+# generated from the m4 files accompanying Automake X.Y.
-+AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"])
-+
-+# AM_SET_CURRENT_AUTOMAKE_VERSION
-+# -------------------------------
-+# Call AM_AUTOMAKE_VERSION so it can be traced.
-+# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
-+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-+ [AM_AUTOMAKE_VERSION([1.4-p6])])
-+
-+#
-+# Check to make sure that the build environment is sane.
-+#
-+
-+AC_DEFUN([AM_SANITY_CHECK],
-+[AC_MSG_CHECKING([whether build environment is sane])
-+# Just in case
-+sleep 1
-+echo timestamp > conftestfile
-+# Do `set' in a subshell so we don't clobber the current shell's
-+# arguments. Must try -L first in case configure is actually a
-+# symlink; some systems play weird games with the mod time of symlinks
-+# (eg FreeBSD returns the mod time of the symlink's containing
-+# directory).
-+if (
-+ set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
-+ if test "[$]*" = "X"; then
-+ # -L didn't work.
-+ set X `ls -t $srcdir/configure conftestfile`
-+ fi
-+ if test "[$]*" != "X $srcdir/configure conftestfile" \
-+ && test "[$]*" != "X conftestfile $srcdir/configure"; then
-+
-+ # If neither matched, then we have a broken ls. This can happen
-+ # if, for instance, CONFIG_SHELL is bash and it inherits a
-+ # broken ls alias from the environment. This has actually
-+ # happened. Such a system could not be considered "sane".
-+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
-+alias in your environment])
-+ fi
-+
-+ test "[$]2" = conftestfile
-+ )
-+then
-+ # Ok.
-+ :
-+else
-+ AC_MSG_ERROR([newly created file is older than distributed files!
-+Check your system clock])
-+fi
-+rm -f conftest*
-+AC_MSG_RESULT(yes)])
-+
-+dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
-+dnl The program must properly implement --version.
-+AC_DEFUN([AM_MISSING_PROG],
-+[AC_MSG_CHECKING(for working $2)
-+# Run test in a subshell; some versions of sh will print an error if
-+# an executable is not found, even if stderr is redirected.
-+# Redirect stdin to placate older versions of autoconf. Sigh.
-+if ($2 --version) < /dev/null > /dev/null 2>&1; then
-+ $1=$2
-+ AC_MSG_RESULT(found)
-+else
-+ $1="$3/missing $2"
-+ AC_MSG_RESULT(missing)
-+fi
-+AC_SUBST($1)])
-+
-+# Define a conditional.
-+
-+AC_DEFUN([AM_CONDITIONAL],
-+[AC_SUBST($1_TRUE)
-+AC_SUBST($1_FALSE)
-+if $2; then
-+ $1_TRUE=
-+ $1_FALSE='#'
-+else
-+ $1_TRUE='#'
-+ $1_FALSE=
-+fi])
-+
-+# Add --enable-maintainer-mode option to configure.
-+# From Jim Meyering
-+
-+# serial 1
-+
-+AC_DEFUN([AM_MAINTAINER_MODE],
-+[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
-+ dnl maintainer-mode is disabled by default
-+ AC_ARG_ENABLE(maintainer-mode,
-+[ --enable-maintainer-mode enable make rules and dependencies not useful
-+ (and sometimes confusing) to the casual installer],
-+ USE_MAINTAINER_MODE=$enableval,
-+ USE_MAINTAINER_MODE=no)
-+ AC_MSG_RESULT($USE_MAINTAINER_MODE)
-+ AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes)
-+ MAINT=$MAINTAINER_MODE_TRUE
-+ AC_SUBST(MAINT)dnl
-+]
-+)
-+
---- newlib-1.13.0.orig/newlib/libc/sys/psp/configure 1969-12-31 19:00:00.000000000 -0500
-+++ newlib-psp/newlib/libc/sys/psp/configure 2005-07-28 15:42:00.000000000 -0400
-@@ -0,0 +1,1880 @@
-+#! /bin/sh
-+
-+# Guess values for system-dependent variables and create Makefiles.
-+# Generated automatically using autoconf version 2.13
-+# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
-+#
-+# This configure script is free software; the Free Software Foundation
-+# gives unlimited permission to copy, distribute and modify it.
-+
-+# Defaults:
-+ac_help=
-+ac_default_prefix=/usr/local
-+# Any additions from configure.in:
-+ac_help="$ac_help
-+ --enable-multilib build many library versions (default)"
-+ac_help="$ac_help
-+ --enable-target-optspace optimize for space"
-+ac_help="$ac_help
-+ --enable-malloc-debugging indicate malloc debugging requested"
-+ac_help="$ac_help
-+ --enable-newlib-multithread enable support for multiple threads"
-+ac_help="$ac_help
-+ --enable-newlib-iconv enable iconv library support"
-+ac_help="$ac_help
-+ --enable-newlib-elix-level supply desired elix library level (1-4)"
-+ac_help="$ac_help
-+ --disable-newlib-io-float disable printf/scanf family float support"
-+ac_help="$ac_help
-+ --disable-newlib-supplied-syscalls disable newlib from supplying syscalls"
-+ac_help="$ac_help
-+ --enable-maintainer-mode enable make rules and dependencies not useful
-+ (and sometimes confusing) to the casual installer"
-+
-+# Initialize some variables set by options.
-+# The variables have the same names as the options, with
-+# dashes changed to underlines.
-+build=NONE
-+cache_file=./config.cache
-+exec_prefix=NONE
-+host=NONE
-+no_create=
-+nonopt=NONE
-+no_recursion=
-+prefix=NONE
-+program_prefix=NONE
-+program_suffix=NONE
-+program_transform_name=s,x,x,
-+silent=
-+site=
-+srcdir=
-+target=NONE
-+verbose=
-+x_includes=NONE
-+x_libraries=NONE
-+bindir='${exec_prefix}/bin'
-+sbindir='${exec_prefix}/sbin'
-+libexecdir='${exec_prefix}/libexec'
-+datadir='${prefix}/share'
-+sysconfdir='${prefix}/etc'
-+sharedstatedir='${prefix}/com'
-+localstatedir='${prefix}/var'
-+libdir='${exec_prefix}/lib'
-+includedir='${prefix}/include'
-+oldincludedir='/usr/include'
-+infodir='${prefix}/info'
-+mandir='${prefix}/man'
-+
-+# Initialize some other variables.
-+subdirs=
-+MFLAGS= MAKEFLAGS=
-+SHELL=${CONFIG_SHELL-/bin/sh}
-+# Maximum number of lines to put in a shell here document.
-+ac_max_here_lines=12
-+
-+ac_prev=
-+for ac_option
-+do
-+
-+ # If the previous option needs an argument, assign it.
-+ if test -n "$ac_prev"; then
-+ eval "$ac_prev=\$ac_option"
-+ ac_prev=
-+ continue
-+ fi
-+
-+ case "$ac_option" in
-+ -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
-+ *) ac_optarg= ;;
-+ esac
-+
-+ # Accept the important Cygnus configure options, so we can diagnose typos.
-+
-+ case "$ac_option" in
-+
-+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
-+ ac_prev=bindir ;;
-+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-+ bindir="$ac_optarg" ;;
-+
-+ -build | --build | --buil | --bui | --bu)
-+ ac_prev=build ;;
-+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-+ build="$ac_optarg" ;;
-+
-+ -cache-file | --cache-file | --cache-fil | --cache-fi \
-+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
-+ ac_prev=cache_file ;;
-+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
-+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-+ cache_file="$ac_optarg" ;;
-+
-+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
-+ ac_prev=datadir ;;
-+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
-+ | --da=*)
-+ datadir="$ac_optarg" ;;
-+
-+ -disable-* | --disable-*)
-+ ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
-+ # Reject names that are not valid shell variable names.
-+ if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
-+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
-+ fi
-+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
-+ eval "enable_${ac_feature}=no" ;;
-+
-+ -enable-* | --enable-*)
-+ ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
-+ # Reject names that are not valid shell variable names.
-+ if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
-+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
-+ fi
-+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
-+ case "$ac_option" in
-+ *=*) ;;
-+ *) ac_optarg=yes ;;
-+ esac
-+ eval "enable_${ac_feature}='$ac_optarg'" ;;
-+
-+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
-+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-+ | --exec | --exe | --ex)
-+ ac_prev=exec_prefix ;;
-+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
-+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
-+ | --exec=* | --exe=* | --ex=*)
-+ exec_prefix="$ac_optarg" ;;
-+
-+ -gas | --gas | --ga | --g)
-+ # Obsolete; use --with-gas.
-+ with_gas=yes ;;
-+
-+ -help | --help | --hel | --he)
-+ # Omit some internal or obsolete options to make the list less imposing.
-+ # This message is too long to be a string in the A/UX 3.1 sh.
-+ cat << EOF
-+Usage: configure [options] [host]
-+Options: [defaults in brackets after descriptions]
-+Configuration:
-+ --cache-file=FILE cache test results in FILE
-+ --help print this message
-+ --no-create do not create output files
-+ --quiet, --silent do not print \`checking...' messages
-+ --version print the version of autoconf that created configure
-+Directory and file names:
-+ --prefix=PREFIX install architecture-independent files in PREFIX
-+ [$ac_default_prefix]
-+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
-+ [same as prefix]
-+ --bindir=DIR user executables in DIR [EPREFIX/bin]
-+ --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
-+ --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
-+ --datadir=DIR read-only architecture-independent data in DIR
-+ [PREFIX/share]
-+ --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
-+ --sharedstatedir=DIR modifiable architecture-independent data in DIR
-+ [PREFIX/com]
-+ --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
-+ --libdir=DIR object code libraries in DIR [EPREFIX/lib]
-+ --includedir=DIR C header files in DIR [PREFIX/include]
-+ --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
-+ --infodir=DIR info documentation in DIR [PREFIX/info]
-+ --mandir=DIR man documentation in DIR [PREFIX/man]
-+ --srcdir=DIR find the sources in DIR [configure dir or ..]
-+ --program-prefix=PREFIX prepend PREFIX to installed program names
-+ --program-suffix=SUFFIX append SUFFIX to installed program names
-+ --program-transform-name=PROGRAM
-+ run sed PROGRAM on installed program names
-+EOF
-+ cat << EOF
-+Host type:
-+ --build=BUILD configure for building on BUILD [BUILD=HOST]
-+ --host=HOST configure for HOST [guessed]
-+ --target=TARGET configure for TARGET [TARGET=HOST]
-+Features and packages:
-+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
-+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
-+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
-+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
-+ --x-includes=DIR X include files are in DIR
-+ --x-libraries=DIR X library files are in DIR
-+EOF
-+ if test -n "$ac_help"; then
-+ echo "--enable and --with options recognized:$ac_help"
-+ fi
-+ exit 0 ;;
-+
-+ -host | --host | --hos | --ho)
-+ ac_prev=host ;;
-+ -host=* | --host=* | --hos=* | --ho=*)
-+ host="$ac_optarg" ;;
-+
-+ -includedir | --includedir | --includedi | --included | --include \
-+ | --includ | --inclu | --incl | --inc)
-+ ac_prev=includedir ;;
-+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
-+ | --includ=* | --inclu=* | --incl=* | --inc=*)
-+ includedir="$ac_optarg" ;;
-+
-+ -infodir | --infodir | --infodi | --infod | --info | --inf)
-+ ac_prev=infodir ;;
-+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-+ infodir="$ac_optarg" ;;
-+
-+ -libdir | --libdir | --libdi | --libd)
-+ ac_prev=libdir ;;
-+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
-+ libdir="$ac_optarg" ;;
-+
-+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
-+ | --libexe | --libex | --libe)
-+ ac_prev=libexecdir ;;
-+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
-+ | --libexe=* | --libex=* | --libe=*)
-+ libexecdir="$ac_optarg" ;;
-+
-+ -localstatedir | --localstatedir | --localstatedi | --localstated \
-+ | --localstate | --localstat | --localsta | --localst \
-+ | --locals | --local | --loca | --loc | --lo)
-+ ac_prev=localstatedir ;;
-+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
-+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
-+ localstatedir="$ac_optarg" ;;
-+
-+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-+ ac_prev=mandir ;;
-+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-+ mandir="$ac_optarg" ;;
-+
-+ -nfp | --nfp | --nf)
-+ # Obsolete; use --without-fp.
-+ with_fp=no ;;
-+
-+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-+ | --no-cr | --no-c)
-+ no_create=yes ;;
-+
-+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-+ no_recursion=yes ;;
-+
-+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
-+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
-+ | --oldin | --oldi | --old | --ol | --o)
-+ ac_prev=oldincludedir ;;
-+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
-+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
-+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-+ oldincludedir="$ac_optarg" ;;
-+
-+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-+ ac_prev=prefix ;;
-+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-+ prefix="$ac_optarg" ;;
-+
-+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
-+ | --program-pre | --program-pr | --program-p)
-+ ac_prev=program_prefix ;;
-+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
-+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-+ program_prefix="$ac_optarg" ;;
-+
-+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
-+ | --program-suf | --program-su | --program-s)
-+ ac_prev=program_suffix ;;
-+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
-+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-+ program_suffix="$ac_optarg" ;;
-+
-+ -program-transform-name | --program-transform-name \
-+ | --program-transform-nam | --program-transform-na \
-+ | --program-transform-n | --program-transform- \
-+ | --program-transform | --program-transfor \
-+ | --program-transfo | --program-transf \
-+ | --program-trans | --program-tran \
-+ | --progr-tra | --program-tr | --program-t)
-+ ac_prev=program_transform_name ;;
-+ -program-transform-name=* | --program-transform-name=* \
-+ | --program-transform-nam=* | --program-transform-na=* \
-+ | --program-transform-n=* | --program-transform-=* \
-+ | --program-transform=* | --program-transfor=* \
-+ | --program-transfo=* | --program-transf=* \
-+ | --program-trans=* | --program-tran=* \
-+ | --progr-tra=* | --program-tr=* | --program-t=*)
-+ program_transform_name="$ac_optarg" ;;
-+
-+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-+ | -silent | --silent | --silen | --sile | --sil)
-+ silent=yes ;;
-+
-+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
-+ ac_prev=sbindir ;;
-+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
-+ | --sbi=* | --sb=*)
-+ sbindir="$ac_optarg" ;;
-+
-+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
-+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-+ | --sharedst | --shareds | --shared | --share | --shar \
-+ | --sha | --sh)
-+ ac_prev=sharedstatedir ;;
-+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
-+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
-+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
-+ | --sha=* | --sh=*)
-+ sharedstatedir="$ac_optarg" ;;
-+
-+ -site | --site | --sit)
-+ ac_prev=site ;;
-+ -site=* | --site=* | --sit=*)
-+ site="$ac_optarg" ;;
-+
-+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-+ ac_prev=srcdir ;;
-+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-+ srcdir="$ac_optarg" ;;
-+
-+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
-+ | --syscon | --sysco | --sysc | --sys | --sy)
-+ ac_prev=sysconfdir ;;
-+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
-+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-+ sysconfdir="$ac_optarg" ;;
-+
-+ -target | --target | --targe | --targ | --tar | --ta | --t)
-+ ac_prev=target ;;
-+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-+ target="$ac_optarg" ;;
-+
-+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
-+ verbose=yes ;;
-+
-+ -version | --version | --versio | --versi | --vers)
-+ echo "configure generated by autoconf version 2.13"
-+ exit 0 ;;
-+
-+ -with-* | --with-*)
-+ ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
-+ # Reject names that are not valid shell variable names.
-+ if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
-+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
-+ fi
-+ ac_package=`echo $ac_package| sed 's/-/_/g'`
-+ case "$ac_option" in
-+ *=*) ;;
-+ *) ac_optarg=yes ;;
-+ esac
-+ eval "with_${ac_package}='$ac_optarg'" ;;
-+
-+ -without-* | --without-*)
-+ ac_package=`echo $ac_option|sed -e 's/-*without-//'`
-+ # Reject names that are not valid shell variable names.
-+ if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
-+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
-+ fi
-+ ac_package=`echo $ac_package| sed 's/-/_/g'`
-+ eval "with_${ac_package}=no" ;;
-+
-+ --x)
-+ # Obsolete; use --with-x.
-+ with_x=yes ;;
-+
-+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
-+ | --x-incl | --x-inc | --x-in | --x-i)
-+ ac_prev=x_includes ;;
-+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
-+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-+ x_includes="$ac_optarg" ;;
-+
-+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
-+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
-+ ac_prev=x_libraries ;;
-+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
-+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-+ x_libraries="$ac_optarg" ;;
-+
-+ -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
-+ ;;
-+
-+ *)
-+ if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
-+ echo "configure: warning: $ac_option: invalid host type" 1>&2
-+ fi
-+ if test "x$nonopt" != xNONE; then
-+ { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
-+ fi
-+ nonopt="$ac_option"
-+ ;;
-+
-+ esac
-+done
-+
-+if test -n "$ac_prev"; then
-+ { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
-+fi
-+
-+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-+
-+# File descriptor usage:
-+# 0 standard input
-+# 1 file creation
-+# 2 errors and warnings
-+# 3 some systems may open it to /dev/tty
-+# 4 used on the Kubota Titan
-+# 6 checking for... messages and results
-+# 5 compiler messages saved in config.log
-+if test "$silent" = yes; then
-+ exec 6>/dev/null
-+else
-+ exec 6>&1
-+fi
-+exec 5>./config.log
-+
-+echo "\
-+This file contains any messages produced by compilers while
-+running configure, to aid debugging if configure makes a mistake.
-+" 1>&5
-+
-+# Strip out --no-create and --no-recursion so they do not pile up.
-+# Also quote any args containing shell metacharacters.
-+ac_configure_args=
-+for ac_arg
-+do
-+ case "$ac_arg" in
-+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-+ | --no-cr | --no-c) ;;
-+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
-+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
-+ ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-+ *) ac_configure_args="$ac_configure_args $ac_arg" ;;
-+ esac
-+done
-+
-+# NLS nuisances.
-+# Only set these to C if already set. These must not be set unconditionally
-+# because not all systems understand e.g. LANG=C (notably SCO).
-+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
-+# Non-C LC_CTYPE values break the ctype check.
-+if test "${LANG+set}" = set; then LANG=C; export LANG; fi
-+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
-+if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
-+
-+# confdefs.h avoids OS command line length limits that DEFS can exceed.
-+rm -rf conftest* confdefs.h
-+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-+echo > confdefs.h
-+
-+# A filename unique to this package, relative to the directory that
-+# configure is in, which we can look for to find out if srcdir is correct.
-+ac_unique_file=libcglue.c
-+
-+# Find the source files, if location was not specified.
-+if test -z "$srcdir"; then
-+ ac_srcdir_defaulted=yes
-+ # Try the directory containing this script, then its parent.
-+ ac_prog=$0
-+ ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
-+ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
-+ srcdir=$ac_confdir
-+ if test ! -r $srcdir/$ac_unique_file; then
-+ srcdir=..
-+ fi
-+else
-+ ac_srcdir_defaulted=no
-+fi
-+if test ! -r $srcdir/$ac_unique_file; then
-+ if test "$ac_srcdir_defaulted" = yes; then
-+ { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
-+ else
-+ { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
-+ fi
-+fi
-+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
-+
-+# Prefer explicitly selected file to automatically selected ones.
-+if test -z "$CONFIG_SITE"; then
-+ if test "x$prefix" != xNONE; then
-+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
-+ else
-+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
-+ fi
-+fi
-+for ac_site_file in $CONFIG_SITE; do
-+ if test -r "$ac_site_file"; then
-+ echo "loading site script $ac_site_file"
-+ . "$ac_site_file"
-+ fi
-+done
-+
-+if test -r "$cache_file"; then
-+ echo "loading cache $cache_file"
-+ . $cache_file
-+else
-+ echo "creating cache $cache_file"
-+ > $cache_file
-+fi
-+
-+ac_ext=c
-+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-+cross_compiling=$ac_cv_prog_cc_cross
-+
-+ac_exeext=
-+ac_objext=o
-+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
-+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
-+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
-+ ac_n= ac_c='
-+' ac_t=' '
-+ else
-+ ac_n=-n ac_c= ac_t=
-+ fi
-+else
-+ ac_n= ac_c='\c' ac_t=
-+fi
-+
-+
-+
-+ac_aux_dir=
-+for ac_dir in ../../../.. $srcdir/../../../..; do
-+ if test -f $ac_dir/install-sh; then
-+ ac_aux_dir=$ac_dir
-+ ac_install_sh="$ac_aux_dir/install-sh -c"
-+ break
-+ elif test -f $ac_dir/install.sh; then
-+ ac_aux_dir=$ac_dir
-+ ac_install_sh="$ac_aux_dir/install.sh -c"
-+ break
-+ fi
-+done
-+if test -z "$ac_aux_dir"; then
-+ { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; }
-+fi
-+ac_config_guess=$ac_aux_dir/config.guess
-+ac_config_sub=$ac_aux_dir/config.sub
-+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
-+
-+
-+am__api_version="1.4"
-+# Find a good install program. We prefer a C program (faster),
-+# so one script is as good as another. But avoid the broken or
-+# incompatible versions:
-+# SysV /etc/install, /usr/sbin/install
-+# SunOS /usr/etc/install
-+# IRIX /sbin/install
-+# AIX /bin/install
-+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-+# ./install, which can be erroneously created by make from ./install.sh.
-+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-+echo "configure:578: checking for a BSD compatible install" >&5
-+if test -z "$INSTALL"; then
-+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
-+ for ac_dir in $PATH; do
-+ # Account for people who put trailing slashes in PATH elements.
-+ case "$ac_dir/" in
-+ /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
-+ *)
-+ # OSF1 and SCO ODT 3.0 have their own names for install.
-+ # Don't use installbsd from OSF since it installs stuff as root
-+ # by default.
-+ for ac_prog in ginstall scoinst install; do
-+ if test -f $ac_dir/$ac_prog; then
-+ if test $ac_prog = install &&
-+ grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
-+ # AIX install. It has an incompatible calling convention.
-+ :
-+ else
-+ ac_cv_path_install="$ac_dir/$ac_prog -c"
-+ break 2
-+ fi
-+ fi
-+ done
-+ ;;
-+ esac
-+ done
-+ IFS="$ac_save_IFS"
-+
-+fi
-+ if test "${ac_cv_path_install+set}" = set; then
-+ INSTALL="$ac_cv_path_install"
-+ else
-+ # As a last resort, use the slow shell script. We don't cache a
-+ # path for INSTALL within a source directory, because that will
-+ # break other packages using the cache if that directory is
-+ # removed, or if the path is relative.
-+ INSTALL="$ac_install_sh"
-+ fi
-+fi
-+echo "$ac_t""$INSTALL" 1>&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_PROGRAM}'
-+
-+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-+
-+echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
-+echo "configure:631: checking whether build environment is sane" >&5
-+# Just in case
-+sleep 1
-+echo timestamp > conftestfile
-+# Do `set' in a subshell so we don't clobber the current shell's
-+# arguments. Must try -L first in case configure is actually a
-+# symlink; some systems play weird games with the mod time of symlinks
-+# (eg FreeBSD returns the mod time of the symlink's containing
-+# directory).
-+if (
-+ set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
-+ if test "$*" = "X"; then
-+ # -L didn't work.
-+ set X `ls -t $srcdir/configure conftestfile`
-+ fi
-+ if test "$*" != "X $srcdir/configure conftestfile" \
-+ && test "$*" != "X conftestfile $srcdir/configure"; then
-+
-+ # If neither matched, then we have a broken ls. This can happen
-+ # if, for instance, CONFIG_SHELL is bash and it inherits a
-+ # broken ls alias from the environment. This has actually
-+ # happened. Such a system could not be considered "sane".
-+ { echo "configure: error: ls -t appears to fail. Make sure there is not a broken
-+alias in your environment" 1>&2; exit 1; }
-+ fi
-+
-+ test "$2" = conftestfile
-+ )
-+then
-+ # Ok.
-+ :
-+else
-+ { echo "configure: error: newly created file is older than distributed files!
-+Check your system clock" 1>&2; exit 1; }
-+fi
-+rm -f conftest*
-+echo "$ac_t""yes" 1>&6
-+if test "$program_transform_name" = s,x,x,; then
-+ program_transform_name=
-+else
-+ # Double any \ or $. echo might interpret backslashes.
-+ cat <<\EOF_SED > conftestsed
-+s,\\,\\\\,g; s,\$,$$,g
-+EOF_SED
-+ program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
-+ rm -f conftestsed
-+fi
-+test "$program_prefix" != NONE &&
-+ 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"
-+
-+# sed with no file args requires a program.
-+test "$program_transform_name" = "" && program_transform_name="s,x,x,"
-+
-+echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-+echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5
-+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
-+if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ cat > conftestmake <<\EOF
-+all:
-+ @echo 'ac_maketemp="${MAKE}"'
-+EOF
-+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-+eval `${MAKE-make} -f conftestmake 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 conftestmake
-+fi
-+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
-+ echo "$ac_t""yes" 1>&6
-+ SET_MAKE=
-+else
-+ echo "$ac_t""no" 1>&6
-+ SET_MAKE="MAKE=${MAKE-make}"
-+fi
-+
-+if test $host != $build; then
-+ ac_tool_prefix=${host_alias}-
-+else
-+ ac_tool_prefix=
-+fi
-+
-+echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-+echo "configure:721: checking for Cygwin environment" >&5
-+if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then
-+ rm -rf conftest*
-+ ac_cv_cygwin=yes
-+else
-+ echo "configure: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ rm -rf conftest*
-+ ac_cv_cygwin=no
-+fi
-+rm -f conftest*
-+rm -f conftest*
-+fi
-+
-+echo "$ac_t""$ac_cv_cygwin" 1>&6
-+CYGWIN=
-+test "$ac_cv_cygwin" = yes && CYGWIN=yes
-+echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
-+echo "configure:754: checking for mingw32 environment" >&5
-+if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then
-+ rm -rf conftest*
-+ ac_cv_mingw32=yes
-+else
-+ echo "configure: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ rm -rf conftest*
-+ ac_cv_mingw32=no
-+fi
-+rm -f conftest*
-+rm -f conftest*
-+fi
-+
-+echo "$ac_t""$ac_cv_mingw32" 1>&6
-+MINGW32=
-+test "$ac_cv_mingw32" = yes && MINGW32=yes
-+
-+# Check whether --enable-multilib or --disable-multilib was given.
-+if test "${enable_multilib+set}" = set; then
-+ enableval="$enable_multilib"
-+ case "${enableval}" in
-+ yes) multilib=yes ;;
-+ no) multilib=no ;;
-+ *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;;
-+ esac
-+else
-+ multilib=yes
-+fi
-+
-+# Check whether --enable-target-optspace or --disable-target-optspace was given.
-+if test "${enable_target_optspace+set}" = set; then
-+ enableval="$enable_target_optspace"
-+ case "${enableval}" in
-+ yes) target_optspace=yes ;;
-+ no) target_optspace=no ;;
-+ *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;;
-+ esac
-+else
-+ target_optspace=
-+fi
-+
-+# Check whether --enable-malloc-debugging or --disable-malloc-debugging was given.
-+if test "${enable_malloc_debugging+set}" = set; then
-+ enableval="$enable_malloc_debugging"
-+ case "${enableval}" in
-+ yes) malloc_debugging=yes ;;
-+ no) malloc_debugging=no ;;
-+ *) { echo "configure: error: bad value ${enableval} for malloc-debugging option" 1>&2; exit 1; } ;;
-+ esac
-+else
-+ malloc_debugging=
-+fi
-+
-+# Check whether --enable-newlib-multithread or --disable-newlib-multithread was given.
-+if test "${enable_newlib_multithread+set}" = set; then
-+ enableval="$enable_newlib_multithread"
-+ case "${enableval}" in
-+ yes) newlib_multithread=yes ;;
-+ no) newlib_multithread=no ;;
-+ *) { echo "configure: error: bad value ${enableval} for newlib-multithread option" 1>&2; exit 1; } ;;
-+ esac
-+else
-+ newlib_multithread=yes
-+fi
-+
-+# Check whether --enable-newlib-iconv or --disable-newlib-iconv was given.
-+if test "${enable_newlib_iconv+set}" = set; then
-+ enableval="$enable_newlib_iconv"
-+ if test "${newlib_iconv+set}" != set; then
-+ case "${enableval}" in
-+ yes) newlib_iconv=yes ;;
-+ no) newlib_iconv=no ;;
-+ *) { echo "configure: error: bad value ${enableval} for newlib-iconv option" 1>&2; exit 1; } ;;
-+ esac
-+ fi
-+else
-+ newlib_iconv=${newlib_iconv}
-+fi
-+
-+# Check whether --enable-newlib-elix-level or --disable-newlib-elix-level was given.
-+if test "${enable_newlib_elix_level+set}" = set; then
-+ enableval="$enable_newlib_elix_level"
-+ case "${enableval}" in
-+ 0) newlib_elix_level=0 ;;
-+ 1) newlib_elix_level=1 ;;
-+ 2) newlib_elix_level=2 ;;
-+ 3) newlib_elix_level=3 ;;
-+ 4) newlib_elix_level=4 ;;
-+ *) { echo "configure: error: bad value ${enableval} for newlib-elix-level option" 1>&2; exit 1; } ;;
-+ esac
-+else
-+ newlib_elix_level=0
-+fi
-+
-+# Check whether --enable-newlib-io-float or --disable-newlib-io-float was given.
-+if test "${enable_newlib_io_float+set}" = set; then
-+ enableval="$enable_newlib_io_float"
-+ case "${enableval}" in
-+ yes) newlib_io_float=yes ;;
-+ no) newlib_io_float=no ;;
-+ *) { echo "configure: error: bad value ${enableval} for newlib-io-float option" 1>&2; exit 1; } ;;
-+ esac
-+else
-+ newlib_io_float=yes
-+fi
-+
-+# Check whether --enable-newlib-supplied-syscalls or --disable-newlib-supplied-syscalls was given.
-+if test "${enable_newlib_supplied_syscalls+set}" = set; then
-+ enableval="$enable_newlib_supplied_syscalls"
-+ case "${enableval}" in
-+ yes) newlib_may_supply_syscalls=yes ;;
-+ no) newlib_may_supply_syscalls=no ;;
-+ *) { echo "configure: error: bad value ${enableval} for newlib-supplied-syscalls option" 1>&2; exit 1; } ;;
-+ esac
-+else
-+ newlib_may_supply_syscalls=yes
-+fi
-+
-+
-+
-+if test x${newlib_may_supply_syscalls} = xyes; then
-+ MAY_SUPPLY_SYSCALLS_TRUE=
-+ MAY_SUPPLY_SYSCALLS_FALSE='#'
-+else
-+ MAY_SUPPLY_SYSCALLS_TRUE='#'
-+ MAY_SUPPLY_SYSCALLS_FALSE=
-+fi
-+
-+
-+test -z "${with_target_subdir}" && with_target_subdir=.
-+
-+if test "${srcdir}" = "."; then
-+ if test "${with_target_subdir}" != "."; then
-+ newlib_basedir="${srcdir}/${with_multisrctop}../../../.."
-+ else
-+ newlib_basedir="${srcdir}/${with_multisrctop}../../.."
-+ fi
-+else
-+ newlib_basedir="${srcdir}/../../.."
-+fi
-+
-+
-+
-+# Do some error checking and defaulting for the host and target type.
-+# The inputs are:
-+# configure --host=HOST --target=TARGET --build=BUILD NONOPT
-+#
-+# The rules are:
-+# 1. You are not allowed to specify --host, --target, and nonopt at the
-+# same time.
-+# 2. Host defaults to nonopt.
-+# 3. If nonopt is not specified, then host defaults to the current host,
-+# as determined by config.guess.
-+# 4. Target and build default to nonopt.
-+# 5. If nonopt is not specified, then target and build default to host.
-+
-+# The aliases save the names the user supplied, while $host etc.
-+# will get canonicalized.
-+case $host---$target---$nonopt in
-+NONE---*---* | *---NONE---* | *---*---NONE) ;;
-+*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;;
-+esac
-+
-+
-+# Make sure we can run config.sub.
-+if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
-+else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
-+fi
-+
-+echo $ac_n "checking host system type""... $ac_c" 1>&6
-+echo "configure:936: checking host system type" >&5
-+
-+host_alias=$host
-+case "$host_alias" in
-+NONE)
-+ case $nonopt in
-+ NONE)
-+ if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
-+ else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
-+ fi ;;
-+ *) host_alias=$nonopt ;;
-+ esac ;;
-+esac
-+
-+host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
-+host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-+host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-+host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-+echo "$ac_t""$host" 1>&6
-+
-+echo $ac_n "checking target system type""... $ac_c" 1>&6
-+echo "configure:957: checking target system type" >&5
-+
-+target_alias=$target
-+case "$target_alias" in
-+NONE)
-+ case $nonopt in
-+ NONE) target_alias=$host_alias ;;
-+ *) target_alias=$nonopt ;;
-+ esac ;;
-+esac
-+
-+target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias`
-+target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-+target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-+target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-+echo "$ac_t""$target" 1>&6
-+
-+echo $ac_n "checking build system type""... $ac_c" 1>&6
-+echo "configure:975: checking build system type" >&5
-+
-+build_alias=$build
-+case "$build_alias" in
-+NONE)
-+ case $nonopt in
-+ NONE) build_alias=$host_alias ;;
-+ *) build_alias=$nonopt ;;
-+ esac ;;
-+esac
-+
-+build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
-+build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-+build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-+build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-+echo "$ac_t""$build" 1>&6
-+
-+test "$host_alias" != "$target_alias" &&
-+ test "$program_prefix$program_suffix$program_transform_name" = \
-+ NONENONEs,x,x, &&
-+ program_prefix=${target_alias}-
-+
-+
-+
-+PACKAGE=newlib
-+
-+VERSION=1.13.0
-+
-+if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
-+ { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
-+fi
-+cat >> confdefs.h <> confdefs.h <&6
-+echo "configure:1018: checking for working aclocal-${am__api_version}" >&5
-+# Run test in a subshell; some versions of sh will print an error if
-+# an executable is not found, even if stderr is redirected.
-+# Redirect stdin to placate older versions of autoconf. Sigh.
-+if (aclocal-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then
-+ ACLOCAL=aclocal-${am__api_version}
-+ echo "$ac_t""found" 1>&6
-+else
-+ ACLOCAL="$missing_dir/missing aclocal-${am__api_version}"
-+ echo "$ac_t""missing" 1>&6
-+fi
-+
-+echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
-+echo "configure:1031: checking for working autoconf" >&5
-+# Run test in a subshell; some versions of sh will print an error if
-+# an executable is not found, even if stderr is redirected.
-+# Redirect stdin to placate older versions of autoconf. Sigh.
-+if (autoconf --version) < /dev/null > /dev/null 2>&1; then
-+ AUTOCONF=autoconf
-+ echo "$ac_t""found" 1>&6
-+else
-+ AUTOCONF="$missing_dir/missing autoconf"
-+ echo "$ac_t""missing" 1>&6
-+fi
-+
-+echo $ac_n "checking for working automake-${am__api_version}""... $ac_c" 1>&6
-+echo "configure:1044: checking for working automake-${am__api_version}" >&5
-+# Run test in a subshell; some versions of sh will print an error if
-+# an executable is not found, even if stderr is redirected.
-+# Redirect stdin to placate older versions of autoconf. Sigh.
-+if (automake-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then
-+ AUTOMAKE=automake-${am__api_version}
-+ echo "$ac_t""found" 1>&6
-+else
-+ AUTOMAKE="$missing_dir/missing automake-${am__api_version}"
-+ echo "$ac_t""missing" 1>&6
-+fi
-+
-+echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
-+echo "configure:1057: checking for working autoheader" >&5
-+# Run test in a subshell; some versions of sh will print an error if
-+# an executable is not found, even if stderr is redirected.
-+# Redirect stdin to placate older versions of autoconf. Sigh.
-+if (autoheader --version) < /dev/null > /dev/null 2>&1; then
-+ AUTOHEADER=autoheader
-+ echo "$ac_t""found" 1>&6
-+else
-+ AUTOHEADER="$missing_dir/missing autoheader"
-+ echo "$ac_t""missing" 1>&6
-+fi
-+
-+echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
-+echo "configure:1070: checking for working makeinfo" >&5
-+# Run test in a subshell; some versions of sh will print an error if
-+# an executable is not found, even if stderr is redirected.
-+# Redirect stdin to placate older versions of autoconf. Sigh.
-+if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
-+ MAKEINFO=makeinfo
-+ echo "$ac_t""found" 1>&6
-+else
-+ MAKEINFO="$missing_dir/missing makeinfo"
-+ echo "$ac_t""missing" 1>&6
-+fi
-+
-+
-+
-+# FIXME: We temporarily define our own version of AC_PROG_CC. This is
-+# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
-+# are probably using a cross compiler, which will not be able to fully
-+# link an executable. This should really be fixed in autoconf
-+# itself.
-+
-+
-+
-+# Extract the first word of "gcc", so it can be a program name with args.
-+set dummy gcc; ac_word=$2
-+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-+echo "configure:1095: checking for $ac_word" >&5
-+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ if test -n "$CC"; then
-+ ac_cv_prog_CC="$CC" # Let the user override the test.
-+else
-+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
-+ ac_dummy="$PATH"
-+ for ac_dir in $ac_dummy; do
-+ test -z "$ac_dir" && ac_dir=.
-+ if test -f $ac_dir/$ac_word; then
-+ ac_cv_prog_CC="gcc"
-+ break
-+ fi
-+ done
-+ IFS="$ac_save_ifs"
-+fi
-+fi
-+CC="$ac_cv_prog_CC"
-+if test -n "$CC"; then
-+ echo "$ac_t""$CC" 1>&6
-+else
-+ echo "$ac_t""no" 1>&6
-+fi
-+
-+if test -z "$CC"; then
-+ # Extract the first word of "cc", so it can be a program name with args.
-+set dummy cc; ac_word=$2
-+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-+echo "configure:1125: checking for $ac_word" >&5
-+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ if test -n "$CC"; then
-+ ac_cv_prog_CC="$CC" # Let the user override the test.
-+else
-+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
-+ ac_prog_rejected=no
-+ ac_dummy="$PATH"
-+ for ac_dir in $ac_dummy; do
-+ test -z "$ac_dir" && ac_dir=.
-+ if test -f $ac_dir/$ac_word; then
-+ if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
-+ ac_prog_rejected=yes
-+ continue
-+ fi
-+ ac_cv_prog_CC="cc"
-+ break
-+ fi
-+ done
-+ IFS="$ac_save_ifs"
-+if test $ac_prog_rejected = yes; then
-+ # We found a bogon in the path, so make sure we never use it.
-+ set dummy $ac_cv_prog_CC
-+ shift
-+ if test $# -gt 0; then
-+ # We chose a different compiler from the bogus one.
-+ # However, it has the same basename, so the bogon will be chosen
-+ # first if we set CC to just the basename; use the full file name.
-+ shift
-+ set dummy "$ac_dir/$ac_word" "$@"
-+ shift
-+ ac_cv_prog_CC="$@"
-+ fi
-+fi
-+fi
-+fi
-+CC="$ac_cv_prog_CC"
-+if test -n "$CC"; then
-+ echo "$ac_t""$CC" 1>&6
-+else
-+ echo "$ac_t""no" 1>&6
-+fi
-+
-+ test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
-+fi
-+
-+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-+echo "configure:1174: checking whether we are using GNU C" >&5
-+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
-+ ac_cv_prog_gcc=yes
-+else
-+ ac_cv_prog_gcc=no
-+fi
-+fi
-+
-+echo "$ac_t""$ac_cv_prog_gcc" 1>&6
-+
-+if test $ac_cv_prog_gcc = yes; then
-+ GCC=yes
-+ ac_test_CFLAGS="${CFLAGS+set}"
-+ ac_save_CFLAGS="$CFLAGS"
-+ CFLAGS=
-+ echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-+echo "configure:1198: checking whether ${CC-cc} accepts -g" >&5
-+if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ echo 'void f(){}' > conftest.c
-+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
-+ ac_cv_prog_cc_g=yes
-+else
-+ ac_cv_prog_cc_g=no
-+fi
-+rm -f conftest*
-+
-+fi
-+
-+echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
-+ if test "$ac_test_CFLAGS" = set; then
-+ CFLAGS="$ac_save_CFLAGS"
-+ elif test $ac_cv_prog_cc_g = yes; then
-+ CFLAGS="-g -O2"
-+ else
-+ CFLAGS="-O2"
-+ fi
-+else
-+ GCC=
-+ test "${CFLAGS+set}" = set || CFLAGS="-g"
-+fi
-+
-+
-+# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
-+set dummy ${ac_tool_prefix}as; ac_word=$2
-+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-+echo "configure:1229: checking for $ac_word" >&5
-+if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ if test -n "$AS"; then
-+ ac_cv_prog_AS="$AS" # Let the user override the test.
-+else
-+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
-+ ac_dummy="$PATH"
-+ for ac_dir in $ac_dummy; do
-+ test -z "$ac_dir" && ac_dir=.
-+ if test -f $ac_dir/$ac_word; then
-+ ac_cv_prog_AS="${ac_tool_prefix}as"
-+ break
-+ fi
-+ done
-+ IFS="$ac_save_ifs"
-+ test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as"
-+fi
-+fi
-+AS="$ac_cv_prog_AS"
-+if test -n "$AS"; then
-+ echo "$ac_t""$AS" 1>&6
-+else
-+ echo "$ac_t""no" 1>&6
-+fi
-+
-+
-+
-+# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-+set dummy ${ac_tool_prefix}ar; ac_word=$2
-+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-+echo "configure:1261: checking for $ac_word" >&5
-+if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ if test -n "$AR"; then
-+ ac_cv_prog_AR="$AR" # Let the user override the test.
-+else
-+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
-+ ac_dummy="$PATH"
-+ for ac_dir in $ac_dummy; do
-+ test -z "$ac_dir" && ac_dir=.
-+ if test -f $ac_dir/$ac_word; then
-+ ac_cv_prog_AR="${ac_tool_prefix}ar"
-+ break
-+ fi
-+ done
-+ IFS="$ac_save_ifs"
-+ test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar"
-+fi
-+fi
-+AR="$ac_cv_prog_AR"
-+if test -n "$AR"; then
-+ echo "$ac_t""$AR" 1>&6
-+else
-+ echo "$ac_t""no" 1>&6
-+fi
-+
-+
-+
-+# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-+echo "configure:1293: checking for $ac_word" >&5
-+if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ if test -n "$RANLIB"; then
-+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-+else
-+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
-+ ac_dummy="$PATH"
-+ for ac_dir in $ac_dummy; do
-+ test -z "$ac_dir" && ac_dir=.
-+ if test -f $ac_dir/$ac_word; then
-+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-+ break
-+ fi
-+ done
-+ IFS="$ac_save_ifs"
-+fi
-+fi
-+RANLIB="$ac_cv_prog_RANLIB"
-+if test -n "$RANLIB"; then
-+ echo "$ac_t""$RANLIB" 1>&6
-+else
-+ echo "$ac_t""no" 1>&6
-+fi
-+
-+
-+if test -z "$ac_cv_prog_RANLIB"; then
-+if test -n "$ac_tool_prefix"; then
-+ # Extract the first word of "ranlib", so it can be a program name with args.
-+set dummy ranlib; ac_word=$2
-+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-+echo "configure:1325: checking for $ac_word" >&5
-+if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ if test -n "$RANLIB"; then
-+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-+else
-+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
-+ ac_dummy="$PATH"
-+ for ac_dir in $ac_dummy; do
-+ test -z "$ac_dir" && ac_dir=.
-+ if test -f $ac_dir/$ac_word; then
-+ ac_cv_prog_RANLIB="ranlib"
-+ break
-+ fi
-+ done
-+ IFS="$ac_save_ifs"
-+ test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
-+fi
-+fi
-+RANLIB="$ac_cv_prog_RANLIB"
-+if test -n "$RANLIB"; then
-+ echo "$ac_t""$RANLIB" 1>&6
-+else
-+ echo "$ac_t""no" 1>&6
-+fi
-+
-+else
-+ RANLIB=":"
-+fi
-+fi
-+
-+
-+# Find a good install program. We prefer a C program (faster),
-+# so one script is as good as another. But avoid the broken or
-+# incompatible versions:
-+# SysV /etc/install, /usr/sbin/install
-+# SunOS /usr/etc/install
-+# IRIX /sbin/install
-+# AIX /bin/install
-+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-+# ./install, which can be erroneously created by make from ./install.sh.
-+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-+echo "configure:1370: checking for a BSD compatible install" >&5
-+if test -z "$INSTALL"; then
-+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
-+ for ac_dir in $PATH; do
-+ # Account for people who put trailing slashes in PATH elements.
-+ case "$ac_dir/" in
-+ /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
-+ *)
-+ # OSF1 and SCO ODT 3.0 have their own names for install.
-+ # Don't use installbsd from OSF since it installs stuff as root
-+ # by default.
-+ for ac_prog in ginstall scoinst install; do
-+ if test -f $ac_dir/$ac_prog; then
-+ if test $ac_prog = install &&
-+ grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
-+ # AIX install. It has an incompatible calling convention.
-+ :
-+ else
-+ ac_cv_path_install="$ac_dir/$ac_prog -c"
-+ break 2
-+ fi
-+ fi
-+ done
-+ ;;
-+ esac
-+ done
-+ IFS="$ac_save_IFS"
-+
-+fi
-+ if test "${ac_cv_path_install+set}" = set; then
-+ INSTALL="$ac_cv_path_install"
-+ else
-+ # As a last resort, use the slow shell script. We don't cache a
-+ # path for INSTALL within a source directory, because that will
-+ # break other packages using the cache if that directory is
-+ # removed, or if the path is relative.
-+ INSTALL="$ac_install_sh"
-+ fi
-+fi
-+echo "$ac_t""$INSTALL" 1>&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_PROGRAM}'
-+
-+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-+
-+
-+echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-+echo "configure:1424: checking whether to enable maintainer-specific portions of Makefiles" >&5
-+ # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
-+if test "${enable_maintainer_mode+set}" = set; then
-+ enableval="$enable_maintainer_mode"
-+ USE_MAINTAINER_MODE=$enableval
-+else
-+ USE_MAINTAINER_MODE=no
-+fi
-+
-+ echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6
-+
-+
-+if test $USE_MAINTAINER_MODE = yes; then
-+ MAINTAINER_MODE_TRUE=
-+ MAINTAINER_MODE_FALSE='#'
-+else
-+ MAINTAINER_MODE_TRUE='#'
-+ MAINTAINER_MODE_FALSE=
-+fi
-+ MAINT=$MAINTAINER_MODE_TRUE
-+
-+
-+
-+# We need AC_EXEEXT to keep automake happy in cygnus mode. However,
-+# at least currently, we never actually build a program, so we never
-+# need to use $(EXEEXT). Moreover, the test for EXEEXT normally
-+# fails, because we are probably configuring with a cross compiler
-+# which can't create executables. So we include AC_EXEEXT to keep
-+# automake happy, but we don't execute it, since we don't care about
-+# the result.
-+if false; then
-+
-+
-+echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-+echo "configure:1458: checking for executable suffix" >&5
-+if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
-+ ac_cv_exeext=.exe
-+else
-+ rm -f conftest*
-+ echo 'int main () { return 0; }' > conftest.$ac_ext
-+ ac_cv_exeext=
-+ if { (eval echo configure:1468: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
-+ for file in conftest.*; do
-+ case $file in
-+ *.c | *.o | *.obj) ;;
-+ *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
-+ esac
-+ done
-+ else
-+ { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; }
-+ fi
-+ rm -f conftest*
-+ test x"${ac_cv_exeext}" = x && ac_cv_exeext=no
-+fi
-+fi
-+
-+EXEEXT=""
-+test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext}
-+echo "$ac_t""${ac_cv_exeext}" 1>&6
-+ac_exeext=$EXEEXT
-+
-+fi
-+
-+. ${newlib_basedir}/configure.host
-+
-+newlib_cflags="${newlib_cflags} -fno-builtin"
-+
-+NEWLIB_CFLAGS=${newlib_cflags}
-+
-+
-+LDFLAGS=${ldflags}
-+
-+
-+
-+
-+if test x${newlib_elix_level} = x0; then
-+ ELIX_LEVEL_0_TRUE=
-+ ELIX_LEVEL_0_FALSE='#'
-+else
-+ ELIX_LEVEL_0_TRUE='#'
-+ ELIX_LEVEL_0_FALSE=
-+fi
-+
-+
-+if test x${newlib_elix_level} = x1; then
-+ ELIX_LEVEL_1_TRUE=
-+ ELIX_LEVEL_1_FALSE='#'
-+else
-+ ELIX_LEVEL_1_TRUE='#'
-+ ELIX_LEVEL_1_FALSE=
-+fi
-+
-+
-+if test x${newlib_elix_level} = x2; then
-+ ELIX_LEVEL_2_TRUE=
-+ ELIX_LEVEL_2_FALSE='#'
-+else
-+ ELIX_LEVEL_2_TRUE='#'
-+ ELIX_LEVEL_2_FALSE=
-+fi
-+
-+
-+if test x${newlib_elix_level} = x3; then
-+ ELIX_LEVEL_3_TRUE=
-+ ELIX_LEVEL_3_FALSE='#'
-+else
-+ ELIX_LEVEL_3_TRUE='#'
-+ ELIX_LEVEL_3_FALSE=
-+fi
-+
-+
-+if test x${newlib_elix_level} = x4; then
-+ ELIX_LEVEL_4_TRUE=
-+ ELIX_LEVEL_4_FALSE='#'
-+else
-+ ELIX_LEVEL_4_TRUE='#'
-+ ELIX_LEVEL_4_FALSE=
-+fi
-+
-+
-+
-+if test x${use_libtool} = xyes; then
-+ USE_LIBTOOL_TRUE=
-+ USE_LIBTOOL_FALSE='#'
-+else
-+ USE_LIBTOOL_TRUE='#'
-+ USE_LIBTOOL_FALSE=
-+fi
-+
-+# Hard-code OBJEXT. Normally it is set by AC_OBJEXT, but we
-+# use oext, which is set in configure.host based on the target platform.
-+OBJEXT=${oext}
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+trap '' 1 2 15
-+cat > confcache <<\EOF
-+# This file is a shell script that caches the results of configure
-+# tests run on this system so they can be shared between configure
-+# scripts and configure runs. It is not useful on other systems.
-+# If it contains results you don't want to keep, you may remove or edit it.
-+#
-+# By default, configure uses ./config.cache as the cache file,
-+# creating it if it does not exist already. You can give configure
-+# the --cache-file=FILE option to use a different cache file; that is
-+# what configure does when it calls configure scripts in
-+# subdirectories, so they share the cache.
-+# Giving --cache-file=/dev/null disables caching, for debugging configure.
-+# config.status only pays attention to the cache file if you give it the
-+# --recheck option to rerun configure.
-+#
-+EOF
-+# The following way of writing the cache mishandles newlines in values,
-+# but we know of no workaround that is simple, portable, and efficient.
-+# So, don't put newlines in cache variables' values.
-+# Ultrix sh set writes to stderr and can't be redirected directly,
-+# and sets the high bit in the cache file unless we assign to the vars.
-+(set) 2>&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 \
-+ -e "s/'/'\\\\''/g" \
-+ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
-+ ;;
-+ *)
-+ # `set' quotes correctly as required by POSIX, so do not add quotes.
-+ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
-+ ;;
-+ esac >> confcache
-+if cmp -s $cache_file confcache; then
-+ :
-+else
-+ if test -w $cache_file; then
-+ echo "updating cache $cache_file"
-+ cat confcache > $cache_file
-+ else
-+ echo "not updating unwritable cache $cache_file"
-+ fi
-+fi
-+rm -f confcache
-+
-+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-+
-+test "x$prefix" = xNONE && prefix=$ac_default_prefix
-+# Let make expand exec_prefix.
-+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-+
-+# Any assignment to VPATH causes Sun make to only execute
-+# the first set of double-colon rules, so remove it if not needed.
-+# If there is a colon in the path, we need to keep it.
-+if test "x$srcdir" = x.; then
-+ ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
-+fi
-+
-+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-+
-+# Transform confdefs.h into DEFS.
-+# Protect against shell expansion while executing Makefile rules.
-+# Protect against Makefile macro expansion.
-+cat > conftest.defs <<\EOF
-+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
-+s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
-+s%\[%\\&%g
-+s%\]%\\&%g
-+s%\$%$$%g
-+EOF
-+DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
-+rm -f conftest.defs
-+
-+
-+# Without the "./", some shells look in PATH for config.status.
-+: ${CONFIG_STATUS=./config.status}
-+
-+echo creating $CONFIG_STATUS
-+rm -f $CONFIG_STATUS
-+cat > $CONFIG_STATUS </dev/null | sed 1q`:
-+#
-+# $0 $ac_configure_args
-+#
-+# Compiler output produced by configure, useful for debugging
-+# configure, is in ./config.log if it exists.
-+
-+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-+for ac_option
-+do
-+ case "\$ac_option" in
-+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-+ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
-+ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
-+ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
-+ echo "$CONFIG_STATUS generated by autoconf version 2.13"
-+ exit 0 ;;
-+ -help | --help | --hel | --he | --h)
-+ echo "\$ac_cs_usage"; exit 0 ;;
-+ *) echo "\$ac_cs_usage"; exit 1 ;;
-+ esac
-+done
-+
-+ac_given_srcdir=$srcdir
-+ac_given_INSTALL="$INSTALL"
-+
-+trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
-+EOF
-+cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF
-+$ac_vpsub
-+$extrasub
-+s%@SHELL@%$SHELL%g
-+s%@CFLAGS@%$CFLAGS%g
-+s%@CPPFLAGS@%$CPPFLAGS%g
-+s%@CXXFLAGS@%$CXXFLAGS%g
-+s%@FFLAGS@%$FFLAGS%g
-+s%@DEFS@%$DEFS%g
-+s%@LDFLAGS@%$LDFLAGS%g
-+s%@LIBS@%$LIBS%g
-+s%@exec_prefix@%$exec_prefix%g
-+s%@prefix@%$prefix%g
-+s%@program_transform_name@%$program_transform_name%g
-+s%@bindir@%$bindir%g
-+s%@sbindir@%$sbindir%g
-+s%@libexecdir@%$libexecdir%g
-+s%@datadir@%$datadir%g
-+s%@sysconfdir@%$sysconfdir%g
-+s%@sharedstatedir@%$sharedstatedir%g
-+s%@localstatedir@%$localstatedir%g
-+s%@libdir@%$libdir%g
-+s%@includedir@%$includedir%g
-+s%@oldincludedir@%$oldincludedir%g
-+s%@infodir@%$infodir%g
-+s%@mandir@%$mandir%g
-+s%@MAY_SUPPLY_SYSCALLS_TRUE@%$MAY_SUPPLY_SYSCALLS_TRUE%g
-+s%@MAY_SUPPLY_SYSCALLS_FALSE@%$MAY_SUPPLY_SYSCALLS_FALSE%g
-+s%@newlib_basedir@%$newlib_basedir%g
-+s%@host@%$host%g
-+s%@host_alias@%$host_alias%g
-+s%@host_cpu@%$host_cpu%g
-+s%@host_vendor@%$host_vendor%g
-+s%@host_os@%$host_os%g
-+s%@target@%$target%g
-+s%@target_alias@%$target_alias%g
-+s%@target_cpu@%$target_cpu%g
-+s%@target_vendor@%$target_vendor%g
-+s%@target_os@%$target_os%g
-+s%@build@%$build%g
-+s%@build_alias@%$build_alias%g
-+s%@build_cpu@%$build_cpu%g
-+s%@build_vendor@%$build_vendor%g
-+s%@build_os@%$build_os%g
-+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
-+s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
-+s%@INSTALL_DATA@%$INSTALL_DATA%g
-+s%@PACKAGE@%$PACKAGE%g
-+s%@VERSION@%$VERSION%g
-+s%@ACLOCAL@%$ACLOCAL%g
-+s%@AUTOCONF@%$AUTOCONF%g
-+s%@AUTOMAKE@%$AUTOMAKE%g
-+s%@AUTOHEADER@%$AUTOHEADER%g
-+s%@MAKEINFO@%$MAKEINFO%g
-+s%@SET_MAKE@%$SET_MAKE%g
-+s%@CC@%$CC%g
-+s%@AS@%$AS%g
-+s%@AR@%$AR%g
-+s%@RANLIB@%$RANLIB%g
-+s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g
-+s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g
-+s%@MAINT@%$MAINT%g
-+s%@EXEEXT@%$EXEEXT%g
-+s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g
-+s%@ELIX_LEVEL_0_TRUE@%$ELIX_LEVEL_0_TRUE%g
-+s%@ELIX_LEVEL_0_FALSE@%$ELIX_LEVEL_0_FALSE%g
-+s%@ELIX_LEVEL_1_TRUE@%$ELIX_LEVEL_1_TRUE%g
-+s%@ELIX_LEVEL_1_FALSE@%$ELIX_LEVEL_1_FALSE%g
-+s%@ELIX_LEVEL_2_TRUE@%$ELIX_LEVEL_2_TRUE%g
-+s%@ELIX_LEVEL_2_FALSE@%$ELIX_LEVEL_2_FALSE%g
-+s%@ELIX_LEVEL_3_TRUE@%$ELIX_LEVEL_3_TRUE%g
-+s%@ELIX_LEVEL_3_FALSE@%$ELIX_LEVEL_3_FALSE%g
-+s%@ELIX_LEVEL_4_TRUE@%$ELIX_LEVEL_4_TRUE%g
-+s%@ELIX_LEVEL_4_FALSE@%$ELIX_LEVEL_4_FALSE%g
-+s%@USE_LIBTOOL_TRUE@%$USE_LIBTOOL_TRUE%g
-+s%@USE_LIBTOOL_FALSE@%$USE_LIBTOOL_FALSE%g
-+s%@OBJEXT@%$OBJEXT%g
-+s%@oext@%$oext%g
-+s%@aext@%$aext%g
-+s%@libm_machine_dir@%$libm_machine_dir%g
-+s%@machine_dir@%$machine_dir%g
-+s%@sys_dir@%$sys_dir%g
-+
-+CEOF
-+EOF
-+
-+cat >> $CONFIG_STATUS <<\EOF
-+
-+# Split the substitutions into bite-sized pieces for seds with
-+# small command number limits, like on Digital OSF/1 and HP-UX.
-+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
-+ac_file=1 # Number of current file.
-+ac_beg=1 # First line for current file.
-+ac_end=$ac_max_sed_cmds # Line after last line for current file.
-+ac_more_lines=:
-+ac_sed_cmds=""
-+while $ac_more_lines; do
-+ if test $ac_beg -gt 1; then
-+ sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
-+ else
-+ sed "${ac_end}q" conftest.subs > conftest.s$ac_file
-+ fi
-+ if test ! -s conftest.s$ac_file; then
-+ ac_more_lines=false
-+ rm -f conftest.s$ac_file
-+ else
-+ if test -z "$ac_sed_cmds"; then
-+ ac_sed_cmds="sed -f conftest.s$ac_file"
-+ else
-+ ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
-+ fi
-+ ac_file=`expr $ac_file + 1`
-+ ac_beg=$ac_end
-+ ac_end=`expr $ac_end + $ac_max_sed_cmds`
-+ fi
-+done
-+if test -z "$ac_sed_cmds"; then
-+ ac_sed_cmds=cat
-+fi
-+EOF
-+
-+cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF
-+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
-+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-+ case "$ac_file" in
-+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
-+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
-+ *) ac_file_in="${ac_file}.in" ;;
-+ esac
-+
-+ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
-+
-+ # Remove last slash and all that follows it. Not all systems have dirname.
-+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
-+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
-+ # The file is in a subdirectory.
-+ test ! -d "$ac_dir" && mkdir "$ac_dir"
-+ ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
-+ # A "../" for each directory in $ac_dir_suffix.
-+ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
-+ else
-+ ac_dir_suffix= ac_dots=
-+ fi
-+
-+ case "$ac_given_srcdir" in
-+ .) srcdir=.
-+ if test -z "$ac_dots"; then top_srcdir=.
-+ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
-+ /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
-+ *) # Relative path.
-+ srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
-+ top_srcdir="$ac_dots$ac_given_srcdir" ;;
-+ esac
-+
-+ case "$ac_given_INSTALL" in
-+ [/$]*) INSTALL="$ac_given_INSTALL" ;;
-+ *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
-+ esac
-+
-+ echo creating "$ac_file"
-+ rm -f "$ac_file"
-+ configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
-+ case "$ac_file" in
-+ *Makefile*) ac_comsub="1i\\
-+# $configure_input" ;;
-+ *) ac_comsub= ;;
-+ esac
-+
-+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
-+ sed -e "$ac_comsub
-+s%@configure_input@%$configure_input%g
-+s%@srcdir@%$srcdir%g
-+s%@top_srcdir@%$top_srcdir%g
-+s%@INSTALL@%$INSTALL%g
-+" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
-+fi; done
-+rm -f conftest.s*
-+
-+EOF
-+cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF
-+
-+exit 0
-+EOF
-+chmod +x $CONFIG_STATUS
-+rm -fr confdefs* $ac_clean_files
-+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
-+
---- newlib-1.13.0.orig/newlib/libc/sys/psp/configure.in 1969-12-31 19:00:00.000000000 -0500
-+++ newlib-psp/newlib/libc/sys/psp/configure.in 2005-07-28 15:42:00.000000000 -0400
-@@ -0,0 +1,12 @@
-+dnl This is the newlib/libc/sys/psp configure.in file.
-+dnl Process this file with autoconf to produce a configure script.
-+
-+AC_PREREQ(2.5)
-+AC_INIT(libcglue.c)
-+
-+dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake.
-+AC_CONFIG_AUX_DIR(../../../..)
-+
-+NEWLIB_CONFIGURE(../../..)
-+
-+AC_OUTPUT(Makefile)
---- newlib-1.13.0.orig/newlib/libc/sys/psp/crt0.c 1969-12-31 19:00:00.000000000 -0500
-+++ newlib-psp/newlib/libc/sys/psp/crt0.c 2005-07-28 15:42:00.000000000 -0400
-@@ -0,0 +1,3 @@
-+/* The real crt0.c lives in PSPSDK. */
-+
-+void _start() { }
---- newlib-1.13.0.orig/newlib/libc/sys/psp/libcglue.c 1969-12-31 19:00:00.000000000 -0500
-+++ newlib-psp/newlib/libc/sys/psp/libcglue.c 2005-10-17 17:53:39.000000000 -0400
-@@ -0,0 +1,667 @@
-+/*
-+ * 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
-+ * Copyright (c) 2005 James Forshaw
-+ * Copyright (c) 2005 John Kelley
-+ * Copyright (c) 2005 Jim Paris
-+ *
-+ */
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+
-+/* These functions aren't exposed in any public headers, and they probably don't need to be. */
-+int sceKernelStdin(void);
-+int sceKernelStdout(void);
-+int sceKernelStderr(void);
-+
-+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);
-+
-+#define __PSP_FILENO_MAX 1024
-+extern char * __psp_filename_map[__PSP_FILENO_MAX];
-+
-+#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 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 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 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;
-+ }
-+
-+ fd = sceIoOpen(dest, sce_flags, mode);
-+ if ((fd >= 0) && (fd < __PSP_FILENO_MAX)) {
-+ __psp_filename_map[fd] = strdup(dest);
-+ }
-+ return fd;
-+}
-+#endif
-+
-+#ifdef F__close
-+int _close(int fd)
-+{
-+ if (fd < 0) {
-+ return -EBADF;
-+ }
-+
-+ if ((fd >= 0) && (fd < __PSP_FILENO_MAX)) {
-+ if (__psp_filename_map[fd] != NULL) {
-+ free(__psp_filename_map[fd]);
-+ __psp_filename_map[fd] = NULL;
-+ }
-+ }
-+
-+ return sceIoClose(fd);
-+}
-+#endif
-+
-+#ifdef F__read
-+int _read(int fd, void *buf, size_t size)
-+{
-+ if (fd < 0) {
-+ return -EBADF;
-+ }
-+
-+ return sceIoRead(fd, buf, size);
-+}
-+#endif
-+
-+#ifdef F__write
-+int _write(int fd, const void *buf, size_t size)
-+{
-+ if (fd < 0) {
-+ return -EBADF;
-+ }
-+
-+ return sceIoWrite(fd, buf, size);
-+}
-+#endif
-+
-+#ifdef F__lseek
-+off_t _lseek(int fd, off_t offset, int whence)
-+{
-+ if (fd < 0) {
-+ return -EBADF;
-+ }
-+
-+ /* We don't have to do anything with the whence argument because SEEK_* == PSP_SEEK_*. */
-+ return (off_t) sceIoLseek(fd, offset, whence);
-+}
-+#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 sceIoRemove(dest);
-+}
-+#endif
-+
-+#ifdef F__link
-+int _link(const char *name1, const char *name2)
-+{
-+ 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);
-+ return NULL;
-+ }
-+
-+ dirp->uid = uid;
-+
-+ return dirp;
-+}
-+#endif
-+
-+#ifdef F_readdir
-+struct dirent *readdir(DIR *dirp)
-+{
-+ SceIoDirent *de;
-+
-+ de = (SceIoDirent *)malloc(sizeof(SceIoDirent));
-+
-+ if (sceIoDread(dirp->uid, de) <= 0)
-+ {
-+ free(de);
-+ return NULL;
-+ }
-+
-+ return (struct dirent *)de;
-+}
-+#endif
-+
-+#ifdef F_closedir
-+int closedir(DIR *dirp)
-+{
-+ if (dirp != NULL)
-+ {
-+ int uid;
-+ uid = dirp->uid;
-+ free (dirp);
-+ return sceIoDclose(uid);
-+ }
-+ 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 sceKernelLibcGettimeofday(tp, tzp);
-+}
-+
-+#endif
-+
-+/* If we're being built for PSPSDK's libc this function isn't defined. */
-+#ifdef F_glue_gettimeofday
-+int gettimeofday(struct timeval *tp, struct timezone *tzp)
-+{
-+ return sceKernelLibcGettimeofday(tp, tzp);
-+}
-+#endif
-+
-+#if defined(F_clock) || defined(F_glue_clock)
-+clock_t clock(void)
-+{
-+ return sceKernelLibcClock();
-+}
-+#endif
-+
-+#if defined(F_time) || defined(F_glue_time)
-+time_t time(time_t *t)
-+{
-+ return 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));
-+
-+/* 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 {
-+ /* TODO: Here we should distinguish between a PRX and a normal
-+ executable. Right now we assume it's an executable. */
-+ if (0 /* is a prx */) {
-+ 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 ((fd >= 0) && (fd < __PSP_FILENO_MAX)) {
-+ if (__psp_filename_map[fd] != NULL) {
-+ if (strcmp(__psp_filename_map[fd], " __PSP_STDIO") == 0) {
-+ memset(sbuf, '\0', sizeof(struct stat));
-+ sbuf->st_mode = S_IFCHR;
-+ return 0;
-+ } else {
-+ ret = stat(__psp_filename_map[fd], sbuf);
-+ /* Find true size of open file */
-+ oldpos = sceIoLseek(fd, 0, SEEK_CUR);
-+ if (oldpos != (off_t) -1) {
-+ sbuf->st_size = (off_t) sceIoLseek(fd, 0, SEEK_END);
-+ sceIoLseek(fd, oldpos, SEEK_SET);
-+ }
-+ return ret;
-+ }
-+ }
-+ }
-+ errno = EBADF;
-+ return -1;
-+}
-+#endif
-+
-+#ifdef F_isatty
-+int isatty(int fd)
-+{
-+ if ((fd >= 0) && (fd < __PSP_FILENO_MAX)) {
-+ if (__psp_filename_map[fd] != NULL) {
-+ if (strcmp(__psp_filename_map[fd], " __PSP_STDIO") == 0) {
-+ return 1;
-+ } else {
-+ return 0;
-+ }
-+ }
-+ }
-+ 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];
-+
-+ if(__psp_path_absolute(filename, dest, MAXPATHLEN) < 0) {
-+ errno = ENAMETOOLONG;
-+ return -1;
-+ }
-+
-+ memset(buf, '\0', sizeof(struct stat));
-+ if(sceIoGetstat(dest, &psp_stat) < 0)
-+ return -1;
-+
-+ 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 sceIoChstat(dest, &psp_stat, FIO_CST_SIZE);
-+}
-+#endif
-+
-+/* Unsupported newlib system calls. */
-+#ifdef F__fork
-+pid_t fork(void)
-+{
-+ return (pid_t) -1;
-+}
-+#endif
-+
-+#ifdef F__getpid
-+pid_t _getpid(void)
-+{
-+ return (pid_t) -1;
-+}
-+#endif
-+
-+#ifdef F__kill
-+int _kill(int unused, int unused2)
-+{
-+ return -1;
-+}
-+#endif
-+
-+#ifdef F__wait
-+pid_t _wait(int *unused)
-+{
-+ 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;
-+ return -1;
-+ }
-+ return 0;
-+}
-+#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[])
-+{
-+ int fd;
-+ (void) argc;
-+
-+ /* Initialize cwd from this program's path */
-+ __psp_init_cwd(argv[0]);
-+
-+ /* Initialize filenamap */
-+ memset(__psp_filename_map, '\0', sizeof(char *) * __PSP_FILENO_MAX);
-+ fd = sceKernelStdin();
-+ if ((fd >= 0) && (fd < __PSP_FILENO_MAX)) {
-+ __psp_filename_map[fd] = strdup(" __PSP_STDIO");
-+ }
-+ fd = sceKernelStdout();
-+ if ((fd >= 0) && (fd < __PSP_FILENO_MAX)) {
-+ __psp_filename_map[fd] = strdup(" __PSP_STDIO");
-+ }
-+ fd = sceKernelStderr();
-+ if ((fd >= 0) && (fd < __PSP_FILENO_MAX)) {
-+ __psp_filename_map[fd] = strdup(" __PSP_STDIO");
-+ }
-+
-+ /* 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;
-+ static char tz[10];
-+ sprintf(tz, "GMT%s%02i:%02i", tzOffset < 0 ? "+" : "-", hours, minutes);
-+ setenv("TZ", tz, 1);
-+ tzset();
-+}
-+
-+#endif /* F__exit */
-+
-+/* newlib's errno.h wants a function that returns a pointer to errno. */
-+#ifdef F_glue___errno
-+#undef errno
-+
-+int errno;
-+
-+/* TODO: Should this be made reentrant (wrapping interrupt disable/enable
-+ around it should do it)? */
-+int * __errno(void)
-+{
-+ return &errno;
-+}
-+#endif
---- newlib-1.13.0.orig/newlib/libc/sys/psp/pspcwd.c 1969-12-31 19:00:00.000000000 -0500
-+++ newlib-psp/newlib/libc/sys/psp/pspcwd.c 2005-10-06 05:24:40.000000000 -0400
-@@ -0,0 +1,167 @@
-+/*
-+ * 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
-+ * Copyright (c) 2005 James Forshaw
-+ * Copyright (c) 2005 John Kelley
-+ * Copyright (c) 2005 Jim Paris
-+ *
-+ */
-+#include
-+#include
-+#include
-+
-+#include
-+#include
-+
-+char __psp_cwd[MAXPATHLEN + 1] = { 0 };
-+char * __psp_filename_map[1024];
-+
-+/* 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);
-+}
-+
---- newlib-1.13.0.orig/newlib/libc/sys/psp/sys/dirent.h 1969-12-31 19:00:00.000000000 -0500
-+++ newlib-psp/newlib/libc/sys/psp/sys/dirent.h 2005-09-29 21:21:33.000000000 -0400
-@@ -0,0 +1,35 @@
-+#ifndef _SYS_DIRENT_H
-+#define _SYS_DIRENT_H
-+
-+/* PSP dirent.h, based on pspiofilemgr_dirent.h
-+ by Jim Paris */
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+/* Defines DIR */
-+#include
-+
-+#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;
-+};
-+
-+DIR *opendir (const char *);
-+struct dirent *readdir (DIR *);
-+int closedir (DIR *);
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif
+--- newlib-1.13.0.orig/config.sub 2004-11-15 20:18:39.000000000 -0500
++++ newlib-psp/config.sub 2005-07-06 22:53:22.000000000 -0400
+@@ -253,6 +253,7 @@
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipstx39 | mipstx39el \
++ | mipsallegrex | mipsallegrexel \
+ | mn10200 | mn10300 \
+ | msp430 \
+ | ns16k | ns32k \
+@@ -326,6 +327,7 @@
+ | mipsisa64sb1-* | mipsisa64sb1el-* \
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipstx39-* | mipstx39el-* \
++ | mipsallegrex-* | mipsallegrexel-* \
+ | mmix-* \
+ | msp430-* \
+ | none-* | np1-* | ns16k-* | ns32k-* \
+@@ -665,6 +667,10 @@
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
++ psp)
++ basic_machine=mipsallegrexel-psp
++ os=-elf
++ ;;
+ mips3*-*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+ ;;
+--- newlib-1.13.0.orig/configure 2004-12-16 14:51:28.000000000 -0500
++++ newlib-psp/configure 2005-07-06 22:53:22.000000000 -0400
+@@ -1507,6 +1507,9 @@
+ mips*-*-linux*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
++ mipsallegrex*-*-*)
++ noconfigdirs="$noconfigdirs target-libgloss"
++ ;;
+ mips*-*-*)
+ noconfigdirs="$noconfigdirs gprof ${libgcj}"
+ ;;
+--- newlib-1.13.0.orig/configure.in 2004-12-16 14:51:28.000000000 -0500
++++ newlib-psp/configure.in 2005-07-06 22:53:22.000000000 -0400
+@@ -716,6 +716,9 @@
+ mips*-*-linux*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
++ mipsallegrex*-*-*)
++ noconfigdirs="$noconfigdirs target-libgloss"
++ ;;
+ mips*-*-*)
+ noconfigdirs="$noconfigdirs gprof ${libgcj}"
+ ;;
+--- newlib-1.13.0.orig/newlib/configure.host 2004-10-05 15:44:24.000000000 -0400
++++ newlib-psp/newlib/configure.host 2005-07-28 15:42:00.000000000 -0400
+@@ -570,7 +570,14 @@
+ ;;
+ mips*-*-elf*)
+ default_newlib_io_long_long="yes"
+- newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES"
++ case "${host}" in
++ mipsallegrex*-psp-*)
++ sys_dir=psp
++ syscall_dir=syscalls
++ newlib_cflags="${newlib_cflags} -G0 -DPREFER_SIZE_OVER_SPEED -DCOMPACT_CTYPE -DCLOCK_PROVIDED -I${prefix}/psp/sdk/include" ;;
++ *)
++ newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" ;;
++ esac
+ ;;
+ mmix-*)
+ syscall_dir=syscalls
+--- newlib-1.13.0.orig/newlib/libc/include/machine/time.h 2000-12-04 14:06:37.000000000 -0500
++++ newlib-psp/newlib/libc/include/machine/time.h 2005-10-24 16:08:22.000000000 -0400
+@@ -9,6 +9,10 @@
+ #endif
+ #endif /* !__rtems__ */
+
++#if defined(__psp__)
++#define _CLOCKS_PER_SEC_ 1000000
++#endif
++
+ #endif /* _MACHTIME_H_ */
+
+
+--- newlib-1.13.0.orig/newlib/libc/include/sys/config.h 2004-06-22 17:54:51.000000000 -0400
++++ newlib-psp/newlib/libc/include/sys/config.h 2005-08-16 16:40:10.000000000 -0400
+@@ -94,6 +94,12 @@
+ #endif
+ #endif
+
++/* We compile newlib with -G0 for PSP, but if we're compiling an app with $gp enabled,
++ then _impure_ptr is expected to live in .sdata. */
++#if defined(__psp__)
++#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
++#endif
++
+ #ifdef __xstormy16__
+ #define __SMALL_BITFIELDS
+ #undef INT_MAX
+--- newlib-1.13.0.orig/newlib/libc/sys/psp/Makefile.am 1969-12-31 19:00:00.000000000 -0500
++++ newlib-psp/newlib/libc/sys/psp/Makefile.am 2005-11-01 03:28:52.000000000 -0500
+@@ -0,0 +1,31 @@
++## Process this file with automake to generate Makefile.in
++
++AUTOMAKE_OPTIONS = cygnus
++
++INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
++
++noinst_LIBRARIES = lib.a
++
++LIBCGLUE_MULT_OBJS = _close.o _exit.o _fork.o _fstat.o _getpid.o \
++ _gettimeofday.o _kill.o _lseek.o _open.o _read.o \
++ _sbrk.o _wait.o _write.o clock.o isatty.o time.o \
++ _link.o _unlink.o sleep.o opendir.o readdir.o \
++ closedir.o getcwd.o chdir.o mkdir.o rmdir.o \
++ realpath.o _stat.o truncate.o access.o tzset.o \
++ __psp_set_errno.o
++
++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
++
++lib_a_SOURCES = libcglue.c pspcwd.c xprintf.c
++lib_a_LIBADD = $(LIBCGLUE_MULT_OBJS) $(XPRINTF_MULT_OBJS)
++
++all: crt0.o
++
++$(LIBCGLUE_MULT_OBJS): libcglue.c
++ $(COMPILE) -DF_$* $< -c -o $@
++
++$(XPRINTF_MULT_OBJS): xprintf.c
++ $(COMPILE) -DF_$* $< -c -o $@
++
++ACLOCAL_AMFLAGS = -I ../../..
++CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
+--- newlib-1.13.0.orig/newlib/libc/sys/psp/Makefile.in 1969-12-31 19:00:00.000000000 -0500
++++ newlib-psp/newlib/libc/sys/psp/Makefile.in 2005-11-01 03:28:52.000000000 -0500
+@@ -0,0 +1,352 @@
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
++
++# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
++# This Makefile.in is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
++
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
++# PARTICULAR PURPOSE.
++
++
++SHELL = @SHELL@
++
++srcdir = @srcdir@
++top_srcdir = @top_srcdir@
++VPATH = @srcdir@
++prefix = @prefix@
++exec_prefix = @exec_prefix@
++
++bindir = @bindir@
++sbindir = @sbindir@
++libexecdir = @libexecdir@
++datadir = @datadir@
++sysconfdir = @sysconfdir@
++sharedstatedir = @sharedstatedir@
++localstatedir = @localstatedir@
++libdir = @libdir@
++infodir = @infodir@
++mandir = @mandir@
++includedir = @includedir@
++oldincludedir = /usr/include
++
++DESTDIR =
++
++pkgdatadir = $(datadir)/@PACKAGE@
++pkglibdir = $(libdir)/@PACKAGE@
++pkgincludedir = $(includedir)/@PACKAGE@
++
++top_builddir = .
++
++ACLOCAL = @ACLOCAL@
++AUTOCONF = @AUTOCONF@
++AUTOMAKE = @AUTOMAKE@
++AUTOHEADER = @AUTOHEADER@
++
++INSTALL = @INSTALL@
++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
++INSTALL_DATA = @INSTALL_DATA@
++INSTALL_SCRIPT = @INSTALL_SCRIPT@
++transform = @program_transform_name@
++
++NORMAL_INSTALL = :
++PRE_INSTALL = :
++POST_INSTALL = :
++NORMAL_UNINSTALL = :
++PRE_UNINSTALL = :
++POST_UNINSTALL = :
++build_alias = @build_alias@
++build_triplet = @build@
++host_alias = @host_alias@
++host_triplet = @host@
++target_alias = @target_alias@
++target_triplet = @target@
++AR = @AR@
++AS = @AS@
++CC = @CC@
++CPP = @CPP@
++EXEEXT = @EXEEXT@
++HAVE_LIB = @HAVE_LIB@
++LDFLAGS = @LDFLAGS@
++LIB = @LIB@
++LTLIB = @LTLIB@
++MAINT = @MAINT@
++MAKEINFO = @MAKEINFO@
++NEWLIB_CFLAGS = @NEWLIB_CFLAGS@
++OBJEXT = @OBJEXT@
++PACKAGE = @PACKAGE@
++RANLIB = @RANLIB@
++VERSION = @VERSION@
++aext = @aext@
++libm_machine_dir = @libm_machine_dir@
++machine_dir = @machine_dir@
++newlib_basedir = @newlib_basedir@
++oext = @oext@
++sys_dir = @sys_dir@
++
++AUTOMAKE_OPTIONS = cygnus
++
++INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
++
++noinst_LIBRARIES = lib.a
++
++LIBCGLUE_MULT_OBJS = _close.o _exit.o _fork.o _fstat.o _getpid.o _gettimeofday.o _kill.o _lseek.o _open.o _read.o _sbrk.o _wait.o _write.o clock.o isatty.o time.o _link.o _unlink.o sleep.o opendir.o readdir.o closedir.o getcwd.o chdir.o mkdir.o rmdir.o realpath.o _stat.o truncate.o access.o tzset.o __psp_set_errno.o
++
++
++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
++
++lib_a_SOURCES = libcglue.c pspcwd.c xprintf.c
++lib_a_LIBADD = $(LIBCGLUE_MULT_OBJS) $(XPRINTF_MULT_OBJS)
++
++ACLOCAL_AMFLAGS = -I ../../..
++CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
++mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs
++CONFIG_CLEAN_FILES =
++LIBRARIES = $(noinst_LIBRARIES)
++
++
++DEFS = @DEFS@ -I. -I$(srcdir)
++CPPFLAGS = @CPPFLAGS@
++LIBS = @LIBS@
++lib_a_DEPENDENCIES = _close.o _exit.o _fork.o _fstat.o _getpid.o \
++_gettimeofday.o _kill.o _lseek.o _open.o _read.o _sbrk.o _wait.o \
++_write.o clock.o isatty.o time.o _link.o _unlink.o sleep.o opendir.o \
++readdir.o closedir.o getcwd.o chdir.o mkdir.o rmdir.o realpath.o \
++_stat.o truncate.o access.o __psp_set_errno.o vxprintf.o _xprintf.o \
++__sout.o vsnprintf.o snprintf.o vsprintf.o sprintf.o __mout.o \
++mprintf.o vmprintf.o asprintf.o vasprintf.o __fout.o fprintf.o \
++vfprintf.o printf.o vprintf.o tzset.o
++lib_a_OBJECTS = libcglue.o pspcwd.o xprintf.o
++CFLAGS = @CFLAGS@
++COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
++CCLD = $(CC)
++LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
++DIST_COMMON = README Makefile.am Makefile.in aclocal.m4 configure \
++configure.in
++
++
++DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
++
++TAR = tar
++GZIP_ENV = --best
++SOURCES = $(lib_a_SOURCES)
++OBJECTS = $(lib_a_OBJECTS)
++
++all: all-redirect
++.SUFFIXES:
++.SUFFIXES: .S .c .o .s
++$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
++ cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile
++
++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
++ cd $(top_builddir) \
++ && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
++
++$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in \
++ ../../../acinclude.m4 ../../../aclocal.m4 \
++ ../../../libtool.m4
++ cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
++
++config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
++ $(SHELL) ./config.status --recheck
++$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
++ cd $(srcdir) && $(AUTOCONF)
++
++mostlyclean-noinstLIBRARIES:
++
++clean-noinstLIBRARIES:
++ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
++
++distclean-noinstLIBRARIES:
++
++maintainer-clean-noinstLIBRARIES:
++
++.c.o:
++ $(COMPILE) -c $<
++
++.s.o:
++ $(COMPILE) -c $<
++
++.S.o:
++ $(COMPILE) -c $<
++
++mostlyclean-compile:
++ -rm -f *.o core *.core
++
++clean-compile:
++
++distclean-compile:
++ -rm -f *.tab.c
++
++maintainer-clean-compile:
++
++lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES)
++ -rm -f lib.a
++ $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD)
++ $(RANLIB) lib.a
++
++tags: TAGS
++
++ID: $(HEADERS) $(SOURCES) $(LISP)
++ list='$(SOURCES) $(HEADERS)'; \
++ unique=`for i in $$list; do echo $$i; done | \
++ awk ' { files[$$0] = 1; } \
++ END { for (i in files) print i; }'`; \
++ here=`pwd` && cd $(srcdir) \
++ && mkid -f$$here/ID $$unique $(LISP)
++
++TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
++ tags=; \
++ here=`pwd`; \
++ list='$(SOURCES) $(HEADERS)'; \
++ unique=`for i in $$list; do echo $$i; done | \
++ awk ' { files[$$0] = 1; } \
++ END { for (i in files) print i; }'`; \
++ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
++ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP))
++
++mostlyclean-tags:
++
++clean-tags:
++
++distclean-tags:
++ -rm -f TAGS ID
++
++maintainer-clean-tags:
++
++distdir = $(PACKAGE)-$(VERSION)
++top_distdir = $(distdir)
++
++# This target untars the dist file and tries a VPATH configuration. Then
++# it guarantees that the distribution is self-contained by making another
++# tarfile.
++distcheck: dist
++ -rm -rf $(distdir)
++ GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
++ mkdir $(distdir)/=build
++ mkdir $(distdir)/=inst
++ dc_install_base=`cd $(distdir)/=inst && pwd`; \
++ cd $(distdir)/=build \
++ && ../configure --srcdir=.. --prefix=$$dc_install_base \
++ && $(MAKE) $(AM_MAKEFLAGS) \
++ && $(MAKE) $(AM_MAKEFLAGS) dvi \
++ && $(MAKE) $(AM_MAKEFLAGS) check \
++ && $(MAKE) $(AM_MAKEFLAGS) install \
++ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
++ && $(MAKE) $(AM_MAKEFLAGS) dist
++ -rm -rf $(distdir)
++ @banner="$(distdir).tar.gz is ready for distribution"; \
++ dashes=`echo "$$banner" | sed s/./=/g`; \
++ echo "$$dashes"; \
++ echo "$$banner"; \
++ echo "$$dashes"
++dist: distdir
++ -chmod -R a+r $(distdir)
++ GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
++ -rm -rf $(distdir)
++dist-all: distdir
++ -chmod -R a+r $(distdir)
++ GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
++ -rm -rf $(distdir)
++distdir: $(DISTFILES)
++ -rm -rf $(distdir)
++ mkdir $(distdir)
++ -chmod 777 $(distdir)
++ @for file in $(DISTFILES); do \
++ if test -f $$file; then d=.; else d=$(srcdir); fi; \
++ if test -d $$d/$$file; then \
++ cp -pr $$d/$$file $(distdir)/$$file; \
++ else \
++ test -f $(distdir)/$$file \
++ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
++ || cp -p $$d/$$file $(distdir)/$$file || :; \
++ fi; \
++ done
++info-am:
++info: info-am
++dvi-am:
++dvi: dvi-am
++check-am:
++check: check-am
++installcheck-am:
++installcheck: installcheck-am
++install-info-am:
++install-info: install-info-am
++install-exec-am:
++install-exec: install-exec-am
++
++install-data-am:
++install-data: install-data-am
++
++install-am: all-am
++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
++install: install-am
++uninstall-am:
++uninstall: uninstall-am
++all-am: Makefile $(LIBRARIES)
++all-redirect: all-am
++install-strip:
++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
++installdirs:
++
++
++mostlyclean-generic:
++
++clean-generic:
++
++distclean-generic:
++ -rm -f Makefile $(CONFIG_CLEAN_FILES)
++ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
++
++maintainer-clean-generic:
++mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \
++ mostlyclean-tags mostlyclean-generic
++
++mostlyclean: mostlyclean-am
++
++clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \
++ mostlyclean-am
++
++clean: clean-am
++
++distclean-am: distclean-noinstLIBRARIES distclean-compile \
++ distclean-tags distclean-generic clean-am
++
++distclean: distclean-am
++ -rm -f config.status
++
++maintainer-clean-am: maintainer-clean-noinstLIBRARIES \
++ maintainer-clean-compile maintainer-clean-tags \
++ maintainer-clean-generic distclean-am
++ @echo "This command is intended for maintainers to use;"
++ @echo "it deletes files that may require special tools to rebuild."
++
++maintainer-clean: maintainer-clean-am
++ -rm -f config.status
++
++.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
++clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
++mostlyclean-compile distclean-compile clean-compile \
++maintainer-clean-compile tags mostlyclean-tags distclean-tags \
++clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \
++check-am installcheck-am installcheck install-info-am install-info \
++install-exec-am install-exec install-data-am install-data install-am \
++install uninstall-am uninstall all-redirect all-am all installdirs \
++mostlyclean-generic distclean-generic clean-generic \
++maintainer-clean-generic clean mostlyclean distclean maintainer-clean
++
++
++all: crt0.o
++
++$(LIBCGLUE_MULT_OBJS): libcglue.c
++ $(COMPILE) -DF_$* $< -c -o $@
++
++$(XPRINTF_MULT_OBJS): xprintf.c
++ $(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:
+--- newlib-1.13.0.orig/newlib/libc/sys/psp/README 1969-12-31 19:00:00.000000000 -0500
++++ newlib-psp/newlib/libc/sys/psp/README 2005-07-28 15:42:00.000000000 -0400
+@@ -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
+--- newlib-1.13.0.orig/newlib/libc/sys/psp/aclocal.m4 1969-12-31 19:00:00.000000000 -0500
++++ newlib-psp/newlib/libc/sys/psp/aclocal.m4 2005-09-29 21:46:30.000000000 -0400
+@@ -0,0 +1,1185 @@
++dnl aclocal.m4 generated automatically by aclocal 1.4-p6
++
++dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
++dnl This file is free software; the Free Software Foundation
++dnl gives unlimited permission to copy and/or distribute it,
++dnl with or without modifications, as long as this notice is preserved.
++
++dnl This program is distributed in the hope that it will be useful,
++dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
++dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
++dnl PARTICULAR PURPOSE.
++
++# lib-prefix.m4 serial 4 (gettext-0.14.2)
++dnl Copyright (C) 2001-2005 Free Software Foundation, Inc.
++dnl This file is free software; the Free Software Foundation
++dnl gives unlimited permission to copy and/or distribute it,
++dnl with or without modifications, as long as this notice is preserved.
++
++dnl From Bruno Haible.
++
++dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
++dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
++dnl require excessive bracketing.
++ifdef([AC_HELP_STRING],
++[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
++[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
++
++dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
++dnl to access previously installed libraries. The basic assumption is that
++dnl a user will want packages to use other packages he previously installed
++dnl with the same --prefix option.
++dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
++dnl libraries, but is otherwise very convenient.
++AC_DEFUN([AC_LIB_PREFIX],
++[
++ AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
++ AC_REQUIRE([AC_PROG_CC])
++ AC_REQUIRE([AC_CANONICAL_HOST])
++ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
++ dnl By default, look in $includedir and $libdir.
++ use_additional=yes
++ AC_LIB_WITH_FINAL_PREFIX([
++ eval additional_includedir=\"$includedir\"
++ eval additional_libdir=\"$libdir\"
++ ])
++ AC_LIB_ARG_WITH([lib-prefix],
++[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
++ --without-lib-prefix don't search for libraries in includedir and libdir],
++[
++ if test "X$withval" = "Xno"; then
++ use_additional=no
++ else
++ if test "X$withval" = "X"; then
++ AC_LIB_WITH_FINAL_PREFIX([
++ eval additional_includedir=\"$includedir\"
++ eval additional_libdir=\"$libdir\"
++ ])
++ else
++ additional_includedir="$withval/include"
++ additional_libdir="$withval/lib"
++ fi
++ fi
++])
++ if test $use_additional = yes; then
++ dnl Potentially add $additional_includedir to $CPPFLAGS.
++ dnl But don't add it
++ dnl 1. if it's the standard /usr/include,
++ dnl 2. if it's already present in $CPPFLAGS,
++ dnl 3. if it's /usr/local/include and we are using GCC on Linux,
++ dnl 4. if it doesn't exist as a directory.
++ if test "X$additional_includedir" != "X/usr/include"; then
++ haveit=
++ for x in $CPPFLAGS; do
++ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
++ if test "X$x" = "X-I$additional_includedir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ if test "X$additional_includedir" = "X/usr/local/include"; then
++ if test -n "$GCC"; then
++ case $host_os in
++ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
++ esac
++ fi
++ fi
++ if test -z "$haveit"; then
++ if test -d "$additional_includedir"; then
++ dnl Really add $additional_includedir to $CPPFLAGS.
++ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
++ fi
++ fi
++ fi
++ fi
++ dnl Potentially add $additional_libdir to $LDFLAGS.
++ dnl But don't add it
++ dnl 1. if it's the standard /usr/lib,
++ dnl 2. if it's already present in $LDFLAGS,
++ dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
++ dnl 4. if it doesn't exist as a directory.
++ if test "X$additional_libdir" != "X/usr/lib"; then
++ haveit=
++ for x in $LDFLAGS; do
++ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
++ if test "X$x" = "X-L$additional_libdir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ if test "X$additional_libdir" = "X/usr/local/lib"; then
++ if test -n "$GCC"; then
++ case $host_os in
++ linux*) haveit=yes;;
++ esac
++ fi
++ fi
++ if test -z "$haveit"; then
++ if test -d "$additional_libdir"; then
++ dnl Really add $additional_libdir to $LDFLAGS.
++ LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
++ fi
++ fi
++ fi
++ fi
++ fi
++])
++
++dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
++dnl acl_final_exec_prefix, containing the values to which $prefix and
++dnl $exec_prefix will expand at the end of the configure script.
++AC_DEFUN([AC_LIB_PREPARE_PREFIX],
++[
++ dnl Unfortunately, prefix and exec_prefix get only finally determined
++ dnl at the end of configure.
++ if test "X$prefix" = "XNONE"; then
++ acl_final_prefix="$ac_default_prefix"
++ else
++ acl_final_prefix="$prefix"
++ fi
++ if test "X$exec_prefix" = "XNONE"; then
++ acl_final_exec_prefix='${prefix}'
++ else
++ acl_final_exec_prefix="$exec_prefix"
++ fi
++ acl_save_prefix="$prefix"
++ prefix="$acl_final_prefix"
++ eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
++ prefix="$acl_save_prefix"
++])
++
++dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
++dnl variables prefix and exec_prefix bound to the values they will have
++dnl at the end of the configure script.
++AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
++[
++ acl_save_prefix="$prefix"
++ prefix="$acl_final_prefix"
++ acl_save_exec_prefix="$exec_prefix"
++ exec_prefix="$acl_final_exec_prefix"
++ $1
++ exec_prefix="$acl_save_exec_prefix"
++ prefix="$acl_save_prefix"
++])
++
++# lib-link.m4 serial 6 (gettext-0.14.3)
++dnl Copyright (C) 2001-2005 Free Software Foundation, Inc.
++dnl This file is free software; the Free Software Foundation
++dnl gives unlimited permission to copy and/or distribute it,
++dnl with or without modifications, as long as this notice is preserved.
++
++dnl From Bruno Haible.
++
++AC_PREREQ(2.50)
++
++dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
++dnl the libraries corresponding to explicit and implicit dependencies.
++dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
++dnl augments the CPPFLAGS variable.
++AC_DEFUN([AC_LIB_LINKFLAGS],
++[
++ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
++ AC_REQUIRE([AC_LIB_RPATH])
++ define([Name],[translit([$1],[./-], [___])])
++ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
++ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
++ AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
++ AC_LIB_LINKFLAGS_BODY([$1], [$2])
++ ac_cv_lib[]Name[]_libs="$LIB[]NAME"
++ ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
++ ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
++ ])
++ LIB[]NAME="$ac_cv_lib[]Name[]_libs"
++ LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
++ INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
++ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
++ AC_SUBST([LIB]NAME)
++ AC_SUBST([LTLIB]NAME)
++ dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
++ dnl results of this search when this library appears as a dependency.
++ HAVE_LIB[]NAME=yes
++ undefine([Name])
++ undefine([NAME])
++])
++
++dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
++dnl searches for libname and the libraries corresponding to explicit and
++dnl implicit dependencies, together with the specified include files and
++dnl the ability to compile and link the specified testcode. If found, it
++dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
++dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
++dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
++dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
++AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
++[
++ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
++ AC_REQUIRE([AC_LIB_RPATH])
++ define([Name],[translit([$1],[./-], [___])])
++ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
++ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
++
++ dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
++ dnl accordingly.
++ AC_LIB_LINKFLAGS_BODY([$1], [$2])
++
++ dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
++ dnl because if the user has installed lib[]Name and not disabled its use
++ dnl via --without-lib[]Name-prefix, he wants to use it.
++ ac_save_CPPFLAGS="$CPPFLAGS"
++ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
++
++ AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
++ ac_save_LIBS="$LIBS"
++ LIBS="$LIBS $LIB[]NAME"
++ AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
++ LIBS="$ac_save_LIBS"
++ ])
++ if test "$ac_cv_lib[]Name" = yes; then
++ HAVE_LIB[]NAME=yes
++ AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
++ AC_MSG_CHECKING([how to link with lib[]$1])
++ AC_MSG_RESULT([$LIB[]NAME])
++ else
++ HAVE_LIB[]NAME=no
++ dnl If $LIB[]NAME didn't lead to a usable library, we don't need
++ dnl $INC[]NAME either.
++ CPPFLAGS="$ac_save_CPPFLAGS"
++ LIB[]NAME=
++ LTLIB[]NAME=
++ fi
++ AC_SUBST([HAVE_LIB]NAME)
++ AC_SUBST([LIB]NAME)
++ AC_SUBST([LTLIB]NAME)
++ undefine([Name])
++ undefine([NAME])
++])
++
++dnl Determine the platform dependent parameters needed to use rpath:
++dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
++dnl hardcode_direct, hardcode_minus_L.
++AC_DEFUN([AC_LIB_RPATH],
++[
++ dnl Tell automake >= 1.10 to complain if config.rpath is missing.
++ m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
++ AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
++ AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
++ AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
++ AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
++ AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
++ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
++ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
++ . ./conftest.sh
++ rm -f ./conftest.sh
++ acl_cv_rpath=done
++ ])
++ wl="$acl_cv_wl"
++ libext="$acl_cv_libext"
++ shlibext="$acl_cv_shlibext"
++ hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
++ hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
++ hardcode_direct="$acl_cv_hardcode_direct"
++ hardcode_minus_L="$acl_cv_hardcode_minus_L"
++ dnl Determine whether the user wants rpath handling at all.
++ AC_ARG_ENABLE(rpath,
++ [ --disable-rpath do not hardcode runtime library paths],
++ :, enable_rpath=yes)
++])
++
++dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
++dnl the libraries corresponding to explicit and implicit dependencies.
++dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
++AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
++[
++ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
++ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
++ dnl By default, look in $includedir and $libdir.
++ use_additional=yes
++ AC_LIB_WITH_FINAL_PREFIX([
++ eval additional_includedir=\"$includedir\"
++ eval additional_libdir=\"$libdir\"
++ ])
++ AC_LIB_ARG_WITH([lib$1-prefix],
++[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib
++ --without-lib$1-prefix don't search for lib$1 in includedir and libdir],
++[
++ if test "X$withval" = "Xno"; then
++ use_additional=no
++ else
++ if test "X$withval" = "X"; then
++ AC_LIB_WITH_FINAL_PREFIX([
++ eval additional_includedir=\"$includedir\"
++ eval additional_libdir=\"$libdir\"
++ ])
++ else
++ additional_includedir="$withval/include"
++ additional_libdir="$withval/lib"
++ fi
++ fi
++])
++ dnl Search the library and its dependencies in $additional_libdir and
++ dnl $LDFLAGS. Using breadth-first-seach.
++ LIB[]NAME=
++ LTLIB[]NAME=
++ INC[]NAME=
++ rpathdirs=
++ ltrpathdirs=
++ names_already_handled=
++ names_next_round='$1 $2'
++ while test -n "$names_next_round"; do
++ names_this_round="$names_next_round"
++ names_next_round=
++ for name in $names_this_round; do
++ already_handled=
++ for n in $names_already_handled; do
++ if test "$n" = "$name"; then
++ already_handled=yes
++ break
++ fi
++ done
++ if test -z "$already_handled"; then
++ names_already_handled="$names_already_handled $name"
++ dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
++ dnl or AC_LIB_HAVE_LINKFLAGS call.
++ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
++ eval value=\"\$HAVE_LIB$uppername\"
++ if test -n "$value"; then
++ if test "$value" = yes; then
++ eval value=\"\$LIB$uppername\"
++ test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
++ eval value=\"\$LTLIB$uppername\"
++ test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
++ else
++ dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
++ dnl that this library doesn't exist. So just drop it.
++ :
++ fi
++ else
++ dnl Search the library lib$name in $additional_libdir and $LDFLAGS
++ dnl and the already constructed $LIBNAME/$LTLIBNAME.
++ found_dir=
++ found_la=
++ found_so=
++ found_a=
++ if test $use_additional = yes; then
++ if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
++ found_dir="$additional_libdir"
++ found_so="$additional_libdir/lib$name.$shlibext"
++ if test -f "$additional_libdir/lib$name.la"; then
++ found_la="$additional_libdir/lib$name.la"
++ fi
++ else
++ if test -f "$additional_libdir/lib$name.$libext"; then
++ found_dir="$additional_libdir"
++ found_a="$additional_libdir/lib$name.$libext"
++ if test -f "$additional_libdir/lib$name.la"; then
++ found_la="$additional_libdir/lib$name.la"
++ fi
++ fi
++ fi
++ fi
++ if test "X$found_dir" = "X"; then
++ for x in $LDFLAGS $LTLIB[]NAME; do
++ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
++ case "$x" in
++ -L*)
++ dir=`echo "X$x" | sed -e 's/^X-L//'`
++ if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
++ found_dir="$dir"
++ found_so="$dir/lib$name.$shlibext"
++ if test -f "$dir/lib$name.la"; then
++ found_la="$dir/lib$name.la"
++ fi
++ else
++ if test -f "$dir/lib$name.$libext"; then
++ found_dir="$dir"
++ found_a="$dir/lib$name.$libext"
++ if test -f "$dir/lib$name.la"; then
++ found_la="$dir/lib$name.la"
++ fi
++ fi
++ fi
++ ;;
++ esac
++ if test "X$found_dir" != "X"; then
++ break
++ fi
++ done
++ fi
++ if test "X$found_dir" != "X"; then
++ dnl Found the library.
++ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
++ if test "X$found_so" != "X"; then
++ dnl Linking with a shared library. We attempt to hardcode its
++ dnl directory into the executable's runpath, unless it's the
++ dnl standard /usr/lib.
++ if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
++ dnl No hardcoding is needed.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
++ else
++ dnl Use an explicit option to hardcode DIR into the resulting
++ dnl binary.
++ dnl Potentially add DIR to ltrpathdirs.
++ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
++ haveit=
++ for x in $ltrpathdirs; do
++ if test "X$x" = "X$found_dir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ ltrpathdirs="$ltrpathdirs $found_dir"
++ fi
++ dnl The hardcoding into $LIBNAME is system dependent.
++ if test "$hardcode_direct" = yes; then
++ dnl Using DIR/libNAME.so during linking hardcodes DIR into the
++ dnl resulting binary.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
++ else
++ if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
++ dnl Use an explicit option to hardcode DIR into the resulting
++ dnl binary.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
++ dnl Potentially add DIR to rpathdirs.
++ dnl The rpathdirs will be appended to $LIBNAME at the end.
++ haveit=
++ for x in $rpathdirs; do
++ if test "X$x" = "X$found_dir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ rpathdirs="$rpathdirs $found_dir"
++ fi
++ else
++ dnl Rely on "-L$found_dir".
++ dnl But don't add it if it's already contained in the LDFLAGS
++ dnl or the already constructed $LIBNAME
++ haveit=
++ for x in $LDFLAGS $LIB[]NAME; do
++ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
++ if test "X$x" = "X-L$found_dir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
++ fi
++ if test "$hardcode_minus_L" != no; then
++ dnl FIXME: Not sure whether we should use
++ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
++ dnl here.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
++ else
++ dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
++ dnl here, because this doesn't fit in flags passed to the
++ dnl compiler. So give up. No hardcoding. This affects only
++ dnl very old systems.
++ dnl FIXME: Not sure whether we should use
++ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
++ dnl here.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
++ fi
++ fi
++ fi
++ fi
++ else
++ if test "X$found_a" != "X"; then
++ dnl Linking with a static library.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
++ else
++ dnl We shouldn't come here, but anyway it's good to have a
++ dnl fallback.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
++ fi
++ fi
++ dnl Assume the include files are nearby.
++ additional_includedir=
++ case "$found_dir" in
++ */lib | */lib/)
++ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
++ additional_includedir="$basedir/include"
++ ;;
++ esac
++ if test "X$additional_includedir" != "X"; then
++ dnl Potentially add $additional_includedir to $INCNAME.
++ dnl But don't add it
++ dnl 1. if it's the standard /usr/include,
++ dnl 2. if it's /usr/local/include and we are using GCC on Linux,
++ dnl 3. if it's already present in $CPPFLAGS or the already
++ dnl constructed $INCNAME,
++ dnl 4. if it doesn't exist as a directory.
++ if test "X$additional_includedir" != "X/usr/include"; then
++ haveit=
++ if test "X$additional_includedir" = "X/usr/local/include"; then
++ if test -n "$GCC"; then
++ case $host_os in
++ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
++ esac
++ fi
++ fi
++ if test -z "$haveit"; then
++ for x in $CPPFLAGS $INC[]NAME; do
++ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
++ if test "X$x" = "X-I$additional_includedir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ if test -d "$additional_includedir"; then
++ dnl Really add $additional_includedir to $INCNAME.
++ INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
++ fi
++ fi
++ fi
++ fi
++ fi
++ dnl Look for dependencies.
++ if test -n "$found_la"; then
++ dnl Read the .la file. It defines the variables
++ dnl dlname, library_names, old_library, dependency_libs, current,
++ dnl age, revision, installed, dlopen, dlpreopen, libdir.
++ save_libdir="$libdir"
++ case "$found_la" in
++ */* | *\\*) . "$found_la" ;;
++ *) . "./$found_la" ;;
++ esac
++ libdir="$save_libdir"
++ dnl We use only dependency_libs.
++ for dep in $dependency_libs; do
++ case "$dep" in
++ -L*)
++ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
++ dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
++ dnl But don't add it
++ dnl 1. if it's the standard /usr/lib,
++ dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
++ dnl 3. if it's already present in $LDFLAGS or the already
++ dnl constructed $LIBNAME,
++ dnl 4. if it doesn't exist as a directory.
++ if test "X$additional_libdir" != "X/usr/lib"; then
++ haveit=
++ if test "X$additional_libdir" = "X/usr/local/lib"; then
++ if test -n "$GCC"; then
++ case $host_os in
++ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
++ esac
++ fi
++ fi
++ if test -z "$haveit"; then
++ haveit=
++ for x in $LDFLAGS $LIB[]NAME; do
++ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
++ if test "X$x" = "X-L$additional_libdir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ if test -d "$additional_libdir"; then
++ dnl Really add $additional_libdir to $LIBNAME.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
++ fi
++ fi
++ haveit=
++ for x in $LDFLAGS $LTLIB[]NAME; do
++ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
++ if test "X$x" = "X-L$additional_libdir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ if test -d "$additional_libdir"; then
++ dnl Really add $additional_libdir to $LTLIBNAME.
++ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
++ fi
++ fi
++ fi
++ fi
++ ;;
++ -R*)
++ dir=`echo "X$dep" | sed -e 's/^X-R//'`
++ if test "$enable_rpath" != no; then
++ dnl Potentially add DIR to rpathdirs.
++ dnl The rpathdirs will be appended to $LIBNAME at the end.
++ haveit=
++ for x in $rpathdirs; do
++ if test "X$x" = "X$dir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ rpathdirs="$rpathdirs $dir"
++ fi
++ dnl Potentially add DIR to ltrpathdirs.
++ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
++ haveit=
++ for x in $ltrpathdirs; do
++ if test "X$x" = "X$dir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ ltrpathdirs="$ltrpathdirs $dir"
++ fi
++ fi
++ ;;
++ -l*)
++ dnl Handle this in the next round.
++ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
++ ;;
++ *.la)
++ dnl Handle this in the next round. Throw away the .la's
++ dnl directory; it is already contained in a preceding -L
++ dnl option.
++ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
++ ;;
++ *)
++ dnl Most likely an immediate library name.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
++ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
++ ;;
++ esac
++ done
++ fi
++ else
++ dnl Didn't find the library; assume it is in the system directories
++ dnl known to the linker and runtime loader. (All the system
++ dnl directories known to the linker should also be known to the
++ dnl runtime loader, otherwise the system is severely misconfigured.)
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
++ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
++ fi
++ fi
++ fi
++ done
++ done
++ if test "X$rpathdirs" != "X"; then
++ if test -n "$hardcode_libdir_separator"; then
++ dnl Weird platform: only the last -rpath option counts, the user must
++ dnl pass all path elements in one option. We can arrange that for a
++ dnl single library, but not when more than one $LIBNAMEs are used.
++ alldirs=
++ for found_dir in $rpathdirs; do
++ alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
++ done
++ dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
++ acl_save_libdir="$libdir"
++ libdir="$alldirs"
++ eval flag=\"$hardcode_libdir_flag_spec\"
++ libdir="$acl_save_libdir"
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
++ else
++ dnl The -rpath options are cumulative.
++ for found_dir in $rpathdirs; do
++ acl_save_libdir="$libdir"
++ libdir="$found_dir"
++ eval flag=\"$hardcode_libdir_flag_spec\"
++ libdir="$acl_save_libdir"
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
++ done
++ fi
++ fi
++ if test "X$ltrpathdirs" != "X"; then
++ dnl When using libtool, the option that works for both libraries and
++ dnl executables is -R. The -R options are cumulative.
++ for found_dir in $ltrpathdirs; do
++ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
++ done
++ fi
++])
++
++dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
++dnl unless already present in VAR.
++dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
++dnl contains two or three consecutive elements that belong together.
++AC_DEFUN([AC_LIB_APPENDTOVAR],
++[
++ for element in [$2]; do
++ haveit=
++ for x in $[$1]; do
++ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
++ if test "X$x" = "X$element"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ [$1]="${[$1]}${[$1]:+ }$element"
++ fi
++ done
++])
++
++# lib-ld.m4 serial 3 (gettext-0.13)
++dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
++dnl This file is free software; the Free Software Foundation
++dnl gives unlimited permission to copy and/or distribute it,
++dnl with or without modifications, as long as this notice is preserved.
++
++dnl Subroutines of libtool.m4,
++dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
++dnl with libtool.m4.
++
++dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
++AC_DEFUN([AC_LIB_PROG_LD_GNU],
++[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
++[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
++case `$LD -v 2>&1 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
++ac_prog=ld
++if test "$GCC" = yes; then
++ # Check if gcc -print-prog-name=ld gives a path.
++ AC_MSG_CHECKING([for ld used by GCC])
++ case $host in
++ *-*-mingw*)
++ # gcc leaves a trailing carriage return which upsets mingw
++ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
++ *)
++ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
++ esac
++ case $ac_prog in
++ # Accept absolute paths.
++ [[\\/]* | [A-Za-z]:[\\/]*)]
++ [re_direlt='/[^/][^/]*/\.\./']
++ # Canonicalize the path of ld
++ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
++ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
++ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
++ done
++ test -z "$LD" && LD="$ac_prog"
++ ;;
++ "")
++ # If it fails, then pretend we aren't using GCC.
++ ac_prog=ld
++ ;;
++ *)
++ # If it is relative, then search for the first ld in PATH.
++ with_gnu_ld=unknown
++ ;;
++ esac
++elif test "$with_gnu_ld" = yes; then
++ AC_MSG_CHECKING([for GNU ld])
++else
++ AC_MSG_CHECKING([for non-GNU ld])
++fi
++AC_CACHE_VAL(acl_cv_path_LD,
++[if test -z "$LD"; then
++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
++ for ac_dir in $PATH; do
++ test -z "$ac_dir" && ac_dir=.
++ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
++ acl_cv_path_LD="$ac_dir/$ac_prog"
++ # Check to see if the program is GNU ld. I'd rather use --version,
++ # but apparently some GNU ld's only accept -v.
++ # Break only if it was the GNU/non-GNU ld that we prefer.
++ case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
++ *GNU* | *'with BFD'*)
++ test "$with_gnu_ld" != no && break ;;
++ *)
++ test "$with_gnu_ld" != yes && break ;;
++ esac
++ fi
++ done
++ IFS="$ac_save_ifs"
++else
++ acl_cv_path_LD="$LD" # Let the user override the test with a path.
++fi])
++LD="$acl_cv_path_LD"
++if test -n "$LD"; then
++ AC_MSG_RESULT($LD)
++else
++ AC_MSG_RESULT(no)
++fi
++test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
++AC_LIB_PROG_LD_GNU
++])
++
++dnl This provides configure definitions used by all the newlib
++dnl configure.in files.
++
++dnl Basic newlib configury. This calls basic introductory stuff,
++dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs
++dnl configure.host. The only argument is the relative path to the top
++dnl newlib directory.
++
++AC_DEFUN(NEWLIB_CONFIGURE,
++[
++dnl Default to --enable-multilib
++AC_ARG_ENABLE(multilib,
++[ --enable-multilib build many library versions (default)],
++[case "${enableval}" in
++ yes) multilib=yes ;;
++ no) multilib=no ;;
++ *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;;
++ esac], [multilib=yes])dnl
++
++dnl Support --enable-target-optspace
++AC_ARG_ENABLE(target-optspace,
++[ --enable-target-optspace optimize for space],
++[case "${enableval}" in
++ yes) target_optspace=yes ;;
++ no) target_optspace=no ;;
++ *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;;
++ esac], [target_optspace=])dnl
++
++dnl Support --enable-malloc-debugging - currently only supported for Cygwin
++AC_ARG_ENABLE(malloc-debugging,
++[ --enable-malloc-debugging indicate malloc debugging requested],
++[case "${enableval}" in
++ yes) malloc_debugging=yes ;;
++ no) malloc_debugging=no ;;
++ *) AC_MSG_ERROR(bad value ${enableval} for malloc-debugging option) ;;
++ esac], [malloc_debugging=])dnl
++
++dnl Support --enable-newlib-multithread
++AC_ARG_ENABLE(newlib-multithread,
++[ --enable-newlib-multithread enable support for multiple threads],
++[case "${enableval}" in
++ yes) newlib_multithread=yes ;;
++ no) newlib_multithread=no ;;
++ *) AC_MSG_ERROR(bad value ${enableval} for newlib-multithread option) ;;
++ esac], [newlib_multithread=yes])dnl
++
++dnl Support --enable-newlib-iconv
++AC_ARG_ENABLE(newlib-iconv,
++[ --enable-newlib-iconv enable iconv library support],
++[if test "${newlib_iconv+set}" != set; then
++ case "${enableval}" in
++ yes) newlib_iconv=yes ;;
++ no) newlib_iconv=no ;;
++ *) AC_MSG_ERROR(bad value ${enableval} for newlib-iconv option) ;;
++ esac
++ fi], [newlib_iconv=${newlib_iconv}])dnl
++
++dnl Support --enable-newlib-elix-level
++AC_ARG_ENABLE(newlib-elix-level,
++[ --enable-newlib-elix-level supply desired elix library level (1-4)],
++[case "${enableval}" in
++ 0) newlib_elix_level=0 ;;
++ 1) newlib_elix_level=1 ;;
++ 2) newlib_elix_level=2 ;;
++ 3) newlib_elix_level=3 ;;
++ 4) newlib_elix_level=4 ;;
++ *) AC_MSG_ERROR(bad value ${enableval} for newlib-elix-level option) ;;
++ esac], [newlib_elix_level=0])dnl
++
++dnl Support --disable-newlib-io-float
++AC_ARG_ENABLE(newlib-io-float,
++[ --disable-newlib-io-float disable printf/scanf family float support],
++[case "${enableval}" in
++ yes) newlib_io_float=yes ;;
++ no) newlib_io_float=no ;;
++ *) AC_MSG_ERROR(bad value ${enableval} for newlib-io-float option) ;;
++ esac], [newlib_io_float=yes])dnl
++
++dnl Support --disable-newlib-supplied-syscalls
++AC_ARG_ENABLE(newlib-supplied-syscalls,
++[ --disable-newlib-supplied-syscalls disable newlib from supplying syscalls],
++[case "${enableval}" in
++ yes) newlib_may_supply_syscalls=yes ;;
++ no) newlib_may_supply_syscalls=no ;;
++ *) AC_MSG_ERROR(bad value ${enableval} for newlib-supplied-syscalls option) ;;
++ esac], [newlib_may_supply_syscalls=yes])dnl
++
++AM_CONDITIONAL(MAY_SUPPLY_SYSCALLS, test x[$]{newlib_may_supply_syscalls} = xyes)
++
++dnl We may get other options which we don't document:
++dnl --with-target-subdir, --with-multisrctop, --with-multisubdir
++
++test -z "[$]{with_target_subdir}" && with_target_subdir=.
++
++if test "[$]{srcdir}" = "."; then
++ if test "[$]{with_target_subdir}" != "."; then
++ newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1"
++ else
++ newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1"
++ fi
++else
++ newlib_basedir="[$]{srcdir}/$1"
++fi
++AC_SUBST(newlib_basedir)
++
++AC_CANONICAL_SYSTEM
++
++AM_INIT_AUTOMAKE(newlib, 1.13.0)
++
++# FIXME: We temporarily define our own version of AC_PROG_CC. This is
++# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
++# are probably using a cross compiler, which will not be able to fully
++# link an executable. This should really be fixed in autoconf
++# itself.
++
++AC_DEFUN(LIB_AC_PROG_CC,
++[AC_BEFORE([$0], [AC_PROG_CPP])dnl
++AC_CHECK_PROG(CC, gcc, gcc)
++if test -z "$CC"; then
++ AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
++ test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
++fi
++
++AC_PROG_CC_GNU
++
++if test $ac_cv_prog_gcc = yes; then
++ GCC=yes
++dnl Check whether -g works, even if CFLAGS is set, in case the package
++dnl plays around with CFLAGS (such as to build both debugging and
++dnl normal versions of a library), tasteless as that idea is.
++ ac_test_CFLAGS="${CFLAGS+set}"
++ ac_save_CFLAGS="$CFLAGS"
++ CFLAGS=
++ AC_PROG_CC_G
++ if test "$ac_test_CFLAGS" = set; then
++ CFLAGS="$ac_save_CFLAGS"
++ elif test $ac_cv_prog_cc_g = yes; then
++ CFLAGS="-g -O2"
++ else
++ CFLAGS="-O2"
++ fi
++else
++ GCC=
++ test "${CFLAGS+set}" = set || CFLAGS="-g"
++fi
++])
++
++LIB_AC_PROG_CC
++
++AC_CHECK_TOOL(AS, as)
++AC_CHECK_TOOL(AR, ar)
++AC_CHECK_TOOL(RANLIB, ranlib, :)
++
++AC_PROG_INSTALL
++
++AM_MAINTAINER_MODE
++
++# We need AC_EXEEXT to keep automake happy in cygnus mode. However,
++# at least currently, we never actually build a program, so we never
++# need to use $(EXEEXT). Moreover, the test for EXEEXT normally
++# fails, because we are probably configuring with a cross compiler
++# which can't create executables. So we include AC_EXEEXT to keep
++# automake happy, but we don't execute it, since we don't care about
++# the result.
++if false; then
++ AC_EXEEXT
++fi
++
++. [$]{newlib_basedir}/configure.host
++
++newlib_cflags="[$]{newlib_cflags} -fno-builtin"
++
++NEWLIB_CFLAGS=${newlib_cflags}
++AC_SUBST(NEWLIB_CFLAGS)
++
++LDFLAGS=${ldflags}
++AC_SUBST(LDFLAGS)
++
++AM_CONDITIONAL(ELIX_LEVEL_0, test x[$]{newlib_elix_level} = x0)
++AM_CONDITIONAL(ELIX_LEVEL_1, test x[$]{newlib_elix_level} = x1)
++AM_CONDITIONAL(ELIX_LEVEL_2, test x[$]{newlib_elix_level} = x2)
++AM_CONDITIONAL(ELIX_LEVEL_3, test x[$]{newlib_elix_level} = x3)
++AM_CONDITIONAL(ELIX_LEVEL_4, test x[$]{newlib_elix_level} = x4)
++
++AM_CONDITIONAL(USE_LIBTOOL, test x[$]{use_libtool} = xyes)
++
++# Hard-code OBJEXT. Normally it is set by AC_OBJEXT, but we
++# use oext, which is set in configure.host based on the target platform.
++OBJEXT=${oext}
++
++AC_SUBST(OBJEXT)
++AC_SUBST(oext)
++AC_SUBST(aext)
++
++AC_SUBST(libm_machine_dir)
++AC_SUBST(machine_dir)
++AC_SUBST(sys_dir)
++])
++
++# Do all the work for Automake. This macro actually does too much --
++# some checks are only needed if your package does certain things.
++# But this isn't really a big deal.
++
++# serial 1
++
++dnl Usage:
++dnl AM_INIT_AUTOMAKE(package,version, [no-define])
++
++AC_DEFUN([AM_INIT_AUTOMAKE],
++[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
++AC_REQUIRE([AC_PROG_INSTALL])
++PACKAGE=[$1]
++AC_SUBST(PACKAGE)
++VERSION=[$2]
++AC_SUBST(VERSION)
++dnl test to see if srcdir already configured
++if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
++ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
++fi
++ifelse([$3],,
++AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
++AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
++AC_REQUIRE([AM_SANITY_CHECK])
++AC_REQUIRE([AC_ARG_PROGRAM])
++dnl FIXME This is truly gross.
++missing_dir=`cd $ac_aux_dir && pwd`
++AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir)
++AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
++AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir)
++AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
++AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
++AC_REQUIRE([AC_PROG_MAKE_SET])])
++
++# Copyright 2002 Free Software Foundation, Inc.
++
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 2, or (at your option)
++# any later version.
++
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
++
++# AM_AUTOMAKE_VERSION(VERSION)
++# ----------------------------
++# Automake X.Y traces this macro to ensure aclocal.m4 has been
++# generated from the m4 files accompanying Automake X.Y.
++AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"])
++
++# AM_SET_CURRENT_AUTOMAKE_VERSION
++# -------------------------------
++# Call AM_AUTOMAKE_VERSION so it can be traced.
++# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
++AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
++ [AM_AUTOMAKE_VERSION([1.4-p6])])
++
++#
++# Check to make sure that the build environment is sane.
++#
++
++AC_DEFUN([AM_SANITY_CHECK],
++[AC_MSG_CHECKING([whether build environment is sane])
++# Just in case
++sleep 1
++echo timestamp > conftestfile
++# Do `set' in a subshell so we don't clobber the current shell's
++# arguments. Must try -L first in case configure is actually a
++# symlink; some systems play weird games with the mod time of symlinks
++# (eg FreeBSD returns the mod time of the symlink's containing
++# directory).
++if (
++ set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
++ if test "[$]*" = "X"; then
++ # -L didn't work.
++ set X `ls -t $srcdir/configure conftestfile`
++ fi
++ if test "[$]*" != "X $srcdir/configure conftestfile" \
++ && test "[$]*" != "X conftestfile $srcdir/configure"; then
++
++ # If neither matched, then we have a broken ls. This can happen
++ # if, for instance, CONFIG_SHELL is bash and it inherits a
++ # broken ls alias from the environment. This has actually
++ # happened. Such a system could not be considered "sane".
++ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
++alias in your environment])
++ fi
++
++ test "[$]2" = conftestfile
++ )
++then
++ # Ok.
++ :
++else
++ AC_MSG_ERROR([newly created file is older than distributed files!
++Check your system clock])
++fi
++rm -f conftest*
++AC_MSG_RESULT(yes)])
++
++dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
++dnl The program must properly implement --version.
++AC_DEFUN([AM_MISSING_PROG],
++[AC_MSG_CHECKING(for working $2)
++# Run test in a subshell; some versions of sh will print an error if
++# an executable is not found, even if stderr is redirected.
++# Redirect stdin to placate older versions of autoconf. Sigh.
++if ($2 --version) < /dev/null > /dev/null 2>&1; then
++ $1=$2
++ AC_MSG_RESULT(found)
++else
++ $1="$3/missing $2"
++ AC_MSG_RESULT(missing)
++fi
++AC_SUBST($1)])
++
++# Define a conditional.
++
++AC_DEFUN([AM_CONDITIONAL],
++[AC_SUBST($1_TRUE)
++AC_SUBST($1_FALSE)
++if $2; then
++ $1_TRUE=
++ $1_FALSE='#'
++else
++ $1_TRUE='#'
++ $1_FALSE=
++fi])
++
++# Add --enable-maintainer-mode option to configure.
++# From Jim Meyering
++
++# serial 1
++
++AC_DEFUN([AM_MAINTAINER_MODE],
++[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
++ dnl maintainer-mode is disabled by default
++ AC_ARG_ENABLE(maintainer-mode,
++[ --enable-maintainer-mode enable make rules and dependencies not useful
++ (and sometimes confusing) to the casual installer],
++ USE_MAINTAINER_MODE=$enableval,
++ USE_MAINTAINER_MODE=no)
++ AC_MSG_RESULT($USE_MAINTAINER_MODE)
++ AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes)
++ MAINT=$MAINTAINER_MODE_TRUE
++ AC_SUBST(MAINT)dnl
++]
++)
++
+--- newlib-1.13.0.orig/newlib/libc/sys/psp/configure 1969-12-31 19:00:00.000000000 -0500
++++ newlib-psp/newlib/libc/sys/psp/configure 2005-07-28 15:42:00.000000000 -0400
+@@ -0,0 +1,1880 @@
++#! /bin/sh
++
++# Guess values for system-dependent variables and create Makefiles.
++# Generated automatically using autoconf version 2.13
++# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
++#
++# This configure script is free software; the Free Software Foundation
++# gives unlimited permission to copy, distribute and modify it.
++
++# Defaults:
++ac_help=
++ac_default_prefix=/usr/local
++# Any additions from configure.in:
++ac_help="$ac_help
++ --enable-multilib build many library versions (default)"
++ac_help="$ac_help
++ --enable-target-optspace optimize for space"
++ac_help="$ac_help
++ --enable-malloc-debugging indicate malloc debugging requested"
++ac_help="$ac_help
++ --enable-newlib-multithread enable support for multiple threads"
++ac_help="$ac_help
++ --enable-newlib-iconv enable iconv library support"
++ac_help="$ac_help
++ --enable-newlib-elix-level supply desired elix library level (1-4)"
++ac_help="$ac_help
++ --disable-newlib-io-float disable printf/scanf family float support"
++ac_help="$ac_help
++ --disable-newlib-supplied-syscalls disable newlib from supplying syscalls"
++ac_help="$ac_help
++ --enable-maintainer-mode enable make rules and dependencies not useful
++ (and sometimes confusing) to the casual installer"
++
++# Initialize some variables set by options.
++# The variables have the same names as the options, with
++# dashes changed to underlines.
++build=NONE
++cache_file=./config.cache
++exec_prefix=NONE
++host=NONE
++no_create=
++nonopt=NONE
++no_recursion=
++prefix=NONE
++program_prefix=NONE
++program_suffix=NONE
++program_transform_name=s,x,x,
++silent=
++site=
++srcdir=
++target=NONE
++verbose=
++x_includes=NONE
++x_libraries=NONE
++bindir='${exec_prefix}/bin'
++sbindir='${exec_prefix}/sbin'
++libexecdir='${exec_prefix}/libexec'
++datadir='${prefix}/share'
++sysconfdir='${prefix}/etc'
++sharedstatedir='${prefix}/com'
++localstatedir='${prefix}/var'
++libdir='${exec_prefix}/lib'
++includedir='${prefix}/include'
++oldincludedir='/usr/include'
++infodir='${prefix}/info'
++mandir='${prefix}/man'
++
++# Initialize some other variables.
++subdirs=
++MFLAGS= MAKEFLAGS=
++SHELL=${CONFIG_SHELL-/bin/sh}
++# Maximum number of lines to put in a shell here document.
++ac_max_here_lines=12
++
++ac_prev=
++for ac_option
++do
++
++ # If the previous option needs an argument, assign it.
++ if test -n "$ac_prev"; then
++ eval "$ac_prev=\$ac_option"
++ ac_prev=
++ continue
++ fi
++
++ case "$ac_option" in
++ -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
++ *) ac_optarg= ;;
++ esac
++
++ # Accept the important Cygnus configure options, so we can diagnose typos.
++
++ case "$ac_option" in
++
++ -bindir | --bindir | --bindi | --bind | --bin | --bi)
++ ac_prev=bindir ;;
++ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
++ bindir="$ac_optarg" ;;
++
++ -build | --build | --buil | --bui | --bu)
++ ac_prev=build ;;
++ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
++ build="$ac_optarg" ;;
++
++ -cache-file | --cache-file | --cache-fil | --cache-fi \
++ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
++ ac_prev=cache_file ;;
++ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
++ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
++ cache_file="$ac_optarg" ;;
++
++ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
++ ac_prev=datadir ;;
++ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
++ | --da=*)
++ datadir="$ac_optarg" ;;
++
++ -disable-* | --disable-*)
++ ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
++ # Reject names that are not valid shell variable names.
++ if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
++ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
++ fi
++ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
++ eval "enable_${ac_feature}=no" ;;
++
++ -enable-* | --enable-*)
++ ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
++ # Reject names that are not valid shell variable names.
++ if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
++ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
++ fi
++ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
++ case "$ac_option" in
++ *=*) ;;
++ *) ac_optarg=yes ;;
++ esac
++ eval "enable_${ac_feature}='$ac_optarg'" ;;
++
++ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
++ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
++ | --exec | --exe | --ex)
++ ac_prev=exec_prefix ;;
++ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
++ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
++ | --exec=* | --exe=* | --ex=*)
++ exec_prefix="$ac_optarg" ;;
++
++ -gas | --gas | --ga | --g)
++ # Obsolete; use --with-gas.
++ with_gas=yes ;;
++
++ -help | --help | --hel | --he)
++ # Omit some internal or obsolete options to make the list less imposing.
++ # This message is too long to be a string in the A/UX 3.1 sh.
++ cat << EOF
++Usage: configure [options] [host]
++Options: [defaults in brackets after descriptions]
++Configuration:
++ --cache-file=FILE cache test results in FILE
++ --help print this message
++ --no-create do not create output files
++ --quiet, --silent do not print \`checking...' messages
++ --version print the version of autoconf that created configure
++Directory and file names:
++ --prefix=PREFIX install architecture-independent files in PREFIX
++ [$ac_default_prefix]
++ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
++ [same as prefix]
++ --bindir=DIR user executables in DIR [EPREFIX/bin]
++ --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
++ --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
++ --datadir=DIR read-only architecture-independent data in DIR
++ [PREFIX/share]
++ --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
++ --sharedstatedir=DIR modifiable architecture-independent data in DIR
++ [PREFIX/com]
++ --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
++ --libdir=DIR object code libraries in DIR [EPREFIX/lib]
++ --includedir=DIR C header files in DIR [PREFIX/include]
++ --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
++ --infodir=DIR info documentation in DIR [PREFIX/info]
++ --mandir=DIR man documentation in DIR [PREFIX/man]
++ --srcdir=DIR find the sources in DIR [configure dir or ..]
++ --program-prefix=PREFIX prepend PREFIX to installed program names
++ --program-suffix=SUFFIX append SUFFIX to installed program names
++ --program-transform-name=PROGRAM
++ run sed PROGRAM on installed program names
++EOF
++ cat << EOF
++Host type:
++ --build=BUILD configure for building on BUILD [BUILD=HOST]
++ --host=HOST configure for HOST [guessed]
++ --target=TARGET configure for TARGET [TARGET=HOST]
++Features and packages:
++ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
++ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
++ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
++ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
++ --x-includes=DIR X include files are in DIR
++ --x-libraries=DIR X library files are in DIR
++EOF
++ if test -n "$ac_help"; then
++ echo "--enable and --with options recognized:$ac_help"
++ fi
++ exit 0 ;;
++
++ -host | --host | --hos | --ho)
++ ac_prev=host ;;
++ -host=* | --host=* | --hos=* | --ho=*)
++ host="$ac_optarg" ;;
++
++ -includedir | --includedir | --includedi | --included | --include \
++ | --includ | --inclu | --incl | --inc)
++ ac_prev=includedir ;;
++ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
++ | --includ=* | --inclu=* | --incl=* | --inc=*)
++ includedir="$ac_optarg" ;;
++
++ -infodir | --infodir | --infodi | --infod | --info | --inf)
++ ac_prev=infodir ;;
++ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
++ infodir="$ac_optarg" ;;
++
++ -libdir | --libdir | --libdi | --libd)
++ ac_prev=libdir ;;
++ -libdir=* | --libdir=* | --libdi=* | --libd=*)
++ libdir="$ac_optarg" ;;
++
++ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
++ | --libexe | --libex | --libe)
++ ac_prev=libexecdir ;;
++ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
++ | --libexe=* | --libex=* | --libe=*)
++ libexecdir="$ac_optarg" ;;
++
++ -localstatedir | --localstatedir | --localstatedi | --localstated \
++ | --localstate | --localstat | --localsta | --localst \
++ | --locals | --local | --loca | --loc | --lo)
++ ac_prev=localstatedir ;;
++ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
++ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
++ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
++ localstatedir="$ac_optarg" ;;
++
++ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
++ ac_prev=mandir ;;
++ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
++ mandir="$ac_optarg" ;;
++
++ -nfp | --nfp | --nf)
++ # Obsolete; use --without-fp.
++ with_fp=no ;;
++
++ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
++ | --no-cr | --no-c)
++ no_create=yes ;;
++
++ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
++ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
++ no_recursion=yes ;;
++
++ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
++ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
++ | --oldin | --oldi | --old | --ol | --o)
++ ac_prev=oldincludedir ;;
++ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
++ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
++ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
++ oldincludedir="$ac_optarg" ;;
++
++ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
++ ac_prev=prefix ;;
++ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
++ prefix="$ac_optarg" ;;
++
++ -program-prefix | --program-prefix | --program-prefi | --program-pref \
++ | --program-pre | --program-pr | --program-p)
++ ac_prev=program_prefix ;;
++ -program-prefix=* | --program-prefix=* | --program-prefi=* \
++ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
++ program_prefix="$ac_optarg" ;;
++
++ -program-suffix | --program-suffix | --program-suffi | --program-suff \
++ | --program-suf | --program-su | --program-s)
++ ac_prev=program_suffix ;;
++ -program-suffix=* | --program-suffix=* | --program-suffi=* \
++ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
++ program_suffix="$ac_optarg" ;;
++
++ -program-transform-name | --program-transform-name \
++ | --program-transform-nam | --program-transform-na \
++ | --program-transform-n | --program-transform- \
++ | --program-transform | --program-transfor \
++ | --program-transfo | --program-transf \
++ | --program-trans | --program-tran \
++ | --progr-tra | --program-tr | --program-t)
++ ac_prev=program_transform_name ;;
++ -program-transform-name=* | --program-transform-name=* \
++ | --program-transform-nam=* | --program-transform-na=* \
++ | --program-transform-n=* | --program-transform-=* \
++ | --program-transform=* | --program-transfor=* \
++ | --program-transfo=* | --program-transf=* \
++ | --program-trans=* | --program-tran=* \
++ | --progr-tra=* | --program-tr=* | --program-t=*)
++ program_transform_name="$ac_optarg" ;;
++
++ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
++ | -silent | --silent | --silen | --sile | --sil)
++ silent=yes ;;
++
++ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
++ ac_prev=sbindir ;;
++ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
++ | --sbi=* | --sb=*)
++ sbindir="$ac_optarg" ;;
++
++ -sharedstatedir | --sharedstatedir | --sharedstatedi \
++ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
++ | --sharedst | --shareds | --shared | --share | --shar \
++ | --sha | --sh)
++ ac_prev=sharedstatedir ;;
++ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
++ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
++ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
++ | --sha=* | --sh=*)
++ sharedstatedir="$ac_optarg" ;;
++
++ -site | --site | --sit)
++ ac_prev=site ;;
++ -site=* | --site=* | --sit=*)
++ site="$ac_optarg" ;;
++
++ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
++ ac_prev=srcdir ;;
++ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
++ srcdir="$ac_optarg" ;;
++
++ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
++ | --syscon | --sysco | --sysc | --sys | --sy)
++ ac_prev=sysconfdir ;;
++ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
++ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
++ sysconfdir="$ac_optarg" ;;
++
++ -target | --target | --targe | --targ | --tar | --ta | --t)
++ ac_prev=target ;;
++ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
++ target="$ac_optarg" ;;
++
++ -v | -verbose | --verbose | --verbos | --verbo | --verb)
++ verbose=yes ;;
++
++ -version | --version | --versio | --versi | --vers)
++ echo "configure generated by autoconf version 2.13"
++ exit 0 ;;
++
++ -with-* | --with-*)
++ ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
++ # Reject names that are not valid shell variable names.
++ if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
++ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
++ fi
++ ac_package=`echo $ac_package| sed 's/-/_/g'`
++ case "$ac_option" in
++ *=*) ;;
++ *) ac_optarg=yes ;;
++ esac
++ eval "with_${ac_package}='$ac_optarg'" ;;
++
++ -without-* | --without-*)
++ ac_package=`echo $ac_option|sed -e 's/-*without-//'`
++ # Reject names that are not valid shell variable names.
++ if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
++ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
++ fi
++ ac_package=`echo $ac_package| sed 's/-/_/g'`
++ eval "with_${ac_package}=no" ;;
++
++ --x)
++ # Obsolete; use --with-x.
++ with_x=yes ;;
++
++ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
++ | --x-incl | --x-inc | --x-in | --x-i)
++ ac_prev=x_includes ;;
++ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
++ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
++ x_includes="$ac_optarg" ;;
++
++ -x-libraries | --x-libraries | --x-librarie | --x-librari \
++ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
++ ac_prev=x_libraries ;;
++ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
++ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
++ x_libraries="$ac_optarg" ;;
++
++ -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
++ ;;
++
++ *)
++ if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
++ echo "configure: warning: $ac_option: invalid host type" 1>&2
++ fi
++ if test "x$nonopt" != xNONE; then
++ { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
++ fi
++ nonopt="$ac_option"
++ ;;
++
++ esac
++done
++
++if test -n "$ac_prev"; then
++ { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
++fi
++
++trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
++
++# File descriptor usage:
++# 0 standard input
++# 1 file creation
++# 2 errors and warnings
++# 3 some systems may open it to /dev/tty
++# 4 used on the Kubota Titan
++# 6 checking for... messages and results
++# 5 compiler messages saved in config.log
++if test "$silent" = yes; then
++ exec 6>/dev/null
++else
++ exec 6>&1
++fi
++exec 5>./config.log
++
++echo "\
++This file contains any messages produced by compilers while
++running configure, to aid debugging if configure makes a mistake.
++" 1>&5
++
++# Strip out --no-create and --no-recursion so they do not pile up.
++# Also quote any args containing shell metacharacters.
++ac_configure_args=
++for ac_arg
++do
++ case "$ac_arg" in
++ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
++ | --no-cr | --no-c) ;;
++ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
++ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
++ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
++ ac_configure_args="$ac_configure_args '$ac_arg'" ;;
++ *) ac_configure_args="$ac_configure_args $ac_arg" ;;
++ esac
++done
++
++# NLS nuisances.
++# Only set these to C if already set. These must not be set unconditionally
++# because not all systems understand e.g. LANG=C (notably SCO).
++# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
++# Non-C LC_CTYPE values break the ctype check.
++if test "${LANG+set}" = set; then LANG=C; export LANG; fi
++if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
++if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
++if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
++
++# confdefs.h avoids OS command line length limits that DEFS can exceed.
++rm -rf conftest* confdefs.h
++# AIX cpp loses on an empty file, so make sure it contains at least a newline.
++echo > confdefs.h
++
++# A filename unique to this package, relative to the directory that
++# configure is in, which we can look for to find out if srcdir is correct.
++ac_unique_file=libcglue.c
++
++# Find the source files, if location was not specified.
++if test -z "$srcdir"; then
++ ac_srcdir_defaulted=yes
++ # Try the directory containing this script, then its parent.
++ ac_prog=$0
++ ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
++ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
++ srcdir=$ac_confdir
++ if test ! -r $srcdir/$ac_unique_file; then
++ srcdir=..
++ fi
++else
++ ac_srcdir_defaulted=no
++fi
++if test ! -r $srcdir/$ac_unique_file; then
++ if test "$ac_srcdir_defaulted" = yes; then
++ { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
++ else
++ { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
++ fi
++fi
++srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
++
++# Prefer explicitly selected file to automatically selected ones.
++if test -z "$CONFIG_SITE"; then
++ if test "x$prefix" != xNONE; then
++ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
++ else
++ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
++ fi
++fi
++for ac_site_file in $CONFIG_SITE; do
++ if test -r "$ac_site_file"; then
++ echo "loading site script $ac_site_file"
++ . "$ac_site_file"
++ fi
++done
++
++if test -r "$cache_file"; then
++ echo "loading cache $cache_file"
++ . $cache_file
++else
++ echo "creating cache $cache_file"
++ > $cache_file
++fi
++
++ac_ext=c
++# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
++ac_cpp='$CPP $CPPFLAGS'
++ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
++ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
++cross_compiling=$ac_cv_prog_cc_cross
++
++ac_exeext=
++ac_objext=o
++if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
++ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
++ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
++ ac_n= ac_c='
++' ac_t=' '
++ else
++ ac_n=-n ac_c= ac_t=
++ fi
++else
++ ac_n= ac_c='\c' ac_t=
++fi
++
++
++
++ac_aux_dir=
++for ac_dir in ../../../.. $srcdir/../../../..; do
++ if test -f $ac_dir/install-sh; then
++ ac_aux_dir=$ac_dir
++ ac_install_sh="$ac_aux_dir/install-sh -c"
++ break
++ elif test -f $ac_dir/install.sh; then
++ ac_aux_dir=$ac_dir
++ ac_install_sh="$ac_aux_dir/install.sh -c"
++ break
++ fi
++done
++if test -z "$ac_aux_dir"; then
++ { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; }
++fi
++ac_config_guess=$ac_aux_dir/config.guess
++ac_config_sub=$ac_aux_dir/config.sub
++ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
++
++
++am__api_version="1.4"
++# Find a good install program. We prefer a C program (faster),
++# so one script is as good as another. But avoid the broken or
++# incompatible versions:
++# SysV /etc/install, /usr/sbin/install
++# SunOS /usr/etc/install
++# IRIX /sbin/install
++# AIX /bin/install
++# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
++# AFS /usr/afsws/bin/install, which mishandles nonexistent args
++# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
++# ./install, which can be erroneously created by make from ./install.sh.
++echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
++echo "configure:578: checking for a BSD compatible install" >&5
++if test -z "$INSTALL"; then
++if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
++ for ac_dir in $PATH; do
++ # Account for people who put trailing slashes in PATH elements.
++ case "$ac_dir/" in
++ /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
++ *)
++ # OSF1 and SCO ODT 3.0 have their own names for install.
++ # Don't use installbsd from OSF since it installs stuff as root
++ # by default.
++ for ac_prog in ginstall scoinst install; do
++ if test -f $ac_dir/$ac_prog; then
++ if test $ac_prog = install &&
++ grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
++ # AIX install. It has an incompatible calling convention.
++ :
++ else
++ ac_cv_path_install="$ac_dir/$ac_prog -c"
++ break 2
++ fi
++ fi
++ done
++ ;;
++ esac
++ done
++ IFS="$ac_save_IFS"
++
++fi
++ if test "${ac_cv_path_install+set}" = set; then
++ INSTALL="$ac_cv_path_install"
++ else
++ # As a last resort, use the slow shell script. We don't cache a
++ # path for INSTALL within a source directory, because that will
++ # break other packages using the cache if that directory is
++ # removed, or if the path is relative.
++ INSTALL="$ac_install_sh"
++ fi
++fi
++echo "$ac_t""$INSTALL" 1>&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_PROGRAM}'
++
++test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
++
++echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
++echo "configure:631: checking whether build environment is sane" >&5
++# Just in case
++sleep 1
++echo timestamp > conftestfile
++# Do `set' in a subshell so we don't clobber the current shell's
++# arguments. Must try -L first in case configure is actually a
++# symlink; some systems play weird games with the mod time of symlinks
++# (eg FreeBSD returns the mod time of the symlink's containing
++# directory).
++if (
++ set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
++ if test "$*" = "X"; then
++ # -L didn't work.
++ set X `ls -t $srcdir/configure conftestfile`
++ fi
++ if test "$*" != "X $srcdir/configure conftestfile" \
++ && test "$*" != "X conftestfile $srcdir/configure"; then
++
++ # If neither matched, then we have a broken ls. This can happen
++ # if, for instance, CONFIG_SHELL is bash and it inherits a
++ # broken ls alias from the environment. This has actually
++ # happened. Such a system could not be considered "sane".
++ { echo "configure: error: ls -t appears to fail. Make sure there is not a broken
++alias in your environment" 1>&2; exit 1; }
++ fi
++
++ test "$2" = conftestfile
++ )
++then
++ # Ok.
++ :
++else
++ { echo "configure: error: newly created file is older than distributed files!
++Check your system clock" 1>&2; exit 1; }
++fi
++rm -f conftest*
++echo "$ac_t""yes" 1>&6
++if test "$program_transform_name" = s,x,x,; then
++ program_transform_name=
++else
++ # Double any \ or $. echo might interpret backslashes.
++ cat <<\EOF_SED > conftestsed
++s,\\,\\\\,g; s,\$,$$,g
++EOF_SED
++ program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
++ rm -f conftestsed
++fi
++test "$program_prefix" != NONE &&
++ 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"
++
++# sed with no file args requires a program.
++test "$program_transform_name" = "" && program_transform_name="s,x,x,"
++
++echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
++echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5
++set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
++if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++ cat > conftestmake <<\EOF
++all:
++ @echo 'ac_maketemp="${MAKE}"'
++EOF
++# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
++eval `${MAKE-make} -f conftestmake 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 conftestmake
++fi
++if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
++ echo "$ac_t""yes" 1>&6
++ SET_MAKE=
++else
++ echo "$ac_t""no" 1>&6
++ SET_MAKE="MAKE=${MAKE-make}"
++fi
++
++if test $host != $build; then
++ ac_tool_prefix=${host_alias}-
++else
++ ac_tool_prefix=
++fi
++
++echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
++echo "configure:721: checking for Cygwin environment" >&5
++if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++ cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then
++ rm -rf conftest*
++ ac_cv_cygwin=yes
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ ac_cv_cygwin=no
++fi
++rm -f conftest*
++rm -f conftest*
++fi
++
++echo "$ac_t""$ac_cv_cygwin" 1>&6
++CYGWIN=
++test "$ac_cv_cygwin" = yes && CYGWIN=yes
++echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
++echo "configure:754: checking for mingw32 environment" >&5
++if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++ cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then
++ rm -rf conftest*
++ ac_cv_mingw32=yes
++else
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ ac_cv_mingw32=no
++fi
++rm -f conftest*
++rm -f conftest*
++fi
++
++echo "$ac_t""$ac_cv_mingw32" 1>&6
++MINGW32=
++test "$ac_cv_mingw32" = yes && MINGW32=yes
++
++# Check whether --enable-multilib or --disable-multilib was given.
++if test "${enable_multilib+set}" = set; then
++ enableval="$enable_multilib"
++ case "${enableval}" in
++ yes) multilib=yes ;;
++ no) multilib=no ;;
++ *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;;
++ esac
++else
++ multilib=yes
++fi
++
++# Check whether --enable-target-optspace or --disable-target-optspace was given.
++if test "${enable_target_optspace+set}" = set; then
++ enableval="$enable_target_optspace"
++ case "${enableval}" in
++ yes) target_optspace=yes ;;
++ no) target_optspace=no ;;
++ *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;;
++ esac
++else
++ target_optspace=
++fi
++
++# Check whether --enable-malloc-debugging or --disable-malloc-debugging was given.
++if test "${enable_malloc_debugging+set}" = set; then
++ enableval="$enable_malloc_debugging"
++ case "${enableval}" in
++ yes) malloc_debugging=yes ;;
++ no) malloc_debugging=no ;;
++ *) { echo "configure: error: bad value ${enableval} for malloc-debugging option" 1>&2; exit 1; } ;;
++ esac
++else
++ malloc_debugging=
++fi
++
++# Check whether --enable-newlib-multithread or --disable-newlib-multithread was given.
++if test "${enable_newlib_multithread+set}" = set; then
++ enableval="$enable_newlib_multithread"
++ case "${enableval}" in
++ yes) newlib_multithread=yes ;;
++ no) newlib_multithread=no ;;
++ *) { echo "configure: error: bad value ${enableval} for newlib-multithread option" 1>&2; exit 1; } ;;
++ esac
++else
++ newlib_multithread=yes
++fi
++
++# Check whether --enable-newlib-iconv or --disable-newlib-iconv was given.
++if test "${enable_newlib_iconv+set}" = set; then
++ enableval="$enable_newlib_iconv"
++ if test "${newlib_iconv+set}" != set; then
++ case "${enableval}" in
++ yes) newlib_iconv=yes ;;
++ no) newlib_iconv=no ;;
++ *) { echo "configure: error: bad value ${enableval} for newlib-iconv option" 1>&2; exit 1; } ;;
++ esac
++ fi
++else
++ newlib_iconv=${newlib_iconv}
++fi
++
++# Check whether --enable-newlib-elix-level or --disable-newlib-elix-level was given.
++if test "${enable_newlib_elix_level+set}" = set; then
++ enableval="$enable_newlib_elix_level"
++ case "${enableval}" in
++ 0) newlib_elix_level=0 ;;
++ 1) newlib_elix_level=1 ;;
++ 2) newlib_elix_level=2 ;;
++ 3) newlib_elix_level=3 ;;
++ 4) newlib_elix_level=4 ;;
++ *) { echo "configure: error: bad value ${enableval} for newlib-elix-level option" 1>&2; exit 1; } ;;
++ esac
++else
++ newlib_elix_level=0
++fi
++
++# Check whether --enable-newlib-io-float or --disable-newlib-io-float was given.
++if test "${enable_newlib_io_float+set}" = set; then
++ enableval="$enable_newlib_io_float"
++ case "${enableval}" in
++ yes) newlib_io_float=yes ;;
++ no) newlib_io_float=no ;;
++ *) { echo "configure: error: bad value ${enableval} for newlib-io-float option" 1>&2; exit 1; } ;;
++ esac
++else
++ newlib_io_float=yes
++fi
++
++# Check whether --enable-newlib-supplied-syscalls or --disable-newlib-supplied-syscalls was given.
++if test "${enable_newlib_supplied_syscalls+set}" = set; then
++ enableval="$enable_newlib_supplied_syscalls"
++ case "${enableval}" in
++ yes) newlib_may_supply_syscalls=yes ;;
++ no) newlib_may_supply_syscalls=no ;;
++ *) { echo "configure: error: bad value ${enableval} for newlib-supplied-syscalls option" 1>&2; exit 1; } ;;
++ esac
++else
++ newlib_may_supply_syscalls=yes
++fi
++
++
++
++if test x${newlib_may_supply_syscalls} = xyes; then
++ MAY_SUPPLY_SYSCALLS_TRUE=
++ MAY_SUPPLY_SYSCALLS_FALSE='#'
++else
++ MAY_SUPPLY_SYSCALLS_TRUE='#'
++ MAY_SUPPLY_SYSCALLS_FALSE=
++fi
++
++
++test -z "${with_target_subdir}" && with_target_subdir=.
++
++if test "${srcdir}" = "."; then
++ if test "${with_target_subdir}" != "."; then
++ newlib_basedir="${srcdir}/${with_multisrctop}../../../.."
++ else
++ newlib_basedir="${srcdir}/${with_multisrctop}../../.."
++ fi
++else
++ newlib_basedir="${srcdir}/../../.."
++fi
++
++
++
++# Do some error checking and defaulting for the host and target type.
++# The inputs are:
++# configure --host=HOST --target=TARGET --build=BUILD NONOPT
++#
++# The rules are:
++# 1. You are not allowed to specify --host, --target, and nonopt at the
++# same time.
++# 2. Host defaults to nonopt.
++# 3. If nonopt is not specified, then host defaults to the current host,
++# as determined by config.guess.
++# 4. Target and build default to nonopt.
++# 5. If nonopt is not specified, then target and build default to host.
++
++# The aliases save the names the user supplied, while $host etc.
++# will get canonicalized.
++case $host---$target---$nonopt in
++NONE---*---* | *---NONE---* | *---*---NONE) ;;
++*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;;
++esac
++
++
++# Make sure we can run config.sub.
++if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
++else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
++fi
++
++echo $ac_n "checking host system type""... $ac_c" 1>&6
++echo "configure:936: checking host system type" >&5
++
++host_alias=$host
++case "$host_alias" in
++NONE)
++ case $nonopt in
++ NONE)
++ if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
++ else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
++ fi ;;
++ *) host_alias=$nonopt ;;
++ esac ;;
++esac
++
++host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
++host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
++host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
++host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
++echo "$ac_t""$host" 1>&6
++
++echo $ac_n "checking target system type""... $ac_c" 1>&6
++echo "configure:957: checking target system type" >&5
++
++target_alias=$target
++case "$target_alias" in
++NONE)
++ case $nonopt in
++ NONE) target_alias=$host_alias ;;
++ *) target_alias=$nonopt ;;
++ esac ;;
++esac
++
++target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias`
++target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
++target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
++target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
++echo "$ac_t""$target" 1>&6
++
++echo $ac_n "checking build system type""... $ac_c" 1>&6
++echo "configure:975: checking build system type" >&5
++
++build_alias=$build
++case "$build_alias" in
++NONE)
++ case $nonopt in
++ NONE) build_alias=$host_alias ;;
++ *) build_alias=$nonopt ;;
++ esac ;;
++esac
++
++build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
++build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
++build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
++build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
++echo "$ac_t""$build" 1>&6
++
++test "$host_alias" != "$target_alias" &&
++ test "$program_prefix$program_suffix$program_transform_name" = \
++ NONENONEs,x,x, &&
++ program_prefix=${target_alias}-
++
++
++
++PACKAGE=newlib
++
++VERSION=1.13.0
++
++if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
++ { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
++fi
++cat >> confdefs.h <> confdefs.h <&6
++echo "configure:1018: checking for working aclocal-${am__api_version}" >&5
++# Run test in a subshell; some versions of sh will print an error if
++# an executable is not found, even if stderr is redirected.
++# Redirect stdin to placate older versions of autoconf. Sigh.
++if (aclocal-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then
++ ACLOCAL=aclocal-${am__api_version}
++ echo "$ac_t""found" 1>&6
++else
++ ACLOCAL="$missing_dir/missing aclocal-${am__api_version}"
++ echo "$ac_t""missing" 1>&6
++fi
++
++echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
++echo "configure:1031: checking for working autoconf" >&5
++# Run test in a subshell; some versions of sh will print an error if
++# an executable is not found, even if stderr is redirected.
++# Redirect stdin to placate older versions of autoconf. Sigh.
++if (autoconf --version) < /dev/null > /dev/null 2>&1; then
++ AUTOCONF=autoconf
++ echo "$ac_t""found" 1>&6
++else
++ AUTOCONF="$missing_dir/missing autoconf"
++ echo "$ac_t""missing" 1>&6
++fi
++
++echo $ac_n "checking for working automake-${am__api_version}""... $ac_c" 1>&6
++echo "configure:1044: checking for working automake-${am__api_version}" >&5
++# Run test in a subshell; some versions of sh will print an error if
++# an executable is not found, even if stderr is redirected.
++# Redirect stdin to placate older versions of autoconf. Sigh.
++if (automake-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then
++ AUTOMAKE=automake-${am__api_version}
++ echo "$ac_t""found" 1>&6
++else
++ AUTOMAKE="$missing_dir/missing automake-${am__api_version}"
++ echo "$ac_t""missing" 1>&6
++fi
++
++echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
++echo "configure:1057: checking for working autoheader" >&5
++# Run test in a subshell; some versions of sh will print an error if
++# an executable is not found, even if stderr is redirected.
++# Redirect stdin to placate older versions of autoconf. Sigh.
++if (autoheader --version) < /dev/null > /dev/null 2>&1; then
++ AUTOHEADER=autoheader
++ echo "$ac_t""found" 1>&6
++else
++ AUTOHEADER="$missing_dir/missing autoheader"
++ echo "$ac_t""missing" 1>&6
++fi
++
++echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
++echo "configure:1070: checking for working makeinfo" >&5
++# Run test in a subshell; some versions of sh will print an error if
++# an executable is not found, even if stderr is redirected.
++# Redirect stdin to placate older versions of autoconf. Sigh.
++if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
++ MAKEINFO=makeinfo
++ echo "$ac_t""found" 1>&6
++else
++ MAKEINFO="$missing_dir/missing makeinfo"
++ echo "$ac_t""missing" 1>&6
++fi
++
++
++
++# FIXME: We temporarily define our own version of AC_PROG_CC. This is
++# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
++# are probably using a cross compiler, which will not be able to fully
++# link an executable. This should really be fixed in autoconf
++# itself.
++
++
++
++# Extract the first word of "gcc", so it can be a program name with args.
++set dummy gcc; ac_word=$2
++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
++echo "configure:1095: checking for $ac_word" >&5
++if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++ if test -n "$CC"; then
++ ac_cv_prog_CC="$CC" # Let the user override the test.
++else
++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
++ ac_dummy="$PATH"
++ for ac_dir in $ac_dummy; do
++ test -z "$ac_dir" && ac_dir=.
++ if test -f $ac_dir/$ac_word; then
++ ac_cv_prog_CC="gcc"
++ break
++ fi
++ done
++ IFS="$ac_save_ifs"
++fi
++fi
++CC="$ac_cv_prog_CC"
++if test -n "$CC"; then
++ echo "$ac_t""$CC" 1>&6
++else
++ echo "$ac_t""no" 1>&6
++fi
++
++if test -z "$CC"; then
++ # Extract the first word of "cc", so it can be a program name with args.
++set dummy cc; ac_word=$2
++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
++echo "configure:1125: checking for $ac_word" >&5
++if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++ if test -n "$CC"; then
++ ac_cv_prog_CC="$CC" # Let the user override the test.
++else
++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
++ ac_prog_rejected=no
++ ac_dummy="$PATH"
++ for ac_dir in $ac_dummy; do
++ test -z "$ac_dir" && ac_dir=.
++ if test -f $ac_dir/$ac_word; then
++ if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
++ ac_prog_rejected=yes
++ continue
++ fi
++ ac_cv_prog_CC="cc"
++ break
++ fi
++ done
++ IFS="$ac_save_ifs"
++if test $ac_prog_rejected = yes; then
++ # We found a bogon in the path, so make sure we never use it.
++ set dummy $ac_cv_prog_CC
++ shift
++ if test $# -gt 0; then
++ # We chose a different compiler from the bogus one.
++ # However, it has the same basename, so the bogon will be chosen
++ # first if we set CC to just the basename; use the full file name.
++ shift
++ set dummy "$ac_dir/$ac_word" "$@"
++ shift
++ ac_cv_prog_CC="$@"
++ fi
++fi
++fi
++fi
++CC="$ac_cv_prog_CC"
++if test -n "$CC"; then
++ echo "$ac_t""$CC" 1>&6
++else
++ echo "$ac_t""no" 1>&6
++fi
++
++ test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
++fi
++
++echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
++echo "configure:1174: checking whether we are using GNU C" >&5
++if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++ cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
++ ac_cv_prog_gcc=yes
++else
++ ac_cv_prog_gcc=no
++fi
++fi
++
++echo "$ac_t""$ac_cv_prog_gcc" 1>&6
++
++if test $ac_cv_prog_gcc = yes; then
++ GCC=yes
++ ac_test_CFLAGS="${CFLAGS+set}"
++ ac_save_CFLAGS="$CFLAGS"
++ CFLAGS=
++ echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
++echo "configure:1198: checking whether ${CC-cc} accepts -g" >&5
++if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++ echo 'void f(){}' > conftest.c
++if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
++ ac_cv_prog_cc_g=yes
++else
++ ac_cv_prog_cc_g=no
++fi
++rm -f conftest*
++
++fi
++
++echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
++ if test "$ac_test_CFLAGS" = set; then
++ CFLAGS="$ac_save_CFLAGS"
++ elif test $ac_cv_prog_cc_g = yes; then
++ CFLAGS="-g -O2"
++ else
++ CFLAGS="-O2"
++ fi
++else
++ GCC=
++ test "${CFLAGS+set}" = set || CFLAGS="-g"
++fi
++
++
++# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
++set dummy ${ac_tool_prefix}as; ac_word=$2
++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
++echo "configure:1229: checking for $ac_word" >&5
++if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++ if test -n "$AS"; then
++ ac_cv_prog_AS="$AS" # Let the user override the test.
++else
++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
++ ac_dummy="$PATH"
++ for ac_dir in $ac_dummy; do
++ test -z "$ac_dir" && ac_dir=.
++ if test -f $ac_dir/$ac_word; then
++ ac_cv_prog_AS="${ac_tool_prefix}as"
++ break
++ fi
++ done
++ IFS="$ac_save_ifs"
++ test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as"
++fi
++fi
++AS="$ac_cv_prog_AS"
++if test -n "$AS"; then
++ echo "$ac_t""$AS" 1>&6
++else
++ echo "$ac_t""no" 1>&6
++fi
++
++
++
++# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
++set dummy ${ac_tool_prefix}ar; ac_word=$2
++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
++echo "configure:1261: checking for $ac_word" >&5
++if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++ if test -n "$AR"; then
++ ac_cv_prog_AR="$AR" # Let the user override the test.
++else
++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
++ ac_dummy="$PATH"
++ for ac_dir in $ac_dummy; do
++ test -z "$ac_dir" && ac_dir=.
++ if test -f $ac_dir/$ac_word; then
++ ac_cv_prog_AR="${ac_tool_prefix}ar"
++ break
++ fi
++ done
++ IFS="$ac_save_ifs"
++ test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar"
++fi
++fi
++AR="$ac_cv_prog_AR"
++if test -n "$AR"; then
++ echo "$ac_t""$AR" 1>&6
++else
++ echo "$ac_t""no" 1>&6
++fi
++
++
++
++# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
++set dummy ${ac_tool_prefix}ranlib; ac_word=$2
++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
++echo "configure:1293: checking for $ac_word" >&5
++if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++ if test -n "$RANLIB"; then
++ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
++else
++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
++ ac_dummy="$PATH"
++ for ac_dir in $ac_dummy; do
++ test -z "$ac_dir" && ac_dir=.
++ if test -f $ac_dir/$ac_word; then
++ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
++ break
++ fi
++ done
++ IFS="$ac_save_ifs"
++fi
++fi
++RANLIB="$ac_cv_prog_RANLIB"
++if test -n "$RANLIB"; then
++ echo "$ac_t""$RANLIB" 1>&6
++else
++ echo "$ac_t""no" 1>&6
++fi
++
++
++if test -z "$ac_cv_prog_RANLIB"; then
++if test -n "$ac_tool_prefix"; then
++ # Extract the first word of "ranlib", so it can be a program name with args.
++set dummy ranlib; ac_word=$2
++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
++echo "configure:1325: checking for $ac_word" >&5
++if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++ if test -n "$RANLIB"; then
++ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
++else
++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
++ ac_dummy="$PATH"
++ for ac_dir in $ac_dummy; do
++ test -z "$ac_dir" && ac_dir=.
++ if test -f $ac_dir/$ac_word; then
++ ac_cv_prog_RANLIB="ranlib"
++ break
++ fi
++ done
++ IFS="$ac_save_ifs"
++ test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
++fi
++fi
++RANLIB="$ac_cv_prog_RANLIB"
++if test -n "$RANLIB"; then
++ echo "$ac_t""$RANLIB" 1>&6
++else
++ echo "$ac_t""no" 1>&6
++fi
++
++else
++ RANLIB=":"
++fi
++fi
++
++
++# Find a good install program. We prefer a C program (faster),
++# so one script is as good as another. But avoid the broken or
++# incompatible versions:
++# SysV /etc/install, /usr/sbin/install
++# SunOS /usr/etc/install
++# IRIX /sbin/install
++# AIX /bin/install
++# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
++# AFS /usr/afsws/bin/install, which mishandles nonexistent args
++# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
++# ./install, which can be erroneously created by make from ./install.sh.
++echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
++echo "configure:1370: checking for a BSD compatible install" >&5
++if test -z "$INSTALL"; then
++if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
++ for ac_dir in $PATH; do
++ # Account for people who put trailing slashes in PATH elements.
++ case "$ac_dir/" in
++ /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
++ *)
++ # OSF1 and SCO ODT 3.0 have their own names for install.
++ # Don't use installbsd from OSF since it installs stuff as root
++ # by default.
++ for ac_prog in ginstall scoinst install; do
++ if test -f $ac_dir/$ac_prog; then
++ if test $ac_prog = install &&
++ grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
++ # AIX install. It has an incompatible calling convention.
++ :
++ else
++ ac_cv_path_install="$ac_dir/$ac_prog -c"
++ break 2
++ fi
++ fi
++ done
++ ;;
++ esac
++ done
++ IFS="$ac_save_IFS"
++
++fi
++ if test "${ac_cv_path_install+set}" = set; then
++ INSTALL="$ac_cv_path_install"
++ else
++ # As a last resort, use the slow shell script. We don't cache a
++ # path for INSTALL within a source directory, because that will
++ # break other packages using the cache if that directory is
++ # removed, or if the path is relative.
++ INSTALL="$ac_install_sh"
++ fi
++fi
++echo "$ac_t""$INSTALL" 1>&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_PROGRAM}'
++
++test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
++
++
++echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
++echo "configure:1424: checking whether to enable maintainer-specific portions of Makefiles" >&5
++ # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
++if test "${enable_maintainer_mode+set}" = set; then
++ enableval="$enable_maintainer_mode"
++ USE_MAINTAINER_MODE=$enableval
++else
++ USE_MAINTAINER_MODE=no
++fi
++
++ echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6
++
++
++if test $USE_MAINTAINER_MODE = yes; then
++ MAINTAINER_MODE_TRUE=
++ MAINTAINER_MODE_FALSE='#'
++else
++ MAINTAINER_MODE_TRUE='#'
++ MAINTAINER_MODE_FALSE=
++fi
++ MAINT=$MAINTAINER_MODE_TRUE
++
++
++
++# We need AC_EXEEXT to keep automake happy in cygnus mode. However,
++# at least currently, we never actually build a program, so we never
++# need to use $(EXEEXT). Moreover, the test for EXEEXT normally
++# fails, because we are probably configuring with a cross compiler
++# which can't create executables. So we include AC_EXEEXT to keep
++# automake happy, but we don't execute it, since we don't care about
++# the result.
++if false; then
++
++
++echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
++echo "configure:1458: checking for executable suffix" >&5
++if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++ if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
++ ac_cv_exeext=.exe
++else
++ rm -f conftest*
++ echo 'int main () { return 0; }' > conftest.$ac_ext
++ ac_cv_exeext=
++ if { (eval echo configure:1468: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
++ for file in conftest.*; do
++ case $file in
++ *.c | *.o | *.obj) ;;
++ *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
++ esac
++ done
++ else
++ { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; }
++ fi
++ rm -f conftest*
++ test x"${ac_cv_exeext}" = x && ac_cv_exeext=no
++fi
++fi
++
++EXEEXT=""
++test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext}
++echo "$ac_t""${ac_cv_exeext}" 1>&6
++ac_exeext=$EXEEXT
++
++fi
++
++. ${newlib_basedir}/configure.host
++
++newlib_cflags="${newlib_cflags} -fno-builtin"
++
++NEWLIB_CFLAGS=${newlib_cflags}
++
++
++LDFLAGS=${ldflags}
++
++
++
++
++if test x${newlib_elix_level} = x0; then
++ ELIX_LEVEL_0_TRUE=
++ ELIX_LEVEL_0_FALSE='#'
++else
++ ELIX_LEVEL_0_TRUE='#'
++ ELIX_LEVEL_0_FALSE=
++fi
++
++
++if test x${newlib_elix_level} = x1; then
++ ELIX_LEVEL_1_TRUE=
++ ELIX_LEVEL_1_FALSE='#'
++else
++ ELIX_LEVEL_1_TRUE='#'
++ ELIX_LEVEL_1_FALSE=
++fi
++
++
++if test x${newlib_elix_level} = x2; then
++ ELIX_LEVEL_2_TRUE=
++ ELIX_LEVEL_2_FALSE='#'
++else
++ ELIX_LEVEL_2_TRUE='#'
++ ELIX_LEVEL_2_FALSE=
++fi
++
++
++if test x${newlib_elix_level} = x3; then
++ ELIX_LEVEL_3_TRUE=
++ ELIX_LEVEL_3_FALSE='#'
++else
++ ELIX_LEVEL_3_TRUE='#'
++ ELIX_LEVEL_3_FALSE=
++fi
++
++
++if test x${newlib_elix_level} = x4; then
++ ELIX_LEVEL_4_TRUE=
++ ELIX_LEVEL_4_FALSE='#'
++else
++ ELIX_LEVEL_4_TRUE='#'
++ ELIX_LEVEL_4_FALSE=
++fi
++
++
++
++if test x${use_libtool} = xyes; then
++ USE_LIBTOOL_TRUE=
++ USE_LIBTOOL_FALSE='#'
++else
++ USE_LIBTOOL_TRUE='#'
++ USE_LIBTOOL_FALSE=
++fi
++
++# Hard-code OBJEXT. Normally it is set by AC_OBJEXT, but we
++# use oext, which is set in configure.host based on the target platform.
++OBJEXT=${oext}
++
++
++
++
++
++
++
++
++
++
++trap '' 1 2 15
++cat > confcache <<\EOF
++# This file is a shell script that caches the results of configure
++# tests run on this system so they can be shared between configure
++# scripts and configure runs. It is not useful on other systems.
++# If it contains results you don't want to keep, you may remove or edit it.
++#
++# By default, configure uses ./config.cache as the cache file,
++# creating it if it does not exist already. You can give configure
++# the --cache-file=FILE option to use a different cache file; that is
++# what configure does when it calls configure scripts in
++# subdirectories, so they share the cache.
++# Giving --cache-file=/dev/null disables caching, for debugging configure.
++# config.status only pays attention to the cache file if you give it the
++# --recheck option to rerun configure.
++#
++EOF
++# The following way of writing the cache mishandles newlines in values,
++# but we know of no workaround that is simple, portable, and efficient.
++# So, don't put newlines in cache variables' values.
++# Ultrix sh set writes to stderr and can't be redirected directly,
++# and sets the high bit in the cache file unless we assign to the vars.
++(set) 2>&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 \
++ -e "s/'/'\\\\''/g" \
++ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
++ ;;
++ *)
++ # `set' quotes correctly as required by POSIX, so do not add quotes.
++ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
++ ;;
++ esac >> confcache
++if cmp -s $cache_file confcache; then
++ :
++else
++ if test -w $cache_file; then
++ echo "updating cache $cache_file"
++ cat confcache > $cache_file
++ else
++ echo "not updating unwritable cache $cache_file"
++ fi
++fi
++rm -f confcache
++
++trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
++
++test "x$prefix" = xNONE && prefix=$ac_default_prefix
++# Let make expand exec_prefix.
++test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
++
++# Any assignment to VPATH causes Sun make to only execute
++# the first set of double-colon rules, so remove it if not needed.
++# If there is a colon in the path, we need to keep it.
++if test "x$srcdir" = x.; then
++ ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
++fi
++
++trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
++
++# Transform confdefs.h into DEFS.
++# Protect against shell expansion while executing Makefile rules.
++# Protect against Makefile macro expansion.
++cat > conftest.defs <<\EOF
++s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
++s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
++s%\[%\\&%g
++s%\]%\\&%g
++s%\$%$$%g
++EOF
++DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
++rm -f conftest.defs
++
++
++# Without the "./", some shells look in PATH for config.status.
++: ${CONFIG_STATUS=./config.status}
++
++echo creating $CONFIG_STATUS
++rm -f $CONFIG_STATUS
++cat > $CONFIG_STATUS </dev/null | sed 1q`:
++#
++# $0 $ac_configure_args
++#
++# Compiler output produced by configure, useful for debugging
++# configure, is in ./config.log if it exists.
++
++ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
++for ac_option
++do
++ case "\$ac_option" in
++ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
++ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
++ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
++ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
++ echo "$CONFIG_STATUS generated by autoconf version 2.13"
++ exit 0 ;;
++ -help | --help | --hel | --he | --h)
++ echo "\$ac_cs_usage"; exit 0 ;;
++ *) echo "\$ac_cs_usage"; exit 1 ;;
++ esac
++done
++
++ac_given_srcdir=$srcdir
++ac_given_INSTALL="$INSTALL"
++
++trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
++EOF
++cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF
++$ac_vpsub
++$extrasub
++s%@SHELL@%$SHELL%g
++s%@CFLAGS@%$CFLAGS%g
++s%@CPPFLAGS@%$CPPFLAGS%g
++s%@CXXFLAGS@%$CXXFLAGS%g
++s%@FFLAGS@%$FFLAGS%g
++s%@DEFS@%$DEFS%g
++s%@LDFLAGS@%$LDFLAGS%g
++s%@LIBS@%$LIBS%g
++s%@exec_prefix@%$exec_prefix%g
++s%@prefix@%$prefix%g
++s%@program_transform_name@%$program_transform_name%g
++s%@bindir@%$bindir%g
++s%@sbindir@%$sbindir%g
++s%@libexecdir@%$libexecdir%g
++s%@datadir@%$datadir%g
++s%@sysconfdir@%$sysconfdir%g
++s%@sharedstatedir@%$sharedstatedir%g
++s%@localstatedir@%$localstatedir%g
++s%@libdir@%$libdir%g
++s%@includedir@%$includedir%g
++s%@oldincludedir@%$oldincludedir%g
++s%@infodir@%$infodir%g
++s%@mandir@%$mandir%g
++s%@MAY_SUPPLY_SYSCALLS_TRUE@%$MAY_SUPPLY_SYSCALLS_TRUE%g
++s%@MAY_SUPPLY_SYSCALLS_FALSE@%$MAY_SUPPLY_SYSCALLS_FALSE%g
++s%@newlib_basedir@%$newlib_basedir%g
++s%@host@%$host%g
++s%@host_alias@%$host_alias%g
++s%@host_cpu@%$host_cpu%g
++s%@host_vendor@%$host_vendor%g
++s%@host_os@%$host_os%g
++s%@target@%$target%g
++s%@target_alias@%$target_alias%g
++s%@target_cpu@%$target_cpu%g
++s%@target_vendor@%$target_vendor%g
++s%@target_os@%$target_os%g
++s%@build@%$build%g
++s%@build_alias@%$build_alias%g
++s%@build_cpu@%$build_cpu%g
++s%@build_vendor@%$build_vendor%g
++s%@build_os@%$build_os%g
++s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
++s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
++s%@INSTALL_DATA@%$INSTALL_DATA%g
++s%@PACKAGE@%$PACKAGE%g
++s%@VERSION@%$VERSION%g
++s%@ACLOCAL@%$ACLOCAL%g
++s%@AUTOCONF@%$AUTOCONF%g
++s%@AUTOMAKE@%$AUTOMAKE%g
++s%@AUTOHEADER@%$AUTOHEADER%g
++s%@MAKEINFO@%$MAKEINFO%g
++s%@SET_MAKE@%$SET_MAKE%g
++s%@CC@%$CC%g
++s%@AS@%$AS%g
++s%@AR@%$AR%g
++s%@RANLIB@%$RANLIB%g
++s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g
++s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g
++s%@MAINT@%$MAINT%g
++s%@EXEEXT@%$EXEEXT%g
++s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g
++s%@ELIX_LEVEL_0_TRUE@%$ELIX_LEVEL_0_TRUE%g
++s%@ELIX_LEVEL_0_FALSE@%$ELIX_LEVEL_0_FALSE%g
++s%@ELIX_LEVEL_1_TRUE@%$ELIX_LEVEL_1_TRUE%g
++s%@ELIX_LEVEL_1_FALSE@%$ELIX_LEVEL_1_FALSE%g
++s%@ELIX_LEVEL_2_TRUE@%$ELIX_LEVEL_2_TRUE%g
++s%@ELIX_LEVEL_2_FALSE@%$ELIX_LEVEL_2_FALSE%g
++s%@ELIX_LEVEL_3_TRUE@%$ELIX_LEVEL_3_TRUE%g
++s%@ELIX_LEVEL_3_FALSE@%$ELIX_LEVEL_3_FALSE%g
++s%@ELIX_LEVEL_4_TRUE@%$ELIX_LEVEL_4_TRUE%g
++s%@ELIX_LEVEL_4_FALSE@%$ELIX_LEVEL_4_FALSE%g
++s%@USE_LIBTOOL_TRUE@%$USE_LIBTOOL_TRUE%g
++s%@USE_LIBTOOL_FALSE@%$USE_LIBTOOL_FALSE%g
++s%@OBJEXT@%$OBJEXT%g
++s%@oext@%$oext%g
++s%@aext@%$aext%g
++s%@libm_machine_dir@%$libm_machine_dir%g
++s%@machine_dir@%$machine_dir%g
++s%@sys_dir@%$sys_dir%g
++
++CEOF
++EOF
++
++cat >> $CONFIG_STATUS <<\EOF
++
++# Split the substitutions into bite-sized pieces for seds with
++# small command number limits, like on Digital OSF/1 and HP-UX.
++ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
++ac_file=1 # Number of current file.
++ac_beg=1 # First line for current file.
++ac_end=$ac_max_sed_cmds # Line after last line for current file.
++ac_more_lines=:
++ac_sed_cmds=""
++while $ac_more_lines; do
++ if test $ac_beg -gt 1; then
++ sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
++ else
++ sed "${ac_end}q" conftest.subs > conftest.s$ac_file
++ fi
++ if test ! -s conftest.s$ac_file; then
++ ac_more_lines=false
++ rm -f conftest.s$ac_file
++ else
++ if test -z "$ac_sed_cmds"; then
++ ac_sed_cmds="sed -f conftest.s$ac_file"
++ else
++ ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
++ fi
++ ac_file=`expr $ac_file + 1`
++ ac_beg=$ac_end
++ ac_end=`expr $ac_end + $ac_max_sed_cmds`
++ fi
++done
++if test -z "$ac_sed_cmds"; then
++ ac_sed_cmds=cat
++fi
++EOF
++
++cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF
++for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
++ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
++ case "$ac_file" in
++ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
++ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
++ *) ac_file_in="${ac_file}.in" ;;
++ esac
++
++ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
++
++ # Remove last slash and all that follows it. Not all systems have dirname.
++ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
++ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
++ # The file is in a subdirectory.
++ test ! -d "$ac_dir" && mkdir "$ac_dir"
++ ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
++ # A "../" for each directory in $ac_dir_suffix.
++ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
++ else
++ ac_dir_suffix= ac_dots=
++ fi
++
++ case "$ac_given_srcdir" in
++ .) srcdir=.
++ if test -z "$ac_dots"; then top_srcdir=.
++ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
++ /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
++ *) # Relative path.
++ srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
++ top_srcdir="$ac_dots$ac_given_srcdir" ;;
++ esac
++
++ case "$ac_given_INSTALL" in
++ [/$]*) INSTALL="$ac_given_INSTALL" ;;
++ *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
++ esac
++
++ echo creating "$ac_file"
++ rm -f "$ac_file"
++ configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
++ case "$ac_file" in
++ *Makefile*) ac_comsub="1i\\
++# $configure_input" ;;
++ *) ac_comsub= ;;
++ esac
++
++ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
++ sed -e "$ac_comsub
++s%@configure_input@%$configure_input%g
++s%@srcdir@%$srcdir%g
++s%@top_srcdir@%$top_srcdir%g
++s%@INSTALL@%$INSTALL%g
++" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
++fi; done
++rm -f conftest.s*
++
++EOF
++cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF
++
++exit 0
++EOF
++chmod +x $CONFIG_STATUS
++rm -fr confdefs* $ac_clean_files
++test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
++
+--- newlib-1.13.0.orig/newlib/libc/sys/psp/configure.in 1969-12-31 19:00:00.000000000 -0500
++++ newlib-psp/newlib/libc/sys/psp/configure.in 2005-07-28 15:42:00.000000000 -0400
+@@ -0,0 +1,12 @@
++dnl This is the newlib/libc/sys/psp configure.in file.
++dnl Process this file with autoconf to produce a configure script.
++
++AC_PREREQ(2.5)
++AC_INIT(libcglue.c)
++
++dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake.
++AC_CONFIG_AUX_DIR(../../../..)
++
++NEWLIB_CONFIGURE(../../..)
++
++AC_OUTPUT(Makefile)
+--- newlib-1.13.0.orig/newlib/libc/sys/psp/crt0.c 1969-12-31 19:00:00.000000000 -0500
++++ newlib-psp/newlib/libc/sys/psp/crt0.c 2005-07-28 15:42:00.000000000 -0400
+@@ -0,0 +1,3 @@
++/* The real crt0.c lives in PSPSDK. */
++
++void _start() { }
+--- newlib-1.13.0.orig/newlib/libc/sys/psp/libcglue.c 1969-12-31 19:00:00.000000000 -0500
++++ newlib-psp/newlib/libc/sys/psp/libcglue.c 2005-11-01 11:23:24.000000000 -0500
+@@ -0,0 +1,700 @@
++/*
++ * 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
++ * Copyright (c) 2005 James Forshaw
++ * Copyright (c) 2005 John Kelley
++ * Copyright (c) 2005 Jim Paris
++ *
++ */
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++
++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);
++
++#define __PSP_FILENO_MAX 1024
++extern char * __psp_filename_map[__PSP_FILENO_MAX];
++
++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 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;
++ }
++
++ fd = sceIoOpen(dest, sce_flags, mode);
++ if ((fd >= 0) && (fd < __PSP_FILENO_MAX)) {
++ __psp_filename_map[fd] = strdup(dest);
++ }
++ return __psp_set_errno(fd);
++}
++#endif
++
++#ifdef F__close
++int _close(int fd)
++{
++ if (fd < 0) {
++ errno = EBADF;
++ return -1;
++ }
++
++ if ((fd >= 0) && (fd < __PSP_FILENO_MAX)) {
++ if (__psp_filename_map[fd] != NULL) {
++ free(__psp_filename_map[fd]);
++ __psp_filename_map[fd] = NULL;
++ }
++ }
++
++ return __psp_set_errno(sceIoClose(fd));
++}
++#endif
++
++#ifdef F__read
++int _read(int fd, void *buf, size_t size)
++{
++ if (fd < 0) {
++ errno = EBADF;
++ return -1;
++ }
++
++ return __psp_set_errno(sceIoRead(fd, buf, size));
++}
++#endif
++
++#ifdef F__write
++int _write(int fd, const void *buf, size_t size)
++{
++ if (fd < 0) {
++ errno = EBADF;
++ return -1;
++ }
++
++ return __psp_set_errno(sceIoWrite(fd, buf, size));
++}
++#endif
++
++#ifdef F__lseek
++off_t _lseek(int fd, off_t offset, int whence)
++{
++ if (fd < 0) {
++ errno = EBADF;
++ return -1;
++ }
++
++ /* We don't have to do anything with the whence argument because SEEK_* == PSP_SEEK_*. */
++ return (off_t) __psp_set_errno(sceIoLseek(fd, offset, whence));
++}
++#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 __psp_set_errno(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));
++
++/* 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 {
++ /* TODO: Here we should distinguish between a PRX and a normal
++ executable. Right now we assume it's an executable. */
++ if (0 /* is a prx */) {
++ 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 ((fd >= 0) && (fd < __PSP_FILENO_MAX)) {
++ if (__psp_filename_map[fd] != NULL) {
++ if (strcmp(__psp_filename_map[fd], " __PSP_STDIO") == 0) {
++ memset(sbuf, '\0', sizeof(struct stat));
++ sbuf->st_mode = S_IFCHR;
++ return 0;
++ } else {
++ ret = stat(__psp_filename_map[fd], sbuf);
++
++ /* Find true size of the open file */
++ oldpos = sceIoLseek(fd, 0, SEEK_CUR);
++ if (oldpos != (off_t) -1) {
++ sbuf->st_size = (off_t) sceIoLseek(fd, 0, SEEK_END);
++ sceIoLseek(fd, oldpos, SEEK_SET);
++ }
++
++ return ret;
++ }
++ }
++ }
++ errno = EBADF;
++ return -1;
++}
++#endif
++
++#ifdef F_isatty
++int isatty(int fd)
++{
++ if ((fd >= 0) && (fd < __PSP_FILENO_MAX)) {
++ if (__psp_filename_map[fd] != NULL) {
++ if (strcmp(__psp_filename_map[fd], " __PSP_STDIO") == 0) {
++ return 1;
++ } else {
++ return 0;
++ }
++ }
++ }
++ 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_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
++
++/* 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[])
++{
++ int fd;
++ (void) argc;
++
++ /* Initialize cwd from this program's path */
++ __psp_init_cwd(argv[0]);
++
++ /* Initialize filenamap */
++ memset(__psp_filename_map, '\0', sizeof(char *) * __PSP_FILENO_MAX);
++ fd = sceKernelStdin();
++ if ((fd >= 0) && (fd < __PSP_FILENO_MAX)) {
++ __psp_filename_map[fd] = strdup(" __PSP_STDIO");
++ }
++ fd = sceKernelStdout();
++ if ((fd >= 0) && (fd < __PSP_FILENO_MAX)) {
++ __psp_filename_map[fd] = strdup(" __PSP_STDIO");
++ }
++ fd = sceKernelStderr();
++ if ((fd >= 0) && (fd < __PSP_FILENO_MAX)) {
++ __psp_filename_map[fd] = strdup(" __PSP_STDIO");
++ }
++}
++
++#endif /* F__exit */
++
+--- newlib-1.13.0.orig/newlib/libc/sys/psp/pspcwd.c 1969-12-31 19:00:00.000000000 -0500
++++ newlib-psp/newlib/libc/sys/psp/pspcwd.c 2005-10-06 05:24:40.000000000 -0400
+@@ -0,0 +1,167 @@
++/*
++ * 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
++ * Copyright (c) 2005 James Forshaw
++ * Copyright (c) 2005 John Kelley
++ * Copyright (c) 2005 Jim Paris
++ *
++ */
++#include
++#include
++#include
++
++#include
++#include
++
++char __psp_cwd[MAXPATHLEN + 1] = { 0 };
++char * __psp_filename_map[1024];
++
++/* 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);
++}
++
+--- newlib-1.13.0.orig/newlib/libc/sys/psp/sys/dirent.h 1969-12-31 19:00:00.000000000 -0500
++++ newlib-psp/newlib/libc/sys/psp/sys/dirent.h 2005-10-20 00:38:25.000000000 -0400
+@@ -0,0 +1,39 @@
++#ifndef _SYS_DIRENT_H
++#define _SYS_DIRENT_H
++
++/* PSP dirent.h, based on pspiofilemgr_dirent.h
++ by Jim Paris */
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++#include
++
++#define MAXNAMLEN 255
++
++/* Same as SceIoDirent, just with a different name. */
++struct dirent {
++ /** File status. */
++ SceIoStat d_stat;
++ /** File name. */
++ char d_name[256];
++ /** Device-specific data. */
++ void * d_private;
++ int dummy;
++};
++
++typedef struct {
++ SceUID uid;
++ struct dirent de;
++} DIR;
++
++DIR *opendir (const char *);
++struct dirent *readdir (DIR *);
++int closedir (DIR *);
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif
+--- newlib-1.13.0.orig/newlib/libc/sys/psp/sys/errno.h 1969-12-31 19:00:00.000000000 -0500
++++ newlib-psp/newlib/libc/sys/psp/sys/errno.h 2005-10-25 05:58:18.000000000 -0400
+@@ -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
++
++#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 */
+--- newlib-1.13.0.orig/newlib/libc/sys/psp/xprintf.c 1969-12-31 19:00:00.000000000 -0500
++++ newlib-psp/newlib/libc/sys/psp/xprintf.c 2005-11-01 03:28:52.000000000 -0500
+@@ -0,0 +1,964 @@
++/*
++ * 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
++ * Copyright (c) 2005 James Forshaw
++ * Copyright (c) 2005 John Kelley
++ *
++ * $Id: newlib-1.13.0.patch,v 1.5 2005-11-03 19:19:12 wntrmute Exp $
++ */
++/* 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
++#include
++#include
++
++#include
++#include
++
++/*
++** 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; idxtype;
++ }
++
++ /*
++ ** 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 && precision3 || (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+precision0 || 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=0 && precision=0x7f ){
++ buf[i++] = '^';
++ buf[i] = (c&0x1f)+0x40;
++ }else{
++ buf[i] = c;
++ }
++ }
++ bufpt = buf;
++ length = i;
++ if( precision>=0 && precision0 ){
++ 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 && head0 ) *(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
++__attribute__((weak))
++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
++*/
++__attribute__((weak))
++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
diff --git a/dkpsp/scripts/build-gcc.sh b/dkpsp/scripts/build-gcc.sh
index 4edc884..fbbd0d6 100644
--- a/dkpsp/scripts/build-gcc.sh
+++ b/dkpsp/scripts/build-gcc.sh
@@ -53,9 +53,9 @@ cd $BUILDSCRIPTDIR
svn checkout svn://svn.pspdev.org/psp/trunk/pspsdk || { echo "ERROR GETTING PSPSDK"; exit 1; }
cd pspsdk
-./bootstrap || { echo "ERROR RUNNING PSPSDK BOOSTRAP"; exit 1; }
-./configure || { echo "ERROR RUNNING PSPSDK CONFIGURE"; exit 1; }
-$MAKE install-data || { echo "ERROR INSTALLING PSPSDK HEADERS"; exit 1; }
+./bootstrap || { echo "ERROR RUNNING PSPSDK BOOTSTRAP"; exit 1; }
+./configure || { echo "ERROR RUNNING PSPSDK CONFIGURE"; exit 1; }
+$MAKE install-data || { echo "ERROR INSTALLING PSPSDK HEADERS"; exit 1; }
#---------------------------------------------------------------------------------