summaryrefslogtreecommitdiff
path: root/packages/gcc/gcc-3.3.3
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /packages/gcc/gcc-3.3.3
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'packages/gcc/gcc-3.3.3')
-rw-r--r--packages/gcc/gcc-3.3.3/arm-10730.dpatch51
-rw-r--r--packages/gcc/gcc-3.3.3/arm-12527.dpatch84
-rw-r--r--packages/gcc/gcc-3.3.3/arm-14302.patch24
-rw-r--r--packages/gcc/gcc-3.3.3/arm-14558.dpatch51
-rw-r--r--packages/gcc/gcc-3.3.3/arm-common.dpatch50
-rw-r--r--packages/gcc/gcc-3.3.3/arm-gotoff.dpatch135
-rw-r--r--packages/gcc/gcc-3.3.3/arm-ldm-peephole.patch91
-rw-r--r--packages/gcc/gcc-3.3.3/arm-ldm.dpatch148
-rw-r--r--packages/gcc/gcc-3.3.3/arm-tune.patch9
-rw-r--r--packages/gcc/gcc-3.3.3/arm-xscale.patch174
-rw-r--r--packages/gcc/gcc-3.3.3/bash3.patch20
-rw-r--r--packages/gcc/gcc-3.3.3/config.sub.patch72
-rw-r--r--packages/gcc/gcc-3.3.3/empty6.patch21
-rw-r--r--packages/gcc/gcc-3.3.3/gcc-uclibc-3.3-100-conf.patch1593
-rw-r--r--packages/gcc/gcc-3.3.3/gcc-uclibc-3.3-110-conf.patch55
-rw-r--r--packages/gcc/gcc-3.3.3/gcc-uclibc-3.3-120-softfloat.patch14
-rw-r--r--packages/gcc/gcc-3.3.3/gcc-uclibc-3.3-200-code.patch3021
-rw-r--r--packages/gcc/gcc-3.3.3/gcc34-15089.patch19
-rw-r--r--packages/gcc/gcc-3.3.3/libibery-crosstool.patch683
-rw-r--r--packages/gcc/gcc-3.3.3/pr10392-1-test.patch65
-rw-r--r--packages/gcc/gcc-3.3.3/pr10412-1-test.patch46
-rw-r--r--packages/gcc/gcc-3.3.3/pr10589-1-test.patch17
-rw-r--r--packages/gcc/gcc-3.3.3/pr11162-1-test.patch25
-rw-r--r--packages/gcc/gcc-3.3.3/pr11587-1-test.patch39
-rw-r--r--packages/gcc/gcc-3.3.3/pr11608.patch26
-rw-r--r--packages/gcc/gcc-3.3.3/pr11736-1-test.patch48
-rw-r--r--packages/gcc/gcc-3.3.3/pr11864-1-test.patch45
-rw-r--r--packages/gcc/gcc-3.3.3/pr12009.patch85
-rw-r--r--packages/gcc/gcc-3.3.3/pr12010.patch81
-rw-r--r--packages/gcc/gcc-3.3.3/pr13260-test.patch56
-rw-r--r--packages/gcc/gcc-3.3.3/pr9365-1-test.patch43
-rw-r--r--packages/gcc/gcc-3.3.3/reverse-compare.patch31
-rw-r--r--packages/gcc/gcc-3.3.3/sh-lib1funcs_sizeAndType.patch610
-rw-r--r--packages/gcc/gcc-3.3.3/sh-pic-set_fpscr-gcc-3.3.2.patch67
-rw-r--r--packages/gcc/gcc-3.3.3/thunk3.patch23
-rw-r--r--packages/gcc/gcc-3.3.3/zecke-xgcc-cpp.patch13
36 files changed, 0 insertions, 7635 deletions
diff --git a/packages/gcc/gcc-3.3.3/arm-10730.dpatch b/packages/gcc/gcc-3.3.3/arm-10730.dpatch
deleted file mode 100644
index 5938509cf9..0000000000
--- a/packages/gcc/gcc-3.3.3/arm-10730.dpatch
+++ /dev/null
@@ -1,51 +0,0 @@
-#! /bin/sh -e
-
-dir=
-if [ $# -eq 3 -a "$2" = '-d' ]; then
- pdir="-d $3"
- dir="$3/"
-elif [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-case "$1" in
- -patch)
- patch $pdir -f --no-backup-if-mismatch -p0 < $0
- #cd ${dir}gcc && autoconf
- ;;
- -unpatch)
- patch $pdir -f --no-backup-if-mismatch -R -p0 < $0
- #rm ${dir}gcc/configure
- ;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-esac
-exit 0
-
-# DP: 2003-05-15 Philip Blundell <philb@gnu.org>
-# DP:
-# DP: PR target/10730
-# DP: * config/arm/arm.c (adjacent_mem_locations): Reject offsets
-# DP: involving invalid constants.
-
-Index: arm.c
-===================================================================
-RCS file: /cvs/gcc/gcc/gcc/config/arm/arm.c,v
-retrieving revision 1.271
-diff -u -p -r1.271 arm.c
---- gcc/config/arm/arm.c 10 May 2003 13:10:46 -0000 1.271
-+++ gcc/config/arm/arm.c 14 May 2003 21:26:26 -0000
-@@ -4567,6 +4571,12 @@ adjacent_mem_locations (a, b)
- else
- reg1 = REGNO (XEXP (b, 0));
-
-+ /* Don't accept any offset that will require multiple instructions to handle,
-+ since this would cause the arith_adjacentmem pattern to output an overlong
-+ sequence. */
-+ if (!const_ok_for_op (PLUS, val0) || !const_ok_for_op (PLUS, val1))
-+ return 0;
-+
- return (reg0 == reg1) && ((val1 - val0) == 4 || (val0 - val1) == 4);
- }
- return 0;
diff --git a/packages/gcc/gcc-3.3.3/arm-12527.dpatch b/packages/gcc/gcc-3.3.3/arm-12527.dpatch
deleted file mode 100644
index c626eb1589..0000000000
--- a/packages/gcc/gcc-3.3.3/arm-12527.dpatch
+++ /dev/null
@@ -1,84 +0,0 @@
-#! /bin/sh -e
-
-dir=
-if [ $# -eq 3 -a "$2" = '-d' ]; then
- pdir="-d $3"
- dir="$3/"
-elif [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-case "$1" in
- -patch)
- patch $pdir -f --no-backup-if-mismatch -p0 < $0
- #cd ${dir}gcc && autoconf
- ;;
- -unpatch)
- patch $pdir -f --no-backup-if-mismatch -R -p0 < $0
- #rm ${dir}gcc/configure
- ;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-esac
-exit 0
-
-# DP: 2004-01-14 Richard Earnshaw <rearnsha@arm.com>
-# DP:
-# DP: PR bootstrap/12527
-# DP: * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
-# DP: Move linux-gas.h and linux-elf.h before aout.h.
-# DP: * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
-# DP: * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
-
-
---- gcc/config.gcc.orig 2004-01-21 07:45:04.000000000 +0100
-+++ gcc/config.gcc 2004-02-05 23:17:56.000000000 +0100
-@@ -698,7 +698,7 @@
- use_collect2=yes
- ;;
- arm*-*-linux*) # ARM GNU/Linux with ELF
-- tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/linux-gas.h arm/linux-elf.h"
-+ tm_file="dbxelf.h elfos.h arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
- tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
- extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
- gnu_ld=yes
---- gcc/config/arm/arm.h.orig 2003-08-12 07:46:29.000000000 +0200
-+++ gcc/config/arm/arm.h 2004-02-05 23:14:03.000000000 +0100
-@@ -1770,13 +1770,19 @@
- /* Emit RTL insns to initialize the variable parts of a trampoline.
- FNADDR is an RTX for the address of the function's pure code.
- CXT is an RTX for the static chain value for the function. */
--#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \
--{ \
-- emit_move_insn \
-- (gen_rtx_MEM (SImode, plus_constant (TRAMP, TARGET_ARM ? 8 : 16)), CXT); \
-- emit_move_insn \
-- (gen_rtx_MEM (SImode, plus_constant (TRAMP, TARGET_ARM ? 12 : 20)), FNADDR); \
-+#ifndef INITIALIZE_TRAMPOLINE
-+#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \
-+{ \
-+ emit_move_insn (gen_rtx_MEM (SImode, \
-+ plus_constant (TRAMP, \
-+ TARGET_ARM ? 8 : 16)), \
-+ CXT); \
-+ emit_move_insn (gen_rtx_MEM (SImode, \
-+ plus_constant (TRAMP, \
-+ TARGET_ARM ? 12 : 20)), \
-+ FNADDR); \
- }
-+#endif
-
-
- /* Addressing modes, and classification of registers for them. */
---- gcc/config/arm/linux-elf.h.orig 2003-09-21 22:38:15.000000000 +0200
-+++ gcc/config/arm/linux-elf.h 2004-02-05 23:14:03.000000000 +0100
-@@ -34,6 +34,8 @@
- #undef TARGET_DEFAULT
- #define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
-
-+#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
-+
- #define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
-
- #undef MULTILIB_DEFAULTS
diff --git a/packages/gcc/gcc-3.3.3/arm-14302.patch b/packages/gcc/gcc-3.3.3/arm-14302.patch
deleted file mode 100644
index 6ac74fcc05..0000000000
--- a/packages/gcc/gcc-3.3.3/arm-14302.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-2004-02-26 Richard Earnshaw <rearnsha@arm.com>
- Daniel Jacobowitz <drow@mvista.com>
-
- PR target/14302
- * arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS): Don't check the mode
- size for minipool references.
-
-Index: arm.h
-===================================================================
-RCS file: /cvs/gcc/gcc/gcc/config/arm/arm.h,v
-retrieving revision 1.168.2.1
-retrieving revision 1.168.2.2
-diff -u -r1.168.2.1 -r1.168.2.2
---- gcc/config/arm/arm.h 25 Feb 2004 11:50:24 -0000 1.168.2.1
-+++ gcc/config/arm/arm.h 26 Feb 2004 14:10:01 -0000 1.168.2.2
-@@ -2029,7 +2029,7 @@
- && GET_CODE (XEXP (X, 0)) == REG \
- && ARM_REG_OK_FOR_BASE_P (XEXP (X, 0))) \
- goto LABEL; \
-- else if (GET_MODE_SIZE (MODE) >= 4 && reload_completed \
-+ else if (reload_completed \
- && (GET_CODE (X) == LABEL_REF \
- || (GET_CODE (X) == CONST \
- && GET_CODE (XEXP ((X), 0)) == PLUS \
diff --git a/packages/gcc/gcc-3.3.3/arm-14558.dpatch b/packages/gcc/gcc-3.3.3/arm-14558.dpatch
deleted file mode 100644
index 9d15eaecd8..0000000000
--- a/packages/gcc/gcc-3.3.3/arm-14558.dpatch
+++ /dev/null
@@ -1,51 +0,0 @@
-#! /bin/sh -e
-
-# DP: Patch for invalid QImode insn resulting from HImode reload on ARMv3
-
-dir=
-if [ $# -eq 3 -a "$2" = '-d' ]; then
- pdir="-d $3"
- dir="$3/"
-elif [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-case "$1" in
- -patch)
- patch $pdir -f --no-backup-if-mismatch -p0 < $0
- #cd ${dir}gcc && autoconf
- ;;
- -unpatch)
- patch $pdir -f --no-backup-if-mismatch -R -p0 < $0
- #rm ${dir}gcc/configure
- ;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-esac
-exit 0
-
---- gcc/config/arm/arm.h.old Thu Feb 19 13:48:41 2004
-+++ gcc/config/arm/arm.h Thu Feb 19 13:56:31 2004
-@@ -2003,10 +2003,17 @@
- && INTVAL (op) <= 31) \
- goto LABEL; \
- } \
-- /* NASTY: Since this limits the addressing of unsigned \
-- byte loads. */ \
-- range = ((MODE) == HImode || (MODE) == QImode) \
-- ? (arm_arch4 ? 256 : 4095) : 4096; \
-+ /* XXX For ARM v4 we may be doing a sign-extend operation \
-+ during the load, but that has a restricted addressing \
-+ range and we are unable to tell here whether that is the \
-+ case. To be safe we restrict all loads to that \
-+ range. */ \
-+ if (arm_arch4) \
-+ range = (mode == HImode || mode == QImode) ? 256 : 4096; \
-+ else if (mode == HImode) \
-+ range = 4095; \
-+ else \
-+ range = 4096; \
- if (code == CONST_INT && INTVAL (INDEX) < range \
- && INTVAL (INDEX) > -range) \
- goto LABEL; \
diff --git a/packages/gcc/gcc-3.3.3/arm-common.dpatch b/packages/gcc/gcc-3.3.3/arm-common.dpatch
deleted file mode 100644
index 232726788a..0000000000
--- a/packages/gcc/gcc-3.3.3/arm-common.dpatch
+++ /dev/null
@@ -1,50 +0,0 @@
-#! /bin/sh -e
-
-src=gcc
-if [ $# -eq 3 -a "$2" = '-d' ]; then
- pdir="-d $3"
- src=$3/gcc
-elif [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-case "$1" in
- -patch)
- patch $pdir -f --no-backup-if-mismatch -p0 --fuzz 10 < $0
- ;;
- -unpatch)
- patch $pdir -f --no-backup-if-mismatch -R -p0 --fuzz 10 < $0
- ;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-esac
-exit 0
-
-# DP: delete ASM_OUTPUT_ALIGNED_COMMON from arm/elf.h, since it outputs
-# DP: the alignment in bits not bytes.
-
-Index: gcc/config/arm/elf.h
-===================================================================
-RCS file: /cvs/gcc/gcc/gcc/config/arm/elf.h,v
-retrieving revision 1.39
-diff -u -r1.39 elf.h
---- gcc/config/arm/elf.h 21 Nov 2002 21:29:24 -0000 1.39
-+++ gcc/config/arm/elf.h 20 Sep 2003 14:22:46 -0000
-@@ -152,16 +152,6 @@
- #undef TARGET_ASM_NAMED_SECTION
- #define TARGET_ASM_NAMED_SECTION arm_elf_asm_named_section
-
--#undef ASM_OUTPUT_ALIGNED_COMMON
--#define ASM_OUTPUT_ALIGNED_COMMON(STREAM, NAME, SIZE, ALIGN) \
-- do \
-- { \
-- fprintf (STREAM, "\t.comm\t"); \
-- assemble_name (STREAM, NAME); \
-- fprintf (STREAM, ", %d, %d\n", SIZE, ALIGN); \
-- } \
-- while (0)
--
- /* For PIC code we need to explicitly specify (PLT) and (GOT) relocs. */
- #define NEED_PLT_RELOC flag_pic
- #define NEED_GOT_RELOC flag_pic
diff --git a/packages/gcc/gcc-3.3.3/arm-gotoff.dpatch b/packages/gcc/gcc-3.3.3/arm-gotoff.dpatch
deleted file mode 100644
index 610f9430e0..0000000000
--- a/packages/gcc/gcc-3.3.3/arm-gotoff.dpatch
+++ /dev/null
@@ -1,135 +0,0 @@
-#! /bin/sh -e
-
-src=gcc
-if [ $# -eq 3 -a "$2" = '-d' ]; then
- pdir="-d $3"
- src=$3/gcc
-elif [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-case "$1" in
- -patch)
- patch $pdir -f --no-backup-if-mismatch -p0 --fuzz 10 < $0
- ;;
- -unpatch)
- patch $pdir -f --no-backup-if-mismatch -R -p0 --fuzz 10 < $0
- ;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-esac
-exit 0
-
-# DP: use GOTOFF not GOT relocs for .LCn and other local symbols;
-# DP: don't use gotoff for non-static functions, even if defined locally
-
---- gcc/config/arm/arm.c 2003-06-14 15:20:53.000000000 +0100
-+++ gcc/config/arm/arm.c 2004-03-06 15:15:32.000000000 +0000
-@@ -2364,6 +2394,40 @@
- return 1;
- }
-
-+/* Return true if OP is a symbolic operand that resolves locally. */
-+
-+static int
-+local_symbolic_operand (op, mode)
-+ rtx op;
-+ enum machine_mode mode ATTRIBUTE_UNUSED;
-+{
-+ if (GET_CODE (op) == CONST
-+ && GET_CODE (XEXP (op, 0)) == PLUS
-+ && GET_CODE (XEXP (XEXP (op, 0), 1)) == CONST_INT)
-+ op = XEXP (XEXP (op, 0), 0);
-+
-+ if (GET_CODE (op) == LABEL_REF)
-+ return 1;
-+
-+ if (GET_CODE (op) != SYMBOL_REF)
-+ return 0;
-+
-+ /* These we've been told are local by varasm and encode_section_info
-+ respectively. */
-+ if (CONSTANT_POOL_ADDRESS_P (op) || ENCODED_LOCAL_BINDING_ATTR_P (XSTR (op, 0)))
-+ return 1;
-+
-+ /* There is, however, a not insubstantial body of code in the rest of
-+ the compiler that assumes it can just stick the results of
-+ ASM_GENERATE_INTERNAL_LABEL in a symbol_ref and have done. */
-+ /* ??? This is a hack. Should update the body of the compiler to
-+ always create a DECL an invoke targetm.encode_section_info. */
-+ if (strncmp (arm_strip_name_encoding (XSTR (op, 0)), ".L", 2) == 0)
-+ return 1;
-+
-+ return 0;
-+}
-+
- rtx
- legitimize_pic_address (orig, mode, reg)
- rtx orig;
-@@ -2404,10 +2468,7 @@
- else
- emit_insn (gen_pic_load_addr_thumb (address, orig));
-
-- if ((GET_CODE (orig) == LABEL_REF
-- || (GET_CODE (orig) == SYMBOL_REF &&
-- ENCODED_SHORT_CALL_ATTR_P (XSTR (orig, 0))))
-- && NEED_GOT_RELOC)
-+ if (local_symbolic_operand (orig, Pmode) && NEED_GOT_RELOC)
- pic_ref = gen_rtx_PLUS (Pmode, pic_offset_table_rtx, address);
- else
- {
-@@ -8804,11 +8911,7 @@
- if (NEED_GOT_RELOC && flag_pic && making_const_table &&
- (GET_CODE (x) == SYMBOL_REF || GET_CODE (x) == LABEL_REF))
- {
-- if (GET_CODE (x) == SYMBOL_REF
-- && (CONSTANT_POOL_ADDRESS_P (x)
-- || ENCODED_SHORT_CALL_ATTR_P (XSTR (x, 0))))
-- fputs ("(GOTOFF)", asm_out_file);
-- else if (GET_CODE (x) == LABEL_REF)
-+ if (local_symbolic_operand (x, Pmode))
- fputs ("(GOTOFF)", asm_out_file);
- else
- fputs ("(GOT)", asm_out_file);
-@@ -11335,6 +11418,11 @@
- else if (! TREE_PUBLIC (decl))
- arm_encode_call_attribute (decl, SHORT_CALL_FLAG_CHAR);
- }
-+
-+ if (TREE_CODE_CLASS (TREE_CODE (decl)) == 'd'
-+ && flag_pic
-+ && (*targetm.binds_local_p) (decl))
-+ arm_encode_call_attribute (decl, LOCAL_BINDING_FLAG_CHAR);
- }
- #endif /* !ARM_PE */
-
-
---- gcc/config/arm/arm.h Fri Mar 5 18:49:44 2004
-+++ gcc/config/arm/arm.h Fri Mar 5 15:04:31 2004
-@@ -1870,6 +1870,7 @@
- Note, '@' and '*' have already been taken. */
- #define SHORT_CALL_FLAG_CHAR '^'
- #define LONG_CALL_FLAG_CHAR '#'
-+#define LOCAL_BINDING_FLAG_CHAR '%'
-
- #define ENCODED_SHORT_CALL_ATTR_P(SYMBOL_NAME) \
- (*(SYMBOL_NAME) == SHORT_CALL_FLAG_CHAR)
-@@ -1877,6 +1878,9 @@
- #define ENCODED_LONG_CALL_ATTR_P(SYMBOL_NAME) \
- (*(SYMBOL_NAME) == LONG_CALL_FLAG_CHAR)
-
-+#define ENCODED_LOCAL_BINDING_ATTR_P(SYMBOL_NAME) \
-+ (*(SYMBOL_NAME) == LOCAL_BINDING_FLAG_CHAR)
-+
- #ifndef SUBTARGET_NAME_ENCODING_LENGTHS
- #define SUBTARGET_NAME_ENCODING_LENGTHS
- #endif
-@@ -1888,6 +1892,7 @@
- #define ARM_NAME_ENCODING_LENGTHS \
- case SHORT_CALL_FLAG_CHAR: return 1; \
- case LONG_CALL_FLAG_CHAR: return 1; \
-+ case LOCAL_BINDING_FLAG_CHAR: return 1; \
- case '*': return 1; \
- SUBTARGET_NAME_ENCODING_LENGTHS
-
diff --git a/packages/gcc/gcc-3.3.3/arm-ldm-peephole.patch b/packages/gcc/gcc-3.3.3/arm-ldm-peephole.patch
deleted file mode 100644
index 83b07e0343..0000000000
--- a/packages/gcc/gcc-3.3.3/arm-ldm-peephole.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-2004-03-19 Philip Blundell <philb@gnu.org>
-
- * config/arm/arm.c (adjacent_mem_locations): Reject location pairs
- where both offsets are nonzero if target is Harvard architecture.
- (load_multiple_sequence, store_multiple_sequence): Avoid two-word
- LDM/STM on XScale unless -Os.
- * config/arm/arm.md (arith_adjacentmem): Inhibit if tuning for
- XScale and not -Os.
- * genpeep.c: Have generated code include flags.h.
-
---- gcc/genpeep.c~ 2001-12-02 00:04:19.000000000 +0000
-+++ gcc/genpeep.c 2004-03-19 11:17:18.000000000 +0000
-@@ -402,6 +402,7 @@
- printf ("#include \"recog.h\"\n");
- printf ("#include \"except.h\"\n\n");
- printf ("#include \"function.h\"\n\n");
-+ printf ("#include \"flags.h\"\n\n");
-
- printf ("#ifdef HAVE_peephole\n");
- printf ("extern rtx peep_operand[];\n\n");
-
---- gcc/config/arm/arm.md~ 2004-03-11 15:28:01.000000000 +0000
-+++ gcc/config/arm/arm.md 2004-03-19 13:00:03.000000000 +0000
-@@ -7958,13 +7958,16 @@
- (set_attr "length" "4,8,8")]
- )
-
-+; Try to convert LDR+LDR+arith into [add+]LDM+arith
-+; On XScale, LDM is always slower than two LDRs, so only do this if
-+; optimising for size.
- (define_insn "*arith_adjacentmem"
- [(set (match_operand:SI 0 "s_register_operand" "=r")
- (match_operator:SI 1 "shiftable_operator"
- [(match_operand:SI 2 "memory_operand" "m")
- (match_operand:SI 3 "memory_operand" "m")]))
- (clobber (match_scratch:SI 4 "=r"))]
-- "TARGET_ARM && adjacent_mem_locations (operands[2], operands[3])"
-+ "TARGET_ARM && (!arm_tune_xscale || optimize_size) && adjacent_mem_locations (operands[2], operands[3])"
- "*
- {
- rtx ldm[3];
-@@ -7999,7 +8002,9 @@
- }
- if (val1 && val2)
- {
-+ /* This would be a loss on a Harvard core, but adjacent_mem_locations()
-+ will prevent it from happening. */
- rtx ops[3];
- ldm[0] = ops[0] = operands[4];
- ops[1] = XEXP (XEXP (operands[2], 0), 0);
-
---- gcc/config/arm/arm.c~ 2004-03-11 15:28:01.000000000 +0000
-+++ gcc/config/arm/arm.c 2004-03-19 15:36:03.000000000 +0000
-@@ -3818,8 +3818,11 @@
- sequence. */
- if (!const_ok_for_op (PLUS, val0) || !const_ok_for_op (PLUS, val1))
- return 0;
--
-- return (reg0 == reg1) && ((val1 - val0) == 4 || (val0 - val1) == 4);
-+
-+ /* For Harvard cores, only accept pairs where one offset is zero.
-+ See comment in load_multiple_sequence. */
-+ return (reg0 == reg1) && ((val1 - val0) == 4 || (val0 - val1) == 4)
-+ && (!arm_ld_sched || val0 == 0 || val1 == 0);
- }
- return 0;
- }
-@@ -4075,6 +4078,11 @@
- *load_offset = unsorted_offsets[order[0]];
- }
-
-+ /* For XScale a two-word LDM is a performance loss, so only do this if
-+ size is more important. See comments in arm_gen_load_multiple. */
-+ if (nops == 2 && arm_tune_xscale && !optimize_size)
-+ return 0;
-+
- if (unsorted_offsets[order[0]] == 0)
- return 1; /* ldmia */
-
-@@ -4307,6 +4315,11 @@
- *load_offset = unsorted_offsets[order[0]];
- }
-
-+ /* For XScale a two-word LDM is a performance loss, so only do this if
-+ size is more important. See comments in arm_gen_load_multiple. */
-+ if (nops == 2 && arm_tune_xscale && !optimize_size)
-+ return 0;
-+
- if (unsorted_offsets[order[0]] == 0)
- return 1; /* stmia */
-
diff --git a/packages/gcc/gcc-3.3.3/arm-ldm.dpatch b/packages/gcc/gcc-3.3.3/arm-ldm.dpatch
deleted file mode 100644
index 561624f39c..0000000000
--- a/packages/gcc/gcc-3.3.3/arm-ldm.dpatch
+++ /dev/null
@@ -1,148 +0,0 @@
-#! /bin/sh -e
-
-src=gcc
-if [ $# -eq 3 -a "$2" = '-d' ]; then
- pdir="-d $3"
- src=$3/gcc
-elif [ $# -ne 1 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-case "$1" in
- -patch)
- patch $pdir -f --no-backup-if-mismatch -p0 --fuzz 10 < $0
- ;;
- -unpatch)
- patch $pdir -f --no-backup-if-mismatch -R -p0 --fuzz 10 < $0
- ;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-esac
-exit 0
-
-# DP: try harder to avoid ldm in function epilogues
-
---- gcc/config/arm/arm.c Fri Mar 5 18:49:42 2004
-+++ gcc/config/arm/arm.c Fri Mar 5 16:00:21 2004
-@@ -7598,6 +7629,26 @@
- return_used_this_function = 0;
- }
-
-+/* Return the number (counting from 0) of
-+ the least significant set bit in MASK. */
-+
-+#ifdef __GNUC__
-+inline
-+#endif
-+static int
-+number_of_first_bit_set (mask)
-+ int mask;
-+{
-+ int bit;
-+
-+ for (bit = 0;
-+ (mask & (1 << bit)) == 0;
-+ ++bit)
-+ continue;
-+
-+ return bit;
-+}
-+
- const char *
- arm_output_epilogue (really_return)
- int really_return;
-@@ -7788,27 +7839,47 @@
- saved_regs_mask |= (1 << PC_REGNUM);
- }
-
-- /* Load the registers off the stack. If we only have one register
-- to load use the LDR instruction - it is faster. */
-- if (saved_regs_mask == (1 << LR_REGNUM))
-- {
-- /* The exception handler ignores the LR, so we do
-- not really need to load it off the stack. */
-- if (eh_ofs)
-- asm_fprintf (f, "\tadd\t%r, %r, #4\n", SP_REGNUM, SP_REGNUM);
-- else
-- asm_fprintf (f, "\tldr\t%r, [%r], #4\n", LR_REGNUM, SP_REGNUM);
-- }
-- else if (saved_regs_mask)
-+ if (saved_regs_mask)
- {
-- if (saved_regs_mask & (1 << SP_REGNUM))
-- /* Note - write back to the stack register is not enabled
-- (ie "ldmfd sp!..."). We know that the stack pointer is
-- in the list of registers and if we add writeback the
-- instruction becomes UNPREDICTABLE. */
-- print_multi_reg (f, "ldmfd\t%r", SP_REGNUM, saved_regs_mask);
-+ /* Load the registers off the stack. If we only have one register
-+ to load use the LDR instruction - it is faster. */
-+ if (bit_count (saved_regs_mask) == 1)
-+ {
-+ int reg = number_of_first_bit_set (saved_regs_mask);
-+
-+ switch (reg)
-+ {
-+ case SP_REGNUM:
-+ /* Mustn't use base writeback when loading SP. */
-+ asm_fprintf (f, "\tldr\t%r, [%r]\n", SP_REGNUM, SP_REGNUM);
-+ break;
-+
-+ case LR_REGNUM:
-+ if (eh_ofs)
-+ {
-+ /* The exception handler ignores the LR, so we do
-+ not really need to load it off the stack. */
-+ asm_fprintf (f, "\tadd\t%r, %r, #4\n", SP_REGNUM, SP_REGNUM);
-+ break;
-+ }
-+ /* else fall through */
-+
-+ default:
-+ asm_fprintf (f, "\tldr\t%r, [%r], #4\n", reg, SP_REGNUM);
-+ break;
-+ }
-+ }
- else
-- print_multi_reg (f, "ldmfd\t%r!", SP_REGNUM, saved_regs_mask);
-+ {
-+ if (saved_regs_mask & (1 << SP_REGNUM))
-+ /* Note - write back to the stack register is not enabled
-+ (ie "ldmfd sp!..."). We know that the stack pointer is
-+ in the list of registers and if we add writeback the
-+ instruction becomes UNPREDICTABLE. */
-+ print_multi_reg (f, "ldmfd\t%r", SP_REGNUM, saved_regs_mask);
-+ else
-+ print_multi_reg (f, "ldmfd\t%r!", SP_REGNUM, saved_regs_mask);
-+ }
- }
-
- if (current_function_pretend_args_size)
-@@ -9610,26 +9677,6 @@
- }
- }
-
--/* Return the number (counting from 0) of
-- the least significant set bit in MASK. */
--
--#ifdef __GNUC__
--inline
--#endif
--static int
--number_of_first_bit_set (mask)
-- int mask;
--{
-- int bit;
--
-- for (bit = 0;
-- (mask & (1 << bit)) == 0;
-- ++bit)
-- continue;
--
-- return bit;
--}
--
- /* Generate code to return from a thumb function.
- If 'reg_containing_return_addr' is -1, then the return address is
- actually on the stack, at the stack pointer. */
diff --git a/packages/gcc/gcc-3.3.3/arm-tune.patch b/packages/gcc/gcc-3.3.3/arm-tune.patch
deleted file mode 100644
index 701c99b87c..0000000000
--- a/packages/gcc/gcc-3.3.3/arm-tune.patch
+++ /dev/null
@@ -1,9 +0,0 @@
---- gcc/config/arm/linux-elf.h.orig 2004-03-11 14:46:33.000000000 +0000
-+++ gcc/config/arm/linux-elf.h 2004-03-11 14:48:23.000000000 +0000
-@@ -128,3 +128,6 @@
-
- #define LINK_GCC_C_SEQUENCE_SPEC \
- "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
-+
-+/* Tune for XScale. */
-+#define TARGET_TUNE_DEFAULT TARGET_CPU_xscale
diff --git a/packages/gcc/gcc-3.3.3/arm-xscale.patch b/packages/gcc/gcc-3.3.3/arm-xscale.patch
deleted file mode 100644
index 9ac8f5b688..0000000000
--- a/packages/gcc/gcc-3.3.3/arm-xscale.patch
+++ /dev/null
@@ -1,174 +0,0 @@
---- gcc/config/arm/arm.c.orig 2004-03-11 14:50:36.000000000 +0000
-+++ gcc/config/arm/arm.c 2004-03-11 14:58:05.000000000 +0000
-@@ -275,7 +275,10 @@
- int arm_is_strong = 0;
-
- /* Nonzero if this chip is an XScale. */
--int arm_is_xscale = 0;
-+int arm_arch_xscale = 0;
-+
-+/* Nonzero if tuning for XScale */
-+int arm_tune_xscale = 0;
-
- /* Nonzero if this chip is an ARM6 or an ARM7. */
- int arm_is_6_or_7 = 0;
-@@ -684,13 +687,14 @@
- arm_arch4 = (insn_flags & FL_ARCH4) != 0;
- arm_arch5 = (insn_flags & FL_ARCH5) != 0;
- arm_arch5e = (insn_flags & FL_ARCH5E) != 0;
-- arm_is_xscale = (insn_flags & FL_XSCALE) != 0;
-+ arm_arch_xscale = (insn_flags & FL_XSCALE) != 0;
-
- arm_ld_sched = (tune_flags & FL_LDSCHED) != 0;
- arm_is_strong = (tune_flags & FL_STRONG) != 0;
- thumb_code = (TARGET_ARM == 0);
- arm_is_6_or_7 = (((tune_flags & (FL_MODE26 | FL_MODE32))
- && !(tune_flags & FL_ARCH4))) != 0;
-+ arm_tune_xscale = (tune_flags & FL_XSCALE) != 0;
-
- /* Default value for floating point code... if no co-processor
- bus, then schedule for emulated floating point. Otherwise,
-@@ -762,7 +766,7 @@
- if (optimize_size || (tune_flags & FL_LDSCHED))
- arm_constant_limit = 1;
-
-- if (arm_is_xscale)
-+ if (arm_arch_xscale)
- arm_constant_limit = 2;
-
- /* If optimizing for size, bump the number of instructions that we
-@@ -2978,7 +2982,7 @@
-
- /* Some true dependencies can have a higher cost depending
- on precisely how certain input operands are used. */
-- if (arm_is_xscale
-+ if (arm_tune_xscale
- && REG_NOTE_KIND (link) == 0
- && recog_memoized (insn) < 0
- && recog_memoized (dep) < 0)
-@@ -4425,7 +4429,7 @@
-
- As a compromise, we use ldr for counts of 1 or 2 regs, and ldm
- for counts of 3 or 4 regs. */
-- if (arm_is_xscale && count <= 2 && ! optimize_size)
-+ if (arm_tune_xscale && count <= 2 && ! optimize_size)
- {
- rtx seq;
-
-@@ -4492,8 +4496,8 @@
-
- /* See arm_gen_load_multiple for discussion of
- the pros/cons of ldm/stm usage for XScale. */
-- if (arm_is_xscale && count <= 2 && ! optimize_size)
-+ if (arm_tune_xscale && count <= 2 && ! optimize_size)
- {
- rtx seq;
-
-
---- gcc/config/arm/arm.h 23 Apr 2003 16:39:30 -0000 1.189
-+++ gcc/config/arm/arm.h 14 May 2003 21:26:33 -0000
-@@ -610,7 +610,10 @@ extern int arm_is_strong;
- extern int arm_is_cirrus;
-
- /* Nonzero if this chip is an XScale. */
--extern int arm_is_xscale;
-+extern int arm_arch_xscale;
-+
-+/* Nonzero if tuning for XScale */
-+extern int arm_tune_xscale;
-
- /* Nonzero if this chip is an ARM6 or an ARM7. */
- extern int arm_is_6_or_7;
-@@ -728,7 +731,7 @@ extern int arm_is_6_or_7;
- #define BIGGEST_ALIGNMENT 32
-
- /* Make strings word-aligned so strcpy from constants will be faster. */
--#define CONSTANT_ALIGNMENT_FACTOR (TARGET_THUMB || ! arm_is_xscale ? 1 : 2)
-+#define CONSTANT_ALIGNMENT_FACTOR (TARGET_THUMB || ! arm_arch_xscale ? 1 : 2)
-
- #define CONSTANT_ALIGNMENT(EXP, ALIGN) \
- ((TREE_CODE (EXP) == STRING_CST \
-@@ -2119,8 +2122,8 @@ do { \
- #define MOVE_MAX 4
-
- #undef MOVE_RATIO
--#define MOVE_RATIO (arm_is_xscale ? 4 : 2)
-+#define MOVE_RATIO (arm_arch_xscale ? 4 : 2)
-
- /* Define if operations between registers always perform the operation
- on the full register even if a narrower mode is specified. */
-
---- gcc/config/arm/arm.md.old 2003-05-23 21:28:39.000000000 +0200
-+++ gcc/config/arm/arm.md 2003-05-23 21:30:02.000000000 +0200
-@@ -120,7 +120,7 @@
-
- ;; Operand number of an input operand that is shifted. Zero if the
- ;; given instruction does not shift one of its input operands.
--(define_attr "is_xscale" "no,yes" (const (symbol_ref "arm_is_xscale")))
-+(define_attr "is_xscale" "no,yes" (const (symbol_ref "arm_tune_xscale")))
- (define_attr "shift" "" (const_int 0))
-
- ; Floating Point Unit. If we only have floating point emulation, then there
-@@ -1185,7 +1185,7 @@
- (const_int 0)))
- (set (match_operand:SI 0 "s_register_operand" "=&r,&r")
- (mult:SI (match_dup 2) (match_dup 1)))]
-- "TARGET_ARM && !arm_is_xscale"
-+ "TARGET_ARM && !arm_arch_xscale"
- "mul%?s\\t%0, %2, %1"
- [(set_attr "conds" "set")
- (set_attr "type" "mult")]
-@@ -1198,7 +1198,7 @@
- (match_operand:SI 1 "s_register_operand" "%?r,0"))
- (const_int 0)))
- (clobber (match_scratch:SI 0 "=&r,&r"))]
-- "TARGET_ARM && !arm_is_xscale"
-+ "TARGET_ARM && !arm_arch_xscale"
- "mul%?s\\t%0, %2, %1"
- [(set_attr "conds" "set")
- (set_attr "type" "mult")]
-@@ -1229,7 +1229,7 @@
- (set (match_operand:SI 0 "s_register_operand" "=&r,&r,&r,&r")
- (plus:SI (mult:SI (match_dup 2) (match_dup 1))
- (match_dup 3)))]
-- "TARGET_ARM && !arm_is_xscale"
-+ "TARGET_ARM && !arm_arch_xscale"
- "mla%?s\\t%0, %2, %1, %3"
- [(set_attr "conds" "set")
- (set_attr "type" "mult")]
-@@ -1244,7 +1244,7 @@
- (match_operand:SI 3 "s_register_operand" "?r,r,0,0"))
- (const_int 0)))
- (clobber (match_scratch:SI 0 "=&r,&r,&r,&r"))]
-- "TARGET_ARM && !arm_is_xscale"
-+ "TARGET_ARM && !arm_arch_xscale"
- "mla%?s\\t%0, %2, %1, %3"
- [(set_attr "conds" "set")
- (set_attr "type" "mult")]
-@@ -1338,7 +1338,7 @@
- (match_operand:HI 1 "s_register_operand" "%r"))
- (sign_extend:SI
- (match_operand:HI 2 "s_register_operand" "r"))))]
-- "TARGET_ARM && arm_is_xscale"
-+ "TARGET_ARM && arm_arch_xscale"
- "smulbb%?\\t%0, %1, %2"
- [(set_attr "type" "mult")]
- )
-@@ -1350,7 +1350,7 @@
- (match_operand:HI 2 "s_register_operand" "%r"))
- (sign_extend:SI
- (match_operand:HI 3 "s_register_operand" "r")))))]
-- "TARGET_ARM && arm_is_xscale"
-+ "TARGET_ARM && arm_arch_xscale"
- "smlabb%?\\t%0, %2, %3, %1"
- [(set_attr "type" "mult")]
- )
-@@ -1363,7 +1363,7 @@
- (match_operand:HI 2 "s_register_operand" "%r"))
- (sign_extend:DI
- (match_operand:HI 3 "s_register_operand" "r")))))]
-- "TARGET_ARM && arm_is_xscale"
-+ "TARGET_ARM && arm_arch_xscale"
- "smlalbb%?\\t%Q0, %R0, %2, %3"
- [(set_attr "type" "mult")])
-
diff --git a/packages/gcc/gcc-3.3.3/bash3.patch b/packages/gcc/gcc-3.3.3/bash3.patch
deleted file mode 100644
index 614ba50eec..0000000000
--- a/packages/gcc/gcc-3.3.3/bash3.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- gcc-3.3.4/configure.orig 2002-09-29 18:11:24.000000000 +0200
-+++ gcc-3.3.4/configure 2005-01-28 12:26:40.000000000 +0100
-@@ -697,7 +697,7 @@
- if test -f skip-this-dir; then
- # Perform the same cleanup as the trap handler, minus the "exit 1" of course,
- # and reset the trap handler.
-- trap 0
-+ trap '' 0
- rm -rf Makefile* ${tmpdir}
- # Execute the final clean-up actions
- ${config_shell} skip-this-dir
-@@ -1596,7 +1596,7 @@
- # Perform the same cleanup as the trap handler, minus the "exit 1" of course,
- # and reset the trap handler.
- rm -rf ${tmpdir}
--trap 0
-+trap '' 0
-
- exit 0
-
diff --git a/packages/gcc/gcc-3.3.3/config.sub.patch b/packages/gcc/gcc-3.3.3/config.sub.patch
deleted file mode 100644
index 928f9115b0..0000000000
--- a/packages/gcc/gcc-3.3.3/config.sub.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-When configuring a s390->s390 or cris->cris crosscompiler
-(ok, I haven't hit this yet, but one of these days I'll get me an account
-on an s390, and then I'll need this patch :-), you'll get the
-following error:
-
-+ /build/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/gcc-3.3/configure
---target=s390-unknown-linux-gnu --host=s390-host_unknown-linux-gnu
---prefix=/result/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2
---enable-languages=c
---with-local-prefix=/result/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/s390-
-unknown-linux-gnu --enable-threads=no --without-headers --with-newlib
---disable-shared
-...
-*** --with-headers is only supported when cross compiling
-
-This error pops up only when you're using Daniel Jacobowitz's technique
-of slightly changing the target and host tuples to make them different
-enough to force gcc's build system to not try to pull in system libraries
-or headers. This technique is needed e.g. to build an x86 -> x86
-cross-compiler.
-(The LFS developers ran into the same bug that prompted me to use
-this technique; they point people who run into it to
-http://linuxfromscratch.org/~greg/pure_lfs.txt, which is a different
-way of avoiding this problem. I think the tuple tweak is the way to go, though.)
-
-config-patches@gnu.org rejected this patch, on the grounds that there
-is only one vendor of each of those two architectures, so the
-canonicalization is by definition correct. When I pointed out the
-difficulty this causes for people building s390 -> s390 or
-cris -> cris compilers that are incompatible with the system
-libraries and thus must be built like cross-compilers, he grumped and said
-"autoconf should let you specify a cross-compiler in some other way than
-comparing tuple strings".
-
-
-
---- gcc-3.3/config.sub.old Sun Jun 8 20:38:47 2003
-+++ gcc-3.3/config.sub Sun Jun 8 20:40:34 2003
-@@ -433,9 +433,12 @@
- crds | unos)
- basic_machine=m68k-crds
- ;;
-- cris | cris-* | etrax*)
-+ cris | etrax*)
- basic_machine=cris-axis
- ;;
-+ cris-*)
-+ basic_machine=cris-`echo $basic_machine | sed 's/^[^-]*-//'`
-+ ;;
- da30 | da30-*)
- basic_machine=m68k-da30
- ;;
-@@ -820,11 +823,17 @@
- rtpc | rtpc-*)
- basic_machine=romp-ibm
- ;;
-- s390 | s390-*)
-+ s390)
- basic_machine=s390-ibm
- ;;
-- s390x | s390x-*)
-+ s390-*)
-+ basic_machine=s390-`echo $basic_machine | sed 's/^[^-]*-//'`
-+ ;;
-+ s390x)
- basic_machine=s390x-ibm
-+ ;;
-+ s390x-*)
-+ basic_machine=s390x-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- sa29200)
- basic_machine=a29k-amd
diff --git a/packages/gcc/gcc-3.3.3/empty6.patch b/packages/gcc/gcc-3.3.3/empty6.patch
deleted file mode 100644
index 1b0715cebb..0000000000
--- a/packages/gcc/gcc-3.3.3/empty6.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From 3.4 branch. Fixes test failure
-FAIL: g++.dg/abi/empty6.C (test for warnings, line 6)
-
-===================================================================
-RCS file: /cvs/gcc/gcc/gcc/testsuite/g++.dg/abi/empty6.C,v
-retrieving revision 1.1
-retrieving revision 1.2
-diff -u -r1.1 -r1.2
---- gcc/gcc/testsuite/g++.dg/abi/empty6.C 2002/09/25 19:07:35 1.1
-+++ gcc/gcc/testsuite/g++.dg/abi/empty6.C 2003/06/03 19:10:09 1.2
-@@ -5,4 +5,9 @@
- struct B {
- A a; // { dg-warning "empty" }
- virtual void f () {}
--};
-+} __attribute__((aligned(8)));
-+/* The preceding attribute is necessary on targets with
-+ BIGGEST_ALIGNMENT <= 32 to trigger the warning, as otherwise a 32 bit
-+ offset is split into DECL_FIELD_OFFSET 4 and DECL_FIELD_BIT_OFFSET 0,
-+ and then there is no discrepancy between DECL_FIELD_OFFSET and
-+ byte_position to warn about. */
diff --git a/packages/gcc/gcc-3.3.3/gcc-uclibc-3.3-100-conf.patch b/packages/gcc/gcc-3.3.3/gcc-uclibc-3.3-100-conf.patch
deleted file mode 100644
index 213b4fbbd6..0000000000
--- a/packages/gcc/gcc-3.3.3/gcc-uclibc-3.3-100-conf.patch
+++ /dev/null
@@ -1,1593 +0,0 @@
-diff -urN gcc-3.3.3/boehm-gc/config.sub gcc-3.3.3-new/boehm-gc/config.sub
---- gcc-3.3.3/boehm-gc/config.sub 2002-02-11 22:37:53.000000000 -0600
-+++ gcc-3.3.3-new/boehm-gc/config.sub 2004-02-16 21:12:16.000000000 -0600
-@@ -118,7 +118,7 @@
- # Here we must recognize all the valid KERNEL-OS combinations.
- maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
- case $maybe_os in
-- nto-qnx* | linux-gnu* | storm-chaos* | os2-emx* | windows32-*)
-+ nto-qnx* | linux-gnu* | linux-uclibc* | storm-chaos* | os2-emx* | windows32-*)
- os=-$maybe_os
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
- ;;
-@@ -1089,7 +1089,8 @@
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* \
- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
-+ | -mingw32* | -linux-gnu* | -linux-uclibc* \
-+ | -uxpv* | -beos* | -mpeix* | -udk* \
- | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
-diff -urN gcc-3.3.3/config.sub gcc-3.3.3-new/config.sub
---- gcc-3.3.3/config.sub 2003-01-30 17:25:36.000000000 -0600
-+++ gcc-3.3.3-new/config.sub 2004-02-16 21:12:16.000000000 -0600
-@@ -118,7 +118,7 @@
- # Here we must recognize all the valid KERNEL-OS combinations.
- maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
- case $maybe_os in
-- nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
-+ nto-qnx* | linux-gnu* | linux-uclibc* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
- os=-$maybe_os
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
- ;;
-@@ -1112,7 +1112,8 @@
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* \
- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
-+ | -mingw32* | -linux-gnu* | -linux-uclibc* \
-+ | -uxpv* | -beos* | -mpeix* | -udk* \
- | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
-diff -urN gcc-3.3.3/gcc/config/arm/linux-elf.h gcc-3.3.3-new/gcc/config/arm/linux-elf.h
---- gcc-3.3.3/gcc/config/arm/linux-elf.h 2003-09-16 10:39:23.000000000 -0500
-+++ gcc-3.3.3-new/gcc/config/arm/linux-elf.h 2004-02-16 21:12:16.000000000 -0600
-@@ -78,6 +78,18 @@
- "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
-
- #undef LINK_SPEC
-+#ifdef USE_UCLIBC
-+#define LINK_SPEC "%{h*} %{version:-v} \
-+ %{b} %{Wl,*:%*} \
-+ %{static:-Bstatic} \
-+ %{shared:-shared} \
-+ %{symbolic:-Bsymbolic} \
-+ %{rdynamic:-export-dynamic} \
-+ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0} \
-+ -X \
-+ %{mbig-endian:-EB}" \
-+ SUBTARGET_EXTRA_LINK_SPEC
-+#else
- #define LINK_SPEC "%{h*} %{version:-v} \
- %{b} %{Wl,*:%*} \
- %{static:-Bstatic} \
-@@ -88,6 +100,7 @@
- -X \
- %{mbig-endian:-EB}" \
- SUBTARGET_EXTRA_LINK_SPEC
-+#endif
-
- #define TARGET_OS_CPP_BUILTINS() \
- do { \
-diff -urN gcc-3.3.3/gcc/config/cris/linux.h gcc-3.3.3-new/gcc/config/cris/linux.h
---- gcc-3.3.3/gcc/config/cris/linux.h 2003-03-10 21:01:35.000000000 -0600
-+++ gcc-3.3.3-new/gcc/config/cris/linux.h 2004-02-16 21:12:16.000000000 -0600
-@@ -81,6 +81,25 @@
- #undef CRIS_DEFAULT_CPU_VERSION
- #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG
-
-+#ifdef USE_UCLIBC
-+
-+#undef CRIS_SUBTARGET_VERSION
-+#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-uclibc"
-+
-+#undef CRIS_LINK_SUBTARGET_SPEC
-+#define CRIS_LINK_SUBTARGET_SPEC \
-+ "-mcrislinux\
-+ -rpath-link include/asm/../..%s\
-+ %{shared} %{static}\
-+ %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\
-+ %{!shared: \
-+ %{!static: \
-+ %{rdynamic:-export-dynamic} \
-+ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}} \
-+ %{!r:%{O2|O3: --gc-sections}}"
-+
-+#else /* USE_UCLIBC */
-+
- #undef CRIS_SUBTARGET_VERSION
- #define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu"
-
-@@ -95,6 +114,8 @@
- %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\
- %{!r:%{O2|O3: --gc-sections}}"
-
-+#endif /* USE_UCLIBC */
-+
-
- /* Node: Run-time Target */
-
-diff -urN gcc-3.3.3/gcc/config/cris/t-linux-uclibc gcc-3.3.3-new/gcc/config/cris/t-linux-uclibc
---- gcc-3.3.3/gcc/config/cris/t-linux-uclibc 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-3.3.3-new/gcc/config/cris/t-linux-uclibc 2004-02-16 21:12:16.000000000 -0600
-@@ -0,0 +1,3 @@
-+T_CFLAGS = -DUSE_UCLIBC
-+TARGET_LIBGCC2_CFLAGS += -fPIC
-+CRTSTUFF_T_CFLAGS_S = $(TARGET_LIBGCC2_CFLAGS)
-diff -urN gcc-3.3.3/gcc/config/i386/linux.h gcc-3.3.3-new/gcc/config/i386/linux.h
---- gcc-3.3.3/gcc/config/i386/linux.h 2003-11-14 00:46:12.000000000 -0600
-+++ gcc-3.3.3-new/gcc/config/i386/linux.h 2004-02-16 21:12:16.000000000 -0600
-@@ -136,6 +136,15 @@
- %{static:-static}}}"
- #endif
- #else
-+#if defined USE_UCLIBC
-+#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
-+ %{!shared: \
-+ %{!ibcs: \
-+ %{!static: \
-+ %{rdynamic:-export-dynamic} \
-+ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \
-+ %{static:-static}}}"
-+#else
- #define LINK_SPEC "-m elf_i386 %{shared:-shared} \
- %{!shared: \
- %{!ibcs: \
-@@ -144,6 +153,7 @@
- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
- %{static:-static}}}"
- #endif
-+#endif
-
- /* A C statement (sans semicolon) to output to the stdio stream
- FILE the assembler definition of uninitialized global DECL named
-diff -urN gcc-3.3.3/gcc/config/mips/linux.h gcc-3.3.3-new/gcc/config/mips/linux.h
---- gcc-3.3.3/gcc/config/mips/linux.h 2003-12-23 02:58:00.000000000 -0600
-+++ gcc-3.3.3-new/gcc/config/mips/linux.h 2004-02-16 21:12:16.000000000 -0600
-@@ -175,6 +175,17 @@
-
- /* Borrowed from sparc/linux.h */
- #undef LINK_SPEC
-+#ifdef USE_UCLIBC
-+#define LINK_SPEC \
-+ "%(endian_spec) \
-+ %{shared:-shared} \
-+ %{!shared: \
-+ %{!ibcs: \
-+ %{!static: \
-+ %{rdynamic:-export-dynamic} \
-+ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \
-+ %{static:-static}}}"
-+#else
- #define LINK_SPEC \
- "%(endian_spec) \
- %{shared:-shared} \
-@@ -184,6 +195,7 @@
- %{rdynamic:-export-dynamic} \
- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
- %{static:-static}}}"
-+#endif
-
- #undef SUBTARGET_ASM_SPEC
- #define SUBTARGET_ASM_SPEC "\
-diff -urN gcc-3.3.3/gcc/config/sh/linux.h gcc-3.3.3-new/gcc/config/sh/linux.h
---- gcc-3.3.3/gcc/config/sh/linux.h 2003-11-06 17:13:33.000000000 -0600
-+++ gcc-3.3.3-new/gcc/config/sh/linux.h 2004-02-16 21:12:16.000000000 -0600
-@@ -44,12 +44,21 @@
- #undef SUBTARGET_LINK_EMUL_SUFFIX
- #define SUBTARGET_LINK_EMUL_SUFFIX "_linux"
- #undef SUBTARGET_LINK_SPEC
-+#ifdef USE_UCLIBC
-+#define SUBTARGET_LINK_SPEC \
-+ "%{shared:-shared} \
-+ %{!static: \
-+ %{rdynamic:-export-dynamic} \
-+ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \
-+ %{static:-static}"
-+#else
- #define SUBTARGET_LINK_SPEC \
- "%{shared:-shared} \
- %{!static: \
- %{rdynamic:-export-dynamic} \
- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
- %{static:-static}"
-+#endif
-
- /* The GNU C++ standard library requires that these macros be defined. */
- #undef CPLUSPLUS_CPP_SPEC
-diff -urN gcc-3.3.3/gcc/config/sh/t-linux-uclibc gcc-3.3.3-new/gcc/config/sh/t-linux-uclibc
---- gcc-3.3.3/gcc/config/sh/t-linux-uclibc 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-3.3.3-new/gcc/config/sh/t-linux-uclibc 2004-02-16 21:12:16.000000000 -0600
-@@ -0,0 +1,16 @@
-+T_CFLAGS = -DUSE_UCLIBC
-+
-+# Don't run fixproto
-+STMP_FIXPROTO =
-+
-+TARGET_LIBGCC2_CFLAGS = -fpic
-+LIB1ASMFUNCS_CACHE = _ic_invalidate
-+
-+LIB2FUNCS_EXTRA=
-+
-+MULTILIB_OPTIONS= $(MULTILIB_ENDIAN) m3e/m4
-+MULTILIB_DIRNAMES=
-+MULTILIB_MATCHES =
-+MULTILIB_EXCEPTIONS=
-+
-+EXTRA_MULTILIB_PARTS= crtbegin.o crtend.o crtbeginS.o crtendS.o
-diff -urN gcc-3.3.3/gcc/config/sh/t-sh64-uclibc gcc-3.3.3-new/gcc/config/sh/t-sh64-uclibc
---- gcc-3.3.3/gcc/config/sh/t-sh64-uclibc 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-3.3.3-new/gcc/config/sh/t-sh64-uclibc 2004-02-16 21:12:16.000000000 -0600
-@@ -0,0 +1,13 @@
-+EXTRA_MULTILIB_PARTS= crtbegin.o crtend.o
-+
-+LIB1ASMFUNCS = \
-+ _sdivsi3 _sdivsi3_i4 _udivsi3 _udivsi3_i4 _set_fpscr \
-+ _shcompact_call_trampoline _shcompact_return_trampoline \
-+ _shcompact_incoming_args _ic_invalidate _nested_trampoline \
-+ _push_pop_shmedia_regs \
-+ _udivdi3 _divdi3 _umoddi3 _moddi3
-+
-+MULTILIB_OPTIONS = $(MULTILIB_ENDIAN) m5-32media-nofpu/m5-compact/m5-compact-nofpu/m5-64media/m5-64media-nofpu
-+MULTILIB_DIRNAMES= $(MULTILIB_ENDIAN) nofpu compact nofpu/compact media64 nofpu/media64
-+MULTILIB_MATCHES=
-+MULTILIB_EXCEPTIONS=
-diff -urN gcc-3.3.3/gcc/config/t-linux-uclibc gcc-3.3.3-new/gcc/config/t-linux-uclibc
---- gcc-3.3.3/gcc/config/t-linux-uclibc 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-3.3.3-new/gcc/config/t-linux-uclibc 2004-02-16 21:12:16.000000000 -0600
-@@ -0,0 +1,23 @@
-+T_CFLAGS = -DUSE_UCLIBC
-+
-+# Don't run fixproto
-+STMP_FIXPROTO =
-+
-+# Compile crtbeginS.o and crtendS.o with pic.
-+CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC
-+# Compile libgcc2.a with pic.
-+TARGET_LIBGCC2_CFLAGS = -fPIC
-+
-+# Override t-slibgcc-elf-ver to export some libgcc symbols with
-+# the symbol versions that glibc used.
-+SHLIB_MAPFILES += $(srcdir)/config/libgcc-glibc.ver
-+
-+# Use unwind-dw2-fde-glibc
-+#LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c \
-+# $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
-+#LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c
-+
-+# Use unwind-dw2-fde
-+LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde.c \
-+ $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
-+LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h
-diff -urN gcc-3.3.3/gcc/config.gcc gcc-3.3.3-new/gcc/config.gcc
---- gcc-3.3.3/gcc/config.gcc 2004-01-21 00:06:00.000000000 -0600
-+++ gcc-3.3.3-new/gcc/config.gcc 2004-02-16 21:12:16.000000000 -0600
-@@ -697,6 +697,17 @@
- extra_parts=""
- use_collect2=yes
- ;;
-+arm*-*-linux-uclibc*) # ARM GNU/Linux with ELF - uClibc
-+ tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/linux-gas.h arm/linux-elf.h"
-+ tmake_file="t-slibgcc-elf-ver t-linux-uclibc arm/t-linux"
-+ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
-+ gnu_ld=yes
-+ case x${enable_threads} in
-+ x | xyes | xpthreads | xposix)
-+ thread_file='posix'
-+ ;;
-+ esac
-+ ;;
- arm*-*-linux*) # ARM GNU/Linux with ELF
- tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/linux-gas.h arm/linux-elf.h"
- tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
-@@ -772,6 +783,10 @@
- tmake_file="cris/t-cris cris/t-elfmulti"
- gas=yes
- ;;
-+cris-*-linux-uclibc*)
-+ tm_file="dbxelf.h elfos.h svr4.h ${tm_file} linux.h cris/linux.h"
-+ tmake_file="cris/t-cris t-slibgcc-elf-ver cris/t-linux-uclibc"
-+ ;;
- cris-*-linux*)
- tm_file="dbxelf.h elfos.h svr4.h ${tm_file} linux.h cris/linux.h"
- tmake_file="cris/t-cris t-slibgcc-elf-ver cris/t-linux"
-@@ -1173,6 +1188,11 @@
- thread_file='single'
- fi
- ;;
-+i[34567]86-*-linux*uclibc*) # Intel 80386's running GNU/Linux
-+ # with ELF format using uClibc
-+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h i386/linux.h"
-+ tmake_file="t-slibgcc-elf-ver t-linux-uclibc i386/t-crtstuff"
-+ ;;
- i[34567]86-*-linux*) # Intel 80386's running GNU/Linux
- # with ELF format using glibc 2
- # aka GNU/Linux C library 6
-@@ -1883,6 +1903,16 @@
- tm_file="elfos.h ${tm_file} mips/netbsd.h"
- tmake_file="${tmake_file} mips/t-netbsd"
- ;;
-+mips*-*-linux-uclibc*) # Linux MIPS, either endian. uClibc
-+ tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} mips/linux.h"
-+ case $machine in
-+ mipsisa32*-*)
-+ target_cpu_default="MASK_SOFT_FLOAT"
-+ tm_defines="MIPS_ISA_DEFAULT=32"
-+ ;;
-+ esac
-+ tmake_file="t-slibgcc-elf-ver t-linux-uclibc mips/t-linux"
-+ ;;
- mips*-*-linux*) # Linux MIPS, either endian.
- tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} mips/linux.h"
- case $machine in
-@@ -2129,6 +2159,11 @@
- out_file=rs6000/rs6000.c
- tmake_file="rs6000/t-ppcos t-slibgcc-elf-ver t-linux rs6000/t-ppccomm"
- ;;
-+powerpc-*-linux-uclibc*)
-+ tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h"
-+ out_file=rs6000/rs6000.c
-+ tmake_file="rs6000/t-ppcos t-slibgcc-elf-ver t-linux-uclibc rs6000/t-ppccomm"
-+ ;;
- powerpc-*-linux*)
- tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h"
- out_file=rs6000/rs6000.c
-@@ -2313,10 +2348,18 @@
- tmake_file="${tmake_file} sh/t-le"
- ;;
- esac
-- tmake_file="${tmake_file} sh/t-linux"
-+ case $machine in
-+ *-*-linux-uclibc*) tmake_file="${tmake_file} sh/t-linux-uclibc" ;;
-+ *) tmake_file="${tmake_file} sh/t-linux" ;;
-+ esac
- tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/elf.h sh/linux.h"
- gas=yes gnu_ld=yes
- case $machine in
-+ sh64*-*-linux-uclibc*)
-+ tmake_file="${tmake_file} sh/t-sh64-uclibc"
-+ tm_file="${tm_file} sh/sh64.h"
-+ extra_headers="shmedia.h ushmedia.h sshmedia.h"
-+ ;;
- sh64*)
- tmake_file="${tmake_file} sh/t-sh64"
- tm_file="${tm_file} sh/sh64.h"
-diff -urN gcc-3.3.3/libstdc++-v3/aclocal.m4 gcc-3.3.3-new/libstdc++-v3/aclocal.m4
---- gcc-3.3.3/libstdc++-v3/aclocal.m4 2004-01-12 10:18:44.000000000 -0600
-+++ gcc-3.3.3-new/libstdc++-v3/aclocal.m4 2004-02-16 21:12:16.000000000 -0600
-@@ -1216,6 +1216,9 @@
- dnl Default to "generic"
- if test x$enable_clocale_flag = xno; then
- case x${target_os} in
-+ xlinux-uclibc*)
-+ enable_clocale_flag=uclibc
-+ ;;
- xlinux* | xgnu*)
- AC_EGREP_CPP([_GLIBCPP_ok], [
- #include <features.h>
-@@ -1339,6 +1342,41 @@
- CTIME_CC=config/locale/generic/time_members.cc
- CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
- ;;
-+ xuclibc)
-+ AC_MSG_RESULT(uclibc)
-+
-+ # Declare intention to use gettext, and add support for specific
-+ # languages.
-+ # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT
-+ ALL_LINGUAS="de fr"
-+
-+ # Don't call AM-GNU-GETTEXT here. Instead, assume glibc.
-+ AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no)
-+ if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then
-+ USE_NLS=yes
-+ fi
-+ # Export the build objects.
-+ for ling in $ALL_LINGUAS; do \
-+ glibcpp_MOFILES="$glibcpp_MOFILES $ling.mo"; \
-+ glibcpp_POFILES="$glibcpp_POFILES $ling.po"; \
-+ done
-+ AC_SUBST(glibcpp_MOFILES)
-+ AC_SUBST(glibcpp_POFILES)
-+
-+ CLOCALE_H=config/locale/uclibc/c_locale.h
-+ CLOCALE_CC=config/locale/uclibc/c_locale.cc
-+ CCODECVT_H=config/locale/uclibc/codecvt_specializations.h
-+ CCODECVT_CC=config/locale/uclibc/codecvt_members.cc
-+ CCOLLATE_CC=config/locale/uclibc/collate_members.cc
-+ CCTYPE_CC=config/locale/uclibc/ctype_members.cc
-+ CMESSAGES_H=config/locale/uclibc/messages_members.h
-+ CMESSAGES_CC=config/locale/uclibc/messages_members.cc
-+ CMONEY_CC=config/locale/uclibc/monetary_members.cc
-+ CNUMERIC_CC=config/locale/uclibc/numeric_members.cc
-+ CTIME_H=config/locale/uclibc/time_members.h
-+ CTIME_CC=config/locale/uclibc/time_members.cc
-+ CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h
-+ ;;
- *)
- echo "$enable_clocale is an unknown locale package" 1>&2
- exit 1
-diff -urN gcc-3.3.3/libstdc++-v3/configure gcc-3.3.3-new/libstdc++-v3/configure
---- gcc-3.3.3/libstdc++-v3/configure 2004-01-12 10:18:45.000000000 -0600
-+++ gcc-3.3.3-new/libstdc++-v3/configure 2004-02-17 00:21:12.000000000 -0600
-@@ -2996,6 +2996,9 @@
-
- if test x$enable_clocale_flag = xno; then
- case x${target_os} in
-+ xlinux-uclibc*)
-+ enable_clocale_flag=uclibc
-+ ;;
- xlinux* | xgnu*)
- cat > conftest.$ac_ext <<EOF
- #line 3002 "configure"
-@@ -3182,6 +3185,70 @@
- CTIME_CC=config/locale/generic/time_members.cc
- CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
- ;;
-+ xuclibc)
-+ echo "$ac_t""uclibc" 1>&6
-+
-+ # Declare intention to use gettext, and add support for specific
-+ # languages.
-+ # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT
-+ ALL_LINGUAS="de fr"
-+
-+ # Don't call AM-GNU-GETTEXT here. Instead, assume glibc.
-+ # Extract the first word of "msgfmt", so it can be a program name with args.
-+set dummy msgfmt; ac_word=$2
-+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-+echo "configure:3117: checking for $ac_word" >&5
-+if eval "test \"`echo '$''{'ac_cv_prog_check_msgfmt'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ if test -n "$check_msgfmt"; then
-+ ac_cv_prog_check_msgfmt="$check_msgfmt" # 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_check_msgfmt="yes"
-+ break
-+ fi
-+ done
-+ IFS="$ac_save_ifs"
-+ test -z "$ac_cv_prog_check_msgfmt" && ac_cv_prog_check_msgfmt="no"
-+fi
-+fi
-+check_msgfmt="$ac_cv_prog_check_msgfmt"
-+if test -n "$check_msgfmt"; then
-+ echo "$ac_t""$check_msgfmt" 1>&6
-+else
-+ echo "$ac_t""no" 1>&6
-+fi
-+
-+ if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then
-+ USE_NLS=yes
-+ fi
-+ # Export the build objects.
-+ for ling in $ALL_LINGUAS; do \
-+ glibcpp_MOFILES="$glibcpp_MOFILES $ling.mo"; \
-+ glibcpp_POFILES="$glibcpp_POFILES $ling.po"; \
-+ done
-+
-+
-+
-+ CLOCALE_H=config/locale/uclibc/c_locale.h
-+ CLOCALE_CC=config/locale/uclibc/c_locale.cc
-+ CCODECVT_H=config/locale/uclibc/codecvt_specializations.h
-+ CCODECVT_CC=config/locale/uclibc/codecvt_members.cc
-+ CCOLLATE_CC=config/locale/uclibc/collate_members.cc
-+ CCTYPE_CC=config/locale/uclibc/ctype_members.cc
-+ CMESSAGES_H=config/locale/uclibc/messages_members.h
-+ CMESSAGES_CC=config/locale/uclibc/messages_members.cc
-+ CMONEY_CC=config/locale/uclibc/monetary_members.cc
-+ CNUMERIC_CC=config/locale/uclibc/numeric_members.cc
-+ CTIME_H=config/locale/uclibc/time_members.h
-+ CTIME_CC=config/locale/uclibc/time_members.cc
-+ CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h
-+ ;;
- *)
- echo "$enable_clocale is an unknown locale package" 1>&2
- exit 1
-@@ -4212,6 +4279,968 @@
- # GLIBCPP_CHECK_MATH_SUPPORT
-
- case "$target" in
-+ *-uclibc*)
-+ os_include_dir="os/uclibc"
-+ for ac_hdr in nan.h ieeefp.h endian.h sys/isa_defs.h \
-+ machine/endian.h machine/param.h sys/machine.h sys/types.h \
-+ fp.h locale.h float.h inttypes.h
-+do
-+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-+echo "configure:4224: checking for $ac_hdr" >&5
-+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ cat > conftest.$ac_ext <<EOF
-+#line 4229 "configure"
-+#include "confdefs.h"
-+#include <$ac_hdr>
-+EOF
-+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-+{ (eval echo configure:4234: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-+if test -z "$ac_err"; then
-+ rm -rf conftest*
-+ eval "ac_cv_header_$ac_safe=yes"
-+else
-+ echo "$ac_err" >&5
-+ echo "configure: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ rm -rf conftest*
-+ eval "ac_cv_header_$ac_safe=no"
-+fi
-+rm -f conftest*
-+fi
-+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-+ echo "$ac_t""yes" 1>&6
-+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-+ cat >> confdefs.h <<EOF
-+#define $ac_tr_hdr 1
-+EOF
-+
-+else
-+ echo "$ac_t""no" 1>&6
-+fi
-+done
-+
-+ SECTION_FLAGS='-ffunction-sections -fdata-sections'
-+
-+
-+ # If we're not using GNU ld, then there's no point in even trying these
-+ # tests. Check for that first. We should have already tested for gld
-+ # by now (in libtool), but require it now just to be safe...
-+ test -z "$SECTION_LDFLAGS" && SECTION_LDFLAGS=''
-+ test -z "$OPT_LDFLAGS" && OPT_LDFLAGS=''
-+
-+
-+ # The name set by libtool depends on the version of libtool. Shame on us
-+ # for depending on an impl detail, but c'est la vie. Older versions used
-+ # ac_cv_prog_gnu_ld, but now it's lt_cv_prog_gnu_ld, and is copied back on
-+ # top of with_gnu_ld (which is also set by --with-gnu-ld, so that actually
-+ # makes sense). We'll test with_gnu_ld everywhere else, so if that isn't
-+ # set (hence we're using an older libtool), then set it.
-+ if test x${with_gnu_ld+set} != xset; then
-+ if test x${ac_cv_prog_gnu_ld+set} != xset; then
-+ # We got through "ac_require(ac_prog_ld)" and still not set? Huh?
-+ with_gnu_ld=no
-+ else
-+ with_gnu_ld=$ac_cv_prog_gnu_ld
-+ fi
-+ fi
-+
-+ # Start by getting the version number. I think the libtool test already
-+ # does some of this, but throws away the result.
-+
-+ ldver=`$LD --version 2>/dev/null | head -1 | \
-+ sed -e 's/GNU ld version \([0-9.][0-9.]*\).*/\1/'`
-+
-+ glibcpp_gnu_ld_version=`echo $ldver | \
-+ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
-+
-+ # Set --gc-sections.
-+ if test "$with_gnu_ld" = "notbroken"; then
-+ # GNU ld it is! Joy and bunny rabbits!
-+
-+ # All these tests are for C++; save the language and the compiler flags.
-+ # Need to do this so that g++ won't try to link in libstdc++
-+ ac_test_CFLAGS="${CFLAGS+set}"
-+ ac_save_CFLAGS="$CFLAGS"
-+ CFLAGS='-x c++ -Wl,--gc-sections'
-+
-+ # Check for -Wl,--gc-sections
-+ # XXX This test is broken at the moment, as symbols required for
-+ # linking are now in libsupc++ (not built yet.....). In addition,
-+ # this test has cored on solaris in the past. In addition,
-+ # --gc-sections doesn't really work at the moment (keeps on discarding
-+ # used sections, first .eh_frame and now some of the glibc sections for
-+ # iconv). Bzzzzt. Thanks for playing, maybe next time.
-+ echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6
-+echo "configure:4312: checking for ld that supports -Wl,--gc-sections" >&5
-+ if test "$cross_compiling" = yes; then
-+ ac_sectionLDflags=yes
-+else
-+ cat > conftest.$ac_ext <<EOF
-+#line 4317 "configure"
-+#include "confdefs.h"
-+
-+ int main(void)
-+ {
-+ try { throw 1; }
-+ catch (...) { };
-+ return 0;
-+ }
-+
-+EOF
-+if { (eval echo configure:4328: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-+then
-+ ac_sectionLDflags=yes
-+else
-+ echo "configure: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ rm -fr conftest*
-+ ac_sectionLDflags=no
-+fi
-+rm -fr conftest*
-+fi
-+
-+ if test "$ac_test_CFLAGS" = set; then
-+ CFLAGS="$ac_save_CFLAGS"
-+ else
-+ # this is the suspicious part
-+ CFLAGS=''
-+ fi
-+ if test "$ac_sectionLDflags" = "yes"; then
-+ SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"
-+ fi
-+ echo "$ac_t""$ac_sectionLDflags" 1>&6
-+ fi
-+
-+ # Set linker optimization flags.
-+ if test x"$with_gnu_ld" = x"yes"; then
-+ OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
-+ fi
-+
-+
-+
-+
-+
-+ echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
-+echo "configure:4362: checking for main in -lm" >&5
-+ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'`
-+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ ac_save_LIBS="$LIBS"
-+LIBS="-lm $LIBS"
-+cat > conftest.$ac_ext <<EOF
-+#line 4370 "configure"
-+#include "confdefs.h"
-+
-+int main() {
-+main()
-+; return 0; }
-+EOF
-+if { (eval echo configure:4377: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+ rm -rf conftest*
-+ eval "ac_cv_lib_$ac_lib_var=yes"
-+else
-+ echo "configure: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ rm -rf conftest*
-+ eval "ac_cv_lib_$ac_lib_var=no"
-+fi
-+rm -f conftest*
-+LIBS="$ac_save_LIBS"
-+
-+fi
-+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-+ echo "$ac_t""yes" 1>&6
-+ ac_tr_lib=HAVE_LIB`echo m | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-+ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
-+ cat >> confdefs.h <<EOF
-+#define $ac_tr_lib 1
-+EOF
-+
-+ LIBS="-lm $LIBS"
-+
-+else
-+ echo "$ac_t""no" 1>&6
-+fi
-+
-+ for ac_func in nan copysignf
-+do
-+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-+echo "configure:4407: checking for $ac_func" >&5
-+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ cat > conftest.$ac_ext <<EOF
-+#line 4412 "configure"
-+#include "confdefs.h"
-+/* System header to define __stub macros and hopefully few prototypes,
-+ which can conflict with char $ac_func(); below. */
-+#include <assert.h>
-+/* Override any gcc2 internal prototype to avoid an error. */
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char $ac_func();
-+
-+int main() {
-+
-+/* The GNU C library defines this for functions which it implements
-+ to always fail with ENOSYS. Some functions are actually named
-+ something starting with __ and the normal name is an alias. */
-+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-+choke me
-+#else
-+$ac_func();
-+#endif
-+
-+; return 0; }
-+EOF
-+if { (eval echo configure:4435: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+ rm -rf conftest*
-+ eval "ac_cv_func_$ac_func=yes"
-+else
-+ echo "configure: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ rm -rf conftest*
-+ eval "ac_cv_func_$ac_func=no"
-+fi
-+rm -f conftest*
-+fi
-+
-+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-+ echo "$ac_t""yes" 1>&6
-+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-+ cat >> confdefs.h <<EOF
-+#define $ac_tr_func 1
-+EOF
-+
-+else
-+ echo "$ac_t""no" 1>&6
-+LIBMATHOBJS="$LIBMATHOBJS ${ac_func}.lo"
-+fi
-+done
-+
-+
-+ for ac_func in __signbit
-+do
-+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-+echo "configure:4464: checking for $ac_func" >&5
-+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ cat > conftest.$ac_ext <<EOF
-+#line 4469 "configure"
-+#include "confdefs.h"
-+/* System header to define __stub macros and hopefully few prototypes,
-+ which can conflict with char $ac_func(); below. */
-+#include <assert.h>
-+/* Override any gcc2 internal prototype to avoid an error. */
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char $ac_func();
-+
-+int main() {
-+
-+/* The GNU C library defines this for functions which it implements
-+ to always fail with ENOSYS. Some functions are actually named
-+ something starting with __ and the normal name is an alias. */
-+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-+choke me
-+#else
-+$ac_func();
-+#endif
-+
-+; return 0; }
-+EOF
-+if { (eval echo configure:4492: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+ rm -rf conftest*
-+ eval "ac_cv_func_$ac_func=yes"
-+else
-+ echo "configure: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ rm -rf conftest*
-+ eval "ac_cv_func_$ac_func=no"
-+fi
-+rm -f conftest*
-+fi
-+
-+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-+ echo "$ac_t""yes" 1>&6
-+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-+ cat >> confdefs.h <<EOF
-+#define $ac_tr_func 1
-+EOF
-+
-+else
-+ echo "$ac_t""no" 1>&6
-+LIBMATHOBJS="$LIBMATHOBJS signbit.lo"
-+fi
-+done
-+
-+ for ac_func in __signbitf
-+do
-+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-+echo "configure:4520: checking for $ac_func" >&5
-+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ cat > conftest.$ac_ext <<EOF
-+#line 4525 "configure"
-+#include "confdefs.h"
-+/* System header to define __stub macros and hopefully few prototypes,
-+ which can conflict with char $ac_func(); below. */
-+#include <assert.h>
-+/* Override any gcc2 internal prototype to avoid an error. */
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char $ac_func();
-+
-+int main() {
-+
-+/* The GNU C library defines this for functions which it implements
-+ to always fail with ENOSYS. Some functions are actually named
-+ something starting with __ and the normal name is an alias. */
-+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-+choke me
-+#else
-+$ac_func();
-+#endif
-+
-+; return 0; }
-+EOF
-+if { (eval echo configure:4548: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+ rm -rf conftest*
-+ eval "ac_cv_func_$ac_func=yes"
-+else
-+ echo "configure: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ rm -rf conftest*
-+ eval "ac_cv_func_$ac_func=no"
-+fi
-+rm -f conftest*
-+fi
-+
-+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-+ echo "$ac_t""yes" 1>&6
-+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-+ cat >> confdefs.h <<EOF
-+#define $ac_tr_func 1
-+EOF
-+
-+else
-+ echo "$ac_t""no" 1>&6
-+LIBMATHOBJS="$LIBMATHOBJS signbitf.lo"
-+fi
-+done
-+
-+
-+ if test x$ac_cv_func_copysignl = x"yes"; then
-+ for ac_func in __signbitl
-+do
-+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-+echo "configure:4578: checking for $ac_func" >&5
-+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ cat > conftest.$ac_ext <<EOF
-+#line 4583 "configure"
-+#include "confdefs.h"
-+/* System header to define __stub macros and hopefully few prototypes,
-+ which can conflict with char $ac_func(); below. */
-+#include <assert.h>
-+/* Override any gcc2 internal prototype to avoid an error. */
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char $ac_func();
-+
-+int main() {
-+
-+/* The GNU C library defines this for functions which it implements
-+ to always fail with ENOSYS. Some functions are actually named
-+ something starting with __ and the normal name is an alias. */
-+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-+choke me
-+#else
-+$ac_func();
-+#endif
-+
-+; return 0; }
-+EOF
-+if { (eval echo configure:4606: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+ rm -rf conftest*
-+ eval "ac_cv_func_$ac_func=yes"
-+else
-+ echo "configure: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ rm -rf conftest*
-+ eval "ac_cv_func_$ac_func=no"
-+fi
-+rm -f conftest*
-+fi
-+
-+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-+ echo "$ac_t""yes" 1>&6
-+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-+ cat >> confdefs.h <<EOF
-+#define $ac_tr_func 1
-+EOF
-+
-+else
-+ echo "$ac_t""no" 1>&6
-+LIBMATHOBJS="$LIBMATHOBJS signbitl.lo"
-+fi
-+done
-+
-+ fi
-+
-+ if test -n "$LIBMATHOBJS"; then
-+ need_libmath=yes
-+ fi
-+
-+
-+
-+if test "$need_libmath" = yes; then
-+ GLIBCPP_BUILD_LIBMATH_TRUE=
-+ GLIBCPP_BUILD_LIBMATH_FALSE='#'
-+else
-+ GLIBCPP_BUILD_LIBMATH_TRUE='#'
-+ GLIBCPP_BUILD_LIBMATH_FALSE=
-+fi
-+
-+
-+ enable_wchar_t=no
-+
-+ echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6
-+echo "configure:4651: checking for mbstate_t" >&5
-+ cat > conftest.$ac_ext <<EOF
-+#line 4653 "configure"
-+#include "confdefs.h"
-+#include <wchar.h>
-+int main() {
-+mbstate_t teststate;
-+; return 0; }
-+EOF
-+if { (eval echo configure:4660: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+ rm -rf conftest*
-+ have_mbstate_t=yes
-+else
-+ echo "configure: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ rm -rf conftest*
-+ have_mbstate_t=no
-+fi
-+rm -f conftest*
-+ echo "$ac_t""$have_mbstate_t" 1>&6
-+ if test x"$have_mbstate_t" = xyes; then
-+ cat >> confdefs.h <<\EOF
-+#define HAVE_MBSTATE_T 1
-+EOF
-+
-+ fi
-+
-+ for ac_hdr in wchar.h
-+do
-+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-+echo "configure:4682: checking for $ac_hdr" >&5
-+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ cat > conftest.$ac_ext <<EOF
-+#line 4687 "configure"
-+#include "confdefs.h"
-+#include <$ac_hdr>
-+EOF
-+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-+{ (eval echo configure:4692: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-+if test -z "$ac_err"; then
-+ rm -rf conftest*
-+ eval "ac_cv_header_$ac_safe=yes"
-+else
-+ echo "$ac_err" >&5
-+ echo "configure: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ rm -rf conftest*
-+ eval "ac_cv_header_$ac_safe=no"
-+fi
-+rm -f conftest*
-+fi
-+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-+ echo "$ac_t""yes" 1>&6
-+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-+ cat >> confdefs.h <<EOF
-+#define $ac_tr_hdr 1
-+EOF
-+ ac_has_wchar_h=yes
-+else
-+ echo "$ac_t""no" 1>&6
-+ac_has_wchar_h=no
-+fi
-+done
-+
-+ for ac_hdr in wctype.h
-+do
-+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-+echo "configure:4723: checking for $ac_hdr" >&5
-+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ cat > conftest.$ac_ext <<EOF
-+#line 4728 "configure"
-+#include "confdefs.h"
-+#include <$ac_hdr>
-+EOF
-+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-+{ (eval echo configure:4733: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-+if test -z "$ac_err"; then
-+ rm -rf conftest*
-+ eval "ac_cv_header_$ac_safe=yes"
-+else
-+ echo "$ac_err" >&5
-+ echo "configure: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ rm -rf conftest*
-+ eval "ac_cv_header_$ac_safe=no"
-+fi
-+rm -f conftest*
-+fi
-+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-+ echo "$ac_t""yes" 1>&6
-+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-+ cat >> confdefs.h <<EOF
-+#define $ac_tr_hdr 1
-+EOF
-+ ac_has_wctype_h=yes
-+else
-+ echo "$ac_t""no" 1>&6
-+ac_has_wctype_h=no
-+fi
-+done
-+
-+
-+ if test x"$ac_has_wchar_h" = xyes &&
-+ test x"$ac_has_wctype_h" = xyes &&
-+ test x"$enable_c_mbchar" != xno; then
-+
-+ echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6
-+echo "configure:4766: checking for WCHAR_MIN and WCHAR_MAX" >&5
-+ cat > conftest.$ac_ext <<EOF
-+#line 4768 "configure"
-+#include "confdefs.h"
-+#include <wchar.h>
-+int main() {
-+int i = WCHAR_MIN; int j = WCHAR_MAX;
-+; return 0; }
-+EOF
-+if { (eval echo configure:4775: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+ rm -rf conftest*
-+ has_wchar_minmax=yes
-+else
-+ echo "configure: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ rm -rf conftest*
-+ has_wchar_minmax=no
-+fi
-+rm -f conftest*
-+ echo "$ac_t""$has_wchar_minmax" 1>&6
-+
-+ echo $ac_n "checking for WEOF""... $ac_c" 1>&6
-+echo "configure:4788: checking for WEOF" >&5
-+ cat > conftest.$ac_ext <<EOF
-+#line 4790 "configure"
-+#include "confdefs.h"
-+
-+ #include <wchar.h>
-+ #include <stddef.h>
-+int main() {
-+wint_t i = WEOF;
-+; return 0; }
-+EOF
-+if { (eval echo configure:4799: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+ rm -rf conftest*
-+ has_weof=yes
-+else
-+ echo "configure: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ rm -rf conftest*
-+ has_weof=no
-+fi
-+rm -f conftest*
-+ echo "$ac_t""$has_weof" 1>&6
-+
-+ ac_wfuncs=yes
-+ for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset
-+do
-+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-+echo "configure:4815: checking for $ac_func" >&5
-+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ cat > conftest.$ac_ext <<EOF
-+#line 4820 "configure"
-+#include "confdefs.h"
-+/* System header to define __stub macros and hopefully few prototypes,
-+ which can conflict with char $ac_func(); below. */
-+#include <assert.h>
-+/* Override any gcc2 internal prototype to avoid an error. */
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char $ac_func();
-+
-+int main() {
-+
-+/* The GNU C library defines this for functions which it implements
-+ to always fail with ENOSYS. Some functions are actually named
-+ something starting with __ and the normal name is an alias. */
-+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-+choke me
-+#else
-+$ac_func();
-+#endif
-+
-+; return 0; }
-+EOF
-+if { (eval echo configure:4843: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+ rm -rf conftest*
-+ eval "ac_cv_func_$ac_func=yes"
-+else
-+ echo "configure: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ rm -rf conftest*
-+ eval "ac_cv_func_$ac_func=no"
-+fi
-+rm -f conftest*
-+fi
-+
-+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-+ echo "$ac_t""yes" 1>&6
-+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-+ cat >> confdefs.h <<EOF
-+#define $ac_tr_func 1
-+EOF
-+
-+else
-+ echo "$ac_t""no" 1>&6
-+\
-+ ac_wfuncs=no
-+fi
-+done
-+
-+
-+ for ac_func in btowc wctob fgetwc fgetws fputwc fputws fwide \
-+ fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \
-+ vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
-+ mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
-+ wcstoul wcscpy wcsncpy wcscat wcsncat wcscmp wcscoll wcsncmp wcsxfrm \
-+ wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr
-+do
-+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-+echo "configure:4878: checking for $ac_func" >&5
-+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ cat > conftest.$ac_ext <<EOF
-+#line 4883 "configure"
-+#include "confdefs.h"
-+/* System header to define __stub macros and hopefully few prototypes,
-+ which can conflict with char $ac_func(); below. */
-+#include <assert.h>
-+/* Override any gcc2 internal prototype to avoid an error. */
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char $ac_func();
-+
-+int main() {
-+
-+/* The GNU C library defines this for functions which it implements
-+ to always fail with ENOSYS. Some functions are actually named
-+ something starting with __ and the normal name is an alias. */
-+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-+choke me
-+#else
-+$ac_func();
-+#endif
-+
-+; return 0; }
-+EOF
-+if { (eval echo configure:4906: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+ rm -rf conftest*
-+ eval "ac_cv_func_$ac_func=yes"
-+else
-+ echo "configure: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ rm -rf conftest*
-+ eval "ac_cv_func_$ac_func=no"
-+fi
-+rm -f conftest*
-+fi
-+
-+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-+ echo "$ac_t""yes" 1>&6
-+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-+ cat >> confdefs.h <<EOF
-+#define $ac_tr_func 1
-+EOF
-+
-+else
-+ echo "$ac_t""no" 1>&6
-+\
-+ ac_wfuncs=no
-+fi
-+done
-+
-+
-+ echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6
-+echo "configure:4934: checking for ISO C99 wchar_t support" >&5
-+ if test x"$has_weof" = xyes &&
-+ test x"$has_wchar_minmax" = xyes &&
-+ test x"$ac_wfuncs" = xyes; then
-+ ac_isoC99_wchar_t=yes
-+ else
-+ ac_isoC99_wchar_t=no
-+ fi
-+ echo "$ac_t""$ac_isoC99_wchar_t" 1>&6
-+
-+ ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'`
-+echo $ac_n "checking for iconv.h""... $ac_c" 1>&6
-+echo "configure:4946: checking for iconv.h" >&5
-+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ cat > conftest.$ac_ext <<EOF
-+#line 4951 "configure"
-+#include "confdefs.h"
-+#include <iconv.h>
-+EOF
-+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-+{ (eval echo configure:4956: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-+if test -z "$ac_err"; then
-+ rm -rf conftest*
-+ eval "ac_cv_header_$ac_safe=yes"
-+else
-+ echo "$ac_err" >&5
-+ echo "configure: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ rm -rf conftest*
-+ eval "ac_cv_header_$ac_safe=no"
-+fi
-+rm -f conftest*
-+fi
-+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-+ echo "$ac_t""yes" 1>&6
-+ ac_has_iconv_h=yes
-+else
-+ echo "$ac_t""no" 1>&6
-+ac_has_iconv_h=no
-+fi
-+
-+ ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'`
-+echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6
-+echo "configure:4980: checking for langinfo.h" >&5
-+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ cat > conftest.$ac_ext <<EOF
-+#line 4985 "configure"
-+#include "confdefs.h"
-+#include <langinfo.h>
-+EOF
-+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-+{ (eval echo configure:4990: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-+if test -z "$ac_err"; then
-+ rm -rf conftest*
-+ eval "ac_cv_header_$ac_safe=yes"
-+else
-+ echo "$ac_err" >&5
-+ echo "configure: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ rm -rf conftest*
-+ eval "ac_cv_header_$ac_safe=no"
-+fi
-+rm -f conftest*
-+fi
-+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-+ echo "$ac_t""yes" 1>&6
-+ ac_has_langinfo_h=yes
-+else
-+ echo "$ac_t""no" 1>&6
-+ac_has_langinfo_h=no
-+fi
-+
-+
-+ echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6
-+echo "configure:5014: checking for iconv in -liconv" >&5
-+ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'`
-+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ ac_save_LIBS="$LIBS"
-+LIBS="-liconv $LIBS"
-+cat > conftest.$ac_ext <<EOF
-+#line 5022 "configure"
-+#include "confdefs.h"
-+/* Override any gcc2 internal prototype to avoid an error. */
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char iconv();
-+
-+int main() {
-+iconv()
-+; return 0; }
-+EOF
-+if { (eval echo configure:5033: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+ rm -rf conftest*
-+ eval "ac_cv_lib_$ac_lib_var=yes"
-+else
-+ echo "configure: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ rm -rf conftest*
-+ eval "ac_cv_lib_$ac_lib_var=no"
-+fi
-+rm -f conftest*
-+LIBS="$ac_save_LIBS"
-+
-+fi
-+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-+ echo "$ac_t""yes" 1>&6
-+ libiconv="-liconv"
-+else
-+ echo "$ac_t""no" 1>&6
-+fi
-+
-+ ac_save_LIBS="$LIBS"
-+ LIBS="$LIBS $libiconv"
-+
-+ for ac_func in iconv_open iconv_close iconv nl_langinfo
-+do
-+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-+echo "configure:5059: checking for $ac_func" >&5
-+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ cat > conftest.$ac_ext <<EOF
-+#line 5064 "configure"
-+#include "confdefs.h"
-+/* System header to define __stub macros and hopefully few prototypes,
-+ which can conflict with char $ac_func(); below. */
-+#include <assert.h>
-+/* Override any gcc2 internal prototype to avoid an error. */
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char $ac_func();
-+
-+int main() {
-+
-+/* The GNU C library defines this for functions which it implements
-+ to always fail with ENOSYS. Some functions are actually named
-+ something starting with __ and the normal name is an alias. */
-+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-+choke me
-+#else
-+$ac_func();
-+#endif
-+
-+; return 0; }
-+EOF
-+if { (eval echo configure:5087: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+ rm -rf conftest*
-+ eval "ac_cv_func_$ac_func=yes"
-+else
-+ echo "configure: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ rm -rf conftest*
-+ eval "ac_cv_func_$ac_func=no"
-+fi
-+rm -f conftest*
-+fi
-+
-+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-+ echo "$ac_t""yes" 1>&6
-+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-+ cat >> confdefs.h <<EOF
-+#define $ac_tr_func 1
-+EOF
-+ \
-+ ac_XPG2funcs=yes
-+else
-+ echo "$ac_t""no" 1>&6
-+ac_XPG2funcs=no
-+fi
-+done
-+
-+
-+ LIBS="$ac_save_LIBS"
-+
-+ echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6
-+echo "configure:5117: checking for XPG2 wchar_t support" >&5
-+ if test x"$ac_has_iconv_h" = xyes &&
-+ test x"$ac_has_langinfo_h" = xyes &&
-+ test x"$ac_XPG2funcs" = xyes; then
-+ ac_XPG2_wchar_t=yes
-+ else
-+ ac_XPG2_wchar_t=no
-+ fi
-+ echo "$ac_t""$ac_XPG2_wchar_t" 1>&6
-+
-+ if test x"$ac_isoC99_wchar_t" = xyes &&
-+ test x"$ac_XPG2_wchar_t" = xyes; then
-+ cat >> confdefs.h <<\EOF
-+#define _GLIBCPP_USE_WCHAR_T 1
-+EOF
-+
-+ enable_wchar_t=yes
-+ fi
-+ fi
-+ echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
-+echo "configure:5137: checking for enabled wchar_t specializations" >&5
-+ echo "$ac_t""$enable_wchar_t" 1>&6
-+
-+
-+if test "$enable_wchar_t" = yes; then
-+ GLIBCPP_TEST_WCHAR_T_TRUE=
-+ GLIBCPP_TEST_WCHAR_T_FALSE='#'
-+else
-+ GLIBCPP_TEST_WCHAR_T_TRUE='#'
-+ GLIBCPP_TEST_WCHAR_T_FALSE=
-+fi
-+
-+
-+ cat >> confdefs.h <<\EOF
-+#define HAVE_COPYSIGN 1
-+EOF
-+
-+ cat >> confdefs.h <<\EOF
-+#define HAVE_FINITE 1
-+EOF
-+
-+ cat >> confdefs.h <<\EOF
-+#define HAVE_FINITEF 1
-+EOF
-+
-+ cat >> confdefs.h <<\EOF
-+#define HAVE_ISINF 1
-+EOF
-+
-+ cat >> confdefs.h <<\EOF
-+#define HAVE_ISINFF 1
-+EOF
-+
-+ cat >> confdefs.h <<\EOF
-+#define HAVE_ISNAN 1
-+EOF
-+
-+ cat >> confdefs.h <<\EOF
-+#define HAVE_ISNANF 1
-+EOF
-+ ;;
- *-linux*)
- os_include_dir="os/gnu-linux"
- for ac_hdr in nan.h ieeefp.h endian.h sys/isa_defs.h \
-diff -urN gcc-3.3.3/libstdc++-v3/configure.in gcc-3.3.3-new/libstdc++-v3/configure.in
---- gcc-3.3.3/libstdc++-v3/configure.in 2004-01-12 10:19:22.000000000 -0600
-+++ gcc-3.3.3-new/libstdc++-v3/configure.in 2004-02-16 23:13:45.000000000 -0600
-@@ -117,6 +117,36 @@
- # GLIBCPP_CHECK_MATH_SUPPORT
-
- case "$target" in
-+ *-uclibc*)
-+ os_include_dir="os/uclibc"
-+ AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
-+ machine/endian.h machine/param.h sys/machine.h sys/types.h \
-+ fp.h locale.h float.h inttypes.h])
-+ SECTION_FLAGS='-ffunction-sections -fdata-sections'
-+ AC_SUBST(SECTION_FLAGS)
-+ GLIBCPP_CHECK_LINKER_FEATURES
-+ GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT
-+ GLIBCPP_CHECK_WCHAR_T_SUPPORT
-+
-+ AC_DEFINE(HAVE_COPYSIGN)
-+ #AC_DEFINE(HAVE_COPYSIGNF)
-+ AC_DEFINE(HAVE_FINITE)
-+ AC_DEFINE(HAVE_FINITEF)
-+ #AC_DEFINE(HAVE_FREXPF)
-+ #AC_DEFINE(HAVE_HYPOTF)
-+ AC_DEFINE(HAVE_ISINF)
-+ AC_DEFINE(HAVE_ISINFF)
-+ AC_DEFINE(HAVE_ISNAN)
-+ AC_DEFINE(HAVE_ISNANF)
-+ #AC_DEFINE(HAVE_SINCOS)
-+ #AC_DEFINE(HAVE_SINCOSF)
-+ #if test x"long_double_math_on_this_cpu" = x"yes"; then
-+ #AC_DEFINE(HAVE_FINITEL)
-+ #AC_DEFINE(HAVE_HYPOTL)
-+ #AC_DEFINE(HAVE_ISINFL)
-+ #AC_DEFINE(HAVE_ISNANL)
-+ #fi
-+ ;;
- *-linux*)
- os_include_dir="os/gnu-linux"
- AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
-diff -urN gcc-3.3.3/libstdc++-v3/configure.target gcc-3.3.3-new/libstdc++-v3/configure.target
---- gcc-3.3.3/libstdc++-v3/configure.target 2003-10-01 14:07:07.000000000 -0500
-+++ gcc-3.3.3-new/libstdc++-v3/configure.target 2004-02-16 21:12:16.000000000 -0600
-@@ -133,6 +133,9 @@
- freebsd*)
- os_include_dir="os/bsd/freebsd"
- ;;
-+ linux-uclibc*)
-+ os_include_dir="os/uclibc"
-+ ;;
- gnu* | linux*)
- os_include_dir="os/gnu-linux"
- ;;
-diff -urN gcc-3.3.3/libstdc++-v3/include/c_std/std_cstdlib.h gcc-3.3.3-new/libstdc++-v3/include/c_std/std_cstdlib.h
---- gcc-3.3.3/libstdc++-v3/include/c_std/std_cstdlib.h 2003-04-18 05:08:05.000000000 -0500
-+++ gcc-3.3.3-new/libstdc++-v3/include/c_std/std_cstdlib.h 2004-02-16 21:12:16.000000000 -0600
-@@ -101,9 +101,11 @@
- using ::labs;
- using ::ldiv;
- using ::malloc;
-+#if _GLIBCPP_USE_WCHAR_T
- using ::mblen;
- using ::mbstowcs;
- using ::mbtowc;
-+#endif
- using ::qsort;
- using ::rand;
- using ::realloc;
-@@ -112,8 +114,10 @@
- using ::strtol;
- using ::strtoul;
- using ::system;
-+#if _GLIBCPP_USE_WCHAR_T
- using ::wcstombs;
- using ::wctomb;
-+#endif
-
- inline long
- abs(long __i) { return labs(__i); }
-diff -urN gcc-3.3.3/libstdc++-v3/include/c_std/std_cwchar.h gcc-3.3.3-new/libstdc++-v3/include/c_std/std_cwchar.h
---- gcc-3.3.3/libstdc++-v3/include/c_std/std_cwchar.h 2003-04-18 05:08:05.000000000 -0500
-+++ gcc-3.3.3-new/libstdc++-v3/include/c_std/std_cwchar.h 2004-02-16 21:12:16.000000000 -0600
-@@ -165,7 +165,9 @@
- using ::wcscoll;
- using ::wcscpy;
- using ::wcscspn;
-+#ifdef HAVE_WCSFTIME
- using ::wcsftime;
-+#endif
- using ::wcslen;
- using ::wcsncat;
- using ::wcsncmp;
-diff -urN gcc-3.3.3/ltconfig gcc-3.3.3-new/ltconfig
---- gcc-3.3.3/ltconfig 2003-02-19 20:10:02.000000000 -0600
-+++ gcc-3.3.3-new/ltconfig 2004-02-16 21:12:16.000000000 -0600
-@@ -603,6 +603,7 @@
- # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
- case $host_os in
- linux-gnu*) ;;
-+linux-uclibc*) ;;
- linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
- esac
-
-@@ -1247,6 +1248,24 @@
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-+linux-uclibc*)
-+ version_type=linux
-+ need_lib_prefix=no
-+ need_version=no
-+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-+ soname_spec='${libname}${release}.so$major'
-+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-+ shlibpath_var=LD_LIBRARY_PATH
-+ shlibpath_overrides_runpath=no
-+ # This implies no fast_install, which is unacceptable.
-+ # Some rework will be needed to allow for fast_install
-+ # before this can be enabled.
-+ # Note: copied from linux-gnu, and may not be appropriate.
-+ hardcode_into_libs=yes
-+ # Assume using the uClibc dynamic linker.
-+ dynamic_linker="uClibc ld.so"
-+ ;;
-+
- netbsd*)
- need_lib_prefix=no
- need_version=no
diff --git a/packages/gcc/gcc-3.3.3/gcc-uclibc-3.3-110-conf.patch b/packages/gcc/gcc-3.3.3/gcc-uclibc-3.3-110-conf.patch
deleted file mode 100644
index f297c3283f..0000000000
--- a/packages/gcc/gcc-3.3.3/gcc-uclibc-3.3-110-conf.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-Use the patch by Carl Miller <chaz@energoncube.net> for powerpc, with
-some minor modifications. Changed *os_uclibc to *os_linux_uclibc since
-at some point we might support other platforms. Also updated to 3.3.3.
-diff -urN gcc-3.3.3/gcc/config/rs6000/linux.h gcc-3.3.3-new/gcc/config/rs6000/linux.h
---- gcc-3.3.3/gcc/config/rs6000/linux.h 2003-11-14 00:46:10.000000000 -0600
-+++ gcc-3.3.3-new/gcc/config/rs6000/linux.h 2004-02-16 21:13:40.000000000 -0600
-@@ -64,7 +64,11 @@
- #define LINK_START_DEFAULT_SPEC "%(link_start_linux)"
-
- #undef LINK_OS_DEFAULT_SPEC
-+#ifdef USE_UCLIBC
-+#define LINK_OS_DEFAULT_SPEC "%(link_os_linux_uclibc)"
-+#else
- #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
-+#endif
-
- #undef TARGET_VERSION
- #define TARGET_VERSION fprintf (stderr, " (PowerPC GNU/Linux)");
-diff -urN gcc-3.3.3/gcc/config/rs6000/sysv4.h gcc-3.3.3-new/gcc/config/rs6000/sysv4.h
---- gcc-3.3.3/gcc/config/rs6000/sysv4.h 2003-10-28 13:55:41.000000000 -0600
-+++ gcc-3.3.3-new/gcc/config/rs6000/sysv4.h 2004-02-16 21:13:40.000000000 -0600
-@@ -968,9 +968,11 @@
- %{mcall-linux: %(link_os_linux) } \
- %{mcall-gnu: %(link_os_gnu) } \
- %{mcall-netbsd: %(link_os_netbsd) } \
-+%{mcall-uclibc: %(link_os_linux_uclibc) } \
- %{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mwindiss: \
- %{!mcall-freebsd: %{!mcall-linux: %{!mcall-gnu: \
-- %{!mcall-netbsd: %(link_os_default) }}}}}}}}}"
-+ %{!mcall-netbsd: %{!mcall-uclibc: \
-+ %(link_os_default) }}}}}}}}}}"
-
- #define LINK_OS_DEFAULT_SPEC ""
-
-@@ -1307,6 +1309,12 @@
-
- #define LINK_OS_WINDISS_SPEC ""
-
-+/* uClibc support for Linux. */
-+
-+#define LINK_OS_LINUX_UCLIBC_SPEC "-m elf32ppclinux %{!shared: %{!static: \
-+ %{rdynamic:-export-dynamic} \
-+ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}}"
-+
- /* Define any extra SPECS that the compiler needs to generate. */
- /* Override rs6000.h definition. */
- #undef SUBTARGET_EXTRA_SPECS
-@@ -1372,6 +1380,7 @@
- { "link_os_netbsd", LINK_OS_NETBSD_SPEC }, \
- { "link_os_vxworks", LINK_OS_VXWORKS_SPEC }, \
- { "link_os_windiss", LINK_OS_WINDISS_SPEC }, \
-+ { "link_os_linux_uclibc", LINK_OS_LINUX_UCLIBC_SPEC }, \
- { "link_os_default", LINK_OS_DEFAULT_SPEC }, \
- { "cc1_endian_big", CC1_ENDIAN_BIG_SPEC }, \
- { "cc1_endian_little", CC1_ENDIAN_LITTLE_SPEC }, \
diff --git a/packages/gcc/gcc-3.3.3/gcc-uclibc-3.3-120-softfloat.patch b/packages/gcc/gcc-3.3.3/gcc-uclibc-3.3-120-softfloat.patch
deleted file mode 100644
index f2431896cf..0000000000
--- a/packages/gcc/gcc-3.3.3/gcc-uclibc-3.3-120-softfloat.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- gcc-3.3.2-old/configure.in 2003-08-09 01:57:21.000000000 -0500
-+++ gcc-3.3.2/configure.in 2004-01-15 12:46:29.000000000 -0600
-@@ -1418,6 +1418,11 @@
- fi
-
- FLAGS_FOR_TARGET=
-+case " $targargs " in
-+ *" --nfp "* | *" --without-float "*)
-+ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -msoft-float'
-+ ;;
-+esac
- case " $target_configdirs " in
- *" newlib "*)
- case " $targargs " in
diff --git a/packages/gcc/gcc-3.3.3/gcc-uclibc-3.3-200-code.patch b/packages/gcc/gcc-3.3.3/gcc-uclibc-3.3-200-code.patch
deleted file mode 100644
index 5880d834b4..0000000000
--- a/packages/gcc/gcc-3.3.3/gcc-uclibc-3.3-200-code.patch
+++ /dev/null
@@ -1,3021 +0,0 @@
-Warning! This patch is not finished. The wide char time-related stuff
-is broken or non-functional. But it serves as a starting point to get
-things building while I continue to work on the uClibc locale internals.
-diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/c++locale_internal.h gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/c++locale_internal.h 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/c++locale_internal.h 2004-01-09 07:55:02.000000000 -0600
-@@ -0,0 +1,63 @@
-+// Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*-
-+
-+// Copyright (C) 2002 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library 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 library 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 library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+// Written by Jakub Jelinek <jakub@redhat.com>
-+
-+#include <clocale>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning clean this up
-+#endif
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+
-+extern "C" __typeof(iswctype_l) __iswctype_l;
-+extern "C" __typeof(nl_langinfo_l) __nl_langinfo_l;
-+extern "C" __typeof(strcoll_l) __strcoll_l;
-+extern "C" __typeof(strftime_l) __strftime_l;
-+extern "C" __typeof(strtod_l) __strtod_l;
-+extern "C" __typeof(strtof_l) __strtof_l;
-+extern "C" __typeof(strtold_l) __strtold_l;
-+extern "C" __typeof(strtol_l) __strtol_l;
-+extern "C" __typeof(strtoll_l) __strtoll_l;
-+extern "C" __typeof(strtoul_l) __strtoul_l;
-+extern "C" __typeof(strtoull_l) __strtoull_l;
-+extern "C" __typeof(strxfrm_l) __strxfrm_l;
-+extern "C" __typeof(towlower_l) __towlower_l;
-+extern "C" __typeof(towupper_l) __towupper_l;
-+extern "C" __typeof(wcscoll_l) __wcscoll_l;
-+extern "C" __typeof(wcsftime_l) __wcsftime_l;
-+extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l;
-+extern "C" __typeof(wctype_l) __wctype_l;
-+extern "C" __typeof(newlocale) __newlocale;
-+extern "C" __typeof(freelocale) __freelocale;
-+extern "C" __typeof(duplocale) __duplocale;
-+extern "C" __typeof(uselocale) __uselocale;
-+
-+#endif // GLIBC 2.3 and later
-diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/c_locale.cc gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/c_locale.cc
---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/c_locale.cc 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/c_locale.cc 2004-01-09 08:37:55.000000000 -0600
-@@ -0,0 +1,231 @@
-+// Wrapper for underlying C-language localization -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library 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 library 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 library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.8 Standard locale categories.
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#include <locale>
-+#include <stdexcept>
-+#include <langinfo.h>
-+#include <bits/c++locale_internal.h>
-+
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __strtol_l(S, E, B, L) strtol((S), (E), (B))
-+#define __strtoul_l(S, E, B, L) strtoul((S), (E), (B))
-+#define __strtoll_l(S, E, B, L) strtoll((S), (E), (B))
-+#define __strtoull_l(S, E, B, L) strtoull((S), (E), (B))
-+#define __strtof_l(S, E, L) strtof((S), (E))
-+#define __strtod_l(S, E, L) strtod((S), (E))
-+#define __strtold_l(S, E, L) strtold((S), (E))
-+#endif
-+
-+namespace std
-+{
-+ template<>
-+ void
-+ __convert_to_v(const char* __s, long& __v, ios_base::iostate& __err,
-+ const __c_locale& __cloc, int __base)
-+ {
-+ if (!(__err & ios_base::failbit))
-+ {
-+ char* __sanity;
-+ errno = 0;
-+ long __l = __strtol_l(__s, &__sanity, __base, __cloc);
-+ if (__sanity != __s && *__sanity == '\0' && errno != ERANGE)
-+ __v = __l;
-+ else
-+ __err |= ios_base::failbit;
-+ }
-+ }
-+
-+ template<>
-+ void
-+ __convert_to_v(const char* __s, unsigned long& __v,
-+ ios_base::iostate& __err, const __c_locale& __cloc,
-+ int __base)
-+ {
-+ if (!(__err & ios_base::failbit))
-+ {
-+ char* __sanity;
-+ errno = 0;
-+ unsigned long __ul = __strtoul_l(__s, &__sanity, __base, __cloc);
-+ if (__sanity != __s && *__sanity == '\0' && errno != ERANGE)
-+ __v = __ul;
-+ else
-+ __err |= ios_base::failbit;
-+ }
-+ }
-+
-+#ifdef _GLIBCPP_USE_LONG_LONG
-+ template<>
-+ void
-+ __convert_to_v(const char* __s, long long& __v, ios_base::iostate& __err,
-+ const __c_locale& __cloc, int __base)
-+ {
-+ if (!(__err & ios_base::failbit))
-+ {
-+ char* __sanity;
-+ errno = 0;
-+ long long __ll = __strtoll_l(__s, &__sanity, __base, __cloc);
-+ if (__sanity != __s && *__sanity == '\0' && errno != ERANGE)
-+ __v = __ll;
-+ else
-+ __err |= ios_base::failbit;
-+ }
-+ }
-+
-+ template<>
-+ void
-+ __convert_to_v(const char* __s, unsigned long long& __v,
-+ ios_base::iostate& __err, const __c_locale& __cloc,
-+ int __base)
-+ {
-+ if (!(__err & ios_base::failbit))
-+ {
-+ char* __sanity;
-+ errno = 0;
-+ unsigned long long __ull = __strtoull_l(__s, &__sanity, __base,
-+ __cloc);
-+ if (__sanity != __s && *__sanity == '\0' && errno != ERANGE)
-+ __v = __ull;
-+ else
-+ __err |= ios_base::failbit;
-+ }
-+ }
-+#endif
-+
-+ template<>
-+ void
-+ __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err,
-+ const __c_locale& __cloc, int)
-+ {
-+ if (!(__err & ios_base::failbit))
-+ {
-+ char* __sanity;
-+ errno = 0;
-+ float __f = __strtof_l(__s, &__sanity, __cloc);
-+ if (__sanity != __s && *__sanity == '\0' && errno != ERANGE)
-+ __v = __f;
-+ else
-+ __err |= ios_base::failbit;
-+ }
-+ }
-+
-+ template<>
-+ void
-+ __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err,
-+ const __c_locale& __cloc, int)
-+ {
-+ if (!(__err & ios_base::failbit))
-+ {
-+ char* __sanity;
-+ errno = 0;
-+ double __d = __strtod_l(__s, &__sanity, __cloc);
-+ if (__sanity != __s && *__sanity == '\0' && errno != ERANGE)
-+ __v = __d;
-+ else
-+ __err |= ios_base::failbit;
-+ }
-+ }
-+
-+ template<>
-+ void
-+ __convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err,
-+ const __c_locale& __cloc, int)
-+ {
-+ if (!(__err & ios_base::failbit))
-+ {
-+ char* __sanity;
-+ errno = 0;
-+ long double __ld = __strtold_l(__s, &__sanity, __cloc);
-+ if (__sanity != __s && *__sanity == '\0' && errno != ERANGE)
-+ __v = __ld;
-+ else
-+ __err |= ios_base::failbit;
-+ }
-+ }
-+
-+ void
-+ locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s,
-+ __c_locale __old)
-+ {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __cloc = __newlocale(1 << LC_ALL, __s, __old);
-+ if (!__cloc)
-+ {
-+ // This named locale is not supported by the underlying OS.
-+ __throw_runtime_error("attempt to create locale from unknown name");
-+ }
-+#else
-+ __cloc = NULL;
-+#endif
-+ }
-+
-+ void
-+ locale::facet::_S_destroy_c_locale(__c_locale& __cloc)
-+ {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ if (_S_c_locale != __cloc)
-+ __freelocale(__cloc);
-+#else
-+ __cloc = NULL;
-+#endif
-+ }
-+
-+ __c_locale
-+ locale::facet::_S_clone_c_locale(__c_locale& __cloc)
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ { return __duplocale(__cloc); }
-+#else
-+ { return __c_locale(); }
-+#endif
-+
-+ const char* locale::_S_categories[_S_categories_size
-+ + _S_extra_categories_size] =
-+ {
-+ "LC_CTYPE",
-+ "LC_NUMERIC",
-+ "LC_TIME",
-+ "LC_COLLATE",
-+ "LC_MONETARY",
-+ "LC_MESSAGES"
-+#if _GLIBCPP_NUM_CATEGORIES != 0
-+ ,
-+ "LC_PAPER",
-+ "LC_NAME",
-+ "LC_ADDRESS",
-+ "LC_TELEPHONE",
-+ "LC_MEASUREMENT",
-+ "LC_IDENTIFICATION"
-+#endif
-+ };
-+} // namespace std
-diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/c_locale.h gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/c_locale.h
---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/c_locale.h 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/c_locale.h 2004-01-09 07:51:06.000000000 -0600
-@@ -0,0 +1,118 @@
-+// Wrapper for underlying C-language localization -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library 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 library 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 library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.8 Standard locale categories.
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#ifndef _CPP_BITS_C_LOCALE_H
-+#define _CPP_BITS_C_LOCALE_H 1
-+
-+#pragma GCC system_header
-+
-+#include <clocale>
-+#include <langinfo.h> // For codecvt
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix this
-+#endif
-+#ifdef __UCLIBC_HAS_LOCALE__
-+#include <iconv.h> // For codecvt using iconv, iconv_t
-+#endif
-+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
-+#include <libintl.h> // For messages
-+#endif
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning what is _GLIBCPP_C_LOCALE_GNU for
-+#endif
-+#define _GLIBCPP_C_LOCALE_GNU 1
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix categories
-+#endif
-+// #define _GLIBCPP_NUM_CATEGORIES 6
-+#define _GLIBCPP_NUM_CATEGORIES 0
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+namespace __gnu_cxx
-+{
-+ extern "C" __typeof(uselocale) __uselocale;
-+}
-+#endif
-+
-+namespace std
-+{
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ typedef __locale_t __c_locale;
-+#else
-+ typedef int* __c_locale;
-+#endif
-+
-+ // Convert numeric value of type _Tv to string and return length of
-+ // string. If snprintf is available use it, otherwise fall back to
-+ // the unsafe sprintf which, in general, can be dangerous and should
-+ // be avoided.
-+ template<typename _Tv>
-+ int
-+ __convert_from_v(char* __out, const int __size, const char* __fmt,
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ _Tv __v, const __c_locale& __cloc, int __prec = -1)
-+ {
-+ __c_locale __old = __gnu_cxx::__uselocale(__cloc);
-+#else
-+ _Tv __v, const __c_locale&, int __prec = -1)
-+ {
-+# ifdef __UCLIBC_HAS_LOCALE__
-+ char* __old = setlocale(LC_ALL, NULL);
-+ char* __sav = static_cast<char*>(malloc(strlen(__old) + 1));
-+ if (__sav)
-+ strcpy(__sav, __old);
-+ setlocale(LC_ALL, "C");
-+# endif
-+#endif
-+
-+ int __ret;
-+ if (__prec >= 0)
-+ __ret = snprintf(__out, __size, __fmt, __prec, __v);
-+ else
-+ __ret = snprintf(__out, __size, __fmt, __v);
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __gnu_cxx::__uselocale(__old);
-+#elif defined __UCLIBC_HAS_LOCALE__
-+ setlocale(LC_ALL, __sav);
-+ free(__sav);
-+#endif
-+ return __ret;
-+ }
-+}
-+
-+#endif
-diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/codecvt_members.cc gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/codecvt_members.cc
---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/codecvt_members.cc 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/codecvt_members.cc 2004-01-09 04:04:34.000000000 -0600
-@@ -0,0 +1,113 @@
-+// std::codecvt implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library 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 library 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 library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.1.5 - Template class codecvt
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#include <locale>
-+#include <bits/c++locale_internal.h>
-+
-+namespace std
-+{
-+ // Specializations.
-+#ifdef _GLIBCPP_USE_WCHAR_T
-+ codecvt_base::result
-+ codecvt<wchar_t, char, mbstate_t>::
-+ do_out(state_type& __state, const intern_type* __from,
-+ const intern_type* __from_end, const intern_type*& __from_next,
-+ extern_type* __to, extern_type* __to_end,
-+ extern_type*& __to_next) const
-+ {
-+ result __ret = error;
-+ size_t __len = min(__from_end - __from, __to_end - __to);
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __c_locale __old = __uselocale(_S_c_locale);
-+#endif
-+ size_t __conv = wcsrtombs(__to, &__from, __len, &__state);
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __uselocale(__old);
-+#endif
-+
-+ if (__conv == __len)
-+ {
-+ __from_next = __from;
-+ __to_next = __to + __conv;
-+ __ret = ok;
-+ }
-+ else if (__conv > 0 && __conv < __len)
-+ {
-+ __from_next = __from;
-+ __to_next = __to + __conv;
-+ __ret = partial;
-+ }
-+ else
-+ __ret = error;
-+
-+ return __ret;
-+ }
-+
-+ codecvt_base::result
-+ codecvt<wchar_t, char, mbstate_t>::
-+ do_in(state_type& __state, const extern_type* __from,
-+ const extern_type* __from_end, const extern_type*& __from_next,
-+ intern_type* __to, intern_type* __to_end,
-+ intern_type*& __to_next) const
-+ {
-+ result __ret = error;
-+ size_t __len = min(__from_end - __from, __to_end - __to);
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __c_locale __old = __uselocale(_S_c_locale);
-+#endif
-+ size_t __conv = mbsrtowcs(__to, &__from, __len, &__state);
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __uselocale(__old);
-+#endif
-+
-+ if (__conv == __len)
-+ {
-+ __from_next = __from;
-+ __to_next = __to + __conv;
-+ __ret = ok;
-+ }
-+ else if (__conv > 0 && __conv < __len)
-+ {
-+ __from_next = __from;
-+ __to_next = __to + __conv;
-+ __ret = partial;
-+ }
-+ else
-+ __ret = error;
-+
-+ return __ret;
-+ }
-+#endif
-+}
-diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/codecvt_specializations.h gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/codecvt_specializations.h
---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/codecvt_specializations.h 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/codecvt_specializations.h 2004-01-09 01:53:51.000000000 -0600
-@@ -0,0 +1,461 @@
-+// Locale support (codecvt) -*- C++ -*-
-+
-+// Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library 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 library 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 library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.1.5 Template class codecvt
-+//
-+
-+// Warning: this file is not meant for user inclusion. Use <locale>.
-+
-+// Written by Benjamin Kosnik <bkoz@cygnus.com>
-+
-+ // XXX
-+ // Define this here to codecvt.cc can have _S_max_size definition.
-+#define _GLIBCPP_USE___ENC_TRAITS 1
-+
-+ // Extension to use icov for dealing with character encodings,
-+ // including conversions and comparisons between various character
-+ // sets. This object encapsulates data that may need to be shared between
-+ // char_traits, codecvt and ctype.
-+ class __enc_traits
-+ {
-+ public:
-+ // Types:
-+ // NB: A conversion descriptor subsumes and enhances the
-+ // functionality of a simple state type such as mbstate_t.
-+ typedef iconv_t __desc_type;
-+
-+ protected:
-+ // Data Members:
-+ // Max size of charset encoding name
-+ static const int _S_max_size = 32;
-+ // Name of internal character set encoding.
-+ char _M_int_enc[_S_max_size];
-+ // Name of external character set encoding.
-+ char _M_ext_enc[_S_max_size];
-+
-+ // Conversion descriptor between external encoding to internal encoding.
-+ __desc_type _M_in_desc;
-+ // Conversion descriptor between internal encoding to external encoding.
-+ __desc_type _M_out_desc;
-+
-+ // Details the byte-order marker for the external encoding, if necessary.
-+ int _M_ext_bom;
-+
-+ // Details the byte-order marker for the internal encoding, if necessary.
-+ int _M_int_bom;
-+
-+ public:
-+ explicit __enc_traits()
-+ : _M_in_desc(0), _M_out_desc(0), _M_ext_bom(0), _M_int_bom(0)
-+ {
-+ memset(_M_int_enc, 0, _S_max_size);
-+ memset(_M_ext_enc, 0, _S_max_size);
-+ }
-+
-+ explicit __enc_traits(const char* __int, const char* __ext,
-+ int __ibom = 0, int __ebom = 0)
-+ : _M_in_desc(0), _M_out_desc(0), _M_ext_bom(0), _M_int_bom(0)
-+ {
-+ strncpy(_M_int_enc, __int, _S_max_size);
-+ strncpy(_M_ext_enc, __ext, _S_max_size);
-+ }
-+
-+ // 21.1.2 traits typedefs
-+ // p4
-+ // typedef STATE_T state_type
-+ // requires: state_type shall meet the requirements of
-+ // CopyConstructible types (20.1.3)
-+ __enc_traits(const __enc_traits& __obj): _M_in_desc(0), _M_out_desc(0)
-+ {
-+ strncpy(_M_int_enc, __obj._M_int_enc, _S_max_size);
-+ strncpy(_M_ext_enc, __obj._M_ext_enc, _S_max_size);
-+ _M_ext_bom = __obj._M_ext_bom;
-+ _M_int_bom = __obj._M_int_bom;
-+ }
-+
-+ // Need assignment operator as well.
-+ __enc_traits&
-+ operator=(const __enc_traits& __obj)
-+ {
-+ strncpy(_M_int_enc, __obj._M_int_enc, _S_max_size);
-+ strncpy(_M_ext_enc, __obj._M_ext_enc, _S_max_size);
-+ _M_in_desc = 0;
-+ _M_out_desc = 0;
-+ _M_ext_bom = __obj._M_ext_bom;
-+ _M_int_bom = __obj._M_int_bom;
-+ return *this;
-+ }
-+
-+ ~__enc_traits()
-+ {
-+ __desc_type __err = reinterpret_cast<iconv_t>(-1);
-+ if (_M_in_desc && _M_in_desc != __err)
-+ iconv_close(_M_in_desc);
-+ if (_M_out_desc && _M_out_desc != __err)
-+ iconv_close(_M_out_desc);
-+ }
-+
-+ void
-+ _M_init()
-+ {
-+ const __desc_type __err = reinterpret_cast<iconv_t>(-1);
-+ if (!_M_in_desc)
-+ {
-+ _M_in_desc = iconv_open(_M_int_enc, _M_ext_enc);
-+ if (_M_in_desc == __err)
-+ __throw_runtime_error("creating iconv input descriptor failed.");
-+ }
-+ if (!_M_out_desc)
-+ {
-+ _M_out_desc = iconv_open(_M_ext_enc, _M_int_enc);
-+ if (_M_out_desc == __err)
-+ __throw_runtime_error("creating iconv output descriptor failed.");
-+ }
-+ }
-+
-+ bool
-+ _M_good()
-+ {
-+ const __desc_type __err = reinterpret_cast<iconv_t>(-1);
-+ bool __test = _M_in_desc && _M_in_desc != __err;
-+ __test &= _M_out_desc && _M_out_desc != __err;
-+ return __test;
-+ }
-+
-+ const __desc_type*
-+ _M_get_in_descriptor()
-+ { return &_M_in_desc; }
-+
-+ const __desc_type*
-+ _M_get_out_descriptor()
-+ { return &_M_out_desc; }
-+
-+ int
-+ _M_get_external_bom()
-+ { return _M_ext_bom; }
-+
-+ int
-+ _M_get_internal_bom()
-+ { return _M_int_bom; }
-+
-+ const char*
-+ _M_get_internal_enc()
-+ { return _M_int_enc; }
-+
-+ const char*
-+ _M_get_external_enc()
-+ { return _M_ext_enc; }
-+ };
-+
-+ // Partial specialization
-+ // This specialization takes advantage of iconv to provide code
-+ // conversions between a large number of character encodings.
-+ template<typename _InternT, typename _ExternT>
-+ class codecvt<_InternT, _ExternT, __enc_traits>
-+ : public __codecvt_abstract_base<_InternT, _ExternT, __enc_traits>
-+ {
-+ public:
-+ // Types:
-+ typedef codecvt_base::result result;
-+ typedef _InternT intern_type;
-+ typedef _ExternT extern_type;
-+ typedef __enc_traits state_type;
-+ typedef __enc_traits::__desc_type __desc_type;
-+ typedef __enc_traits __enc_type;
-+
-+ // Data Members:
-+ static locale::id id;
-+
-+ explicit
-+ codecvt(size_t __refs = 0)
-+ : __codecvt_abstract_base<intern_type, extern_type, state_type>(__refs)
-+ { }
-+
-+ explicit
-+ codecvt(__enc_type* __enc, size_t __refs = 0)
-+ : __codecvt_abstract_base<intern_type, extern_type, state_type>(__refs)
-+ { }
-+
-+ protected:
-+ virtual
-+ ~codecvt() { }
-+
-+ virtual result
-+ do_out(state_type& __state, const intern_type* __from,
-+ const intern_type* __from_end, const intern_type*& __from_next,
-+ extern_type* __to, extern_type* __to_end,
-+ extern_type*& __to_next) const;
-+
-+ virtual result
-+ do_unshift(state_type& __state, extern_type* __to,
-+ extern_type* __to_end, extern_type*& __to_next) const;
-+
-+ virtual result
-+ do_in(state_type& __state, const extern_type* __from,
-+ const extern_type* __from_end, const extern_type*& __from_next,
-+ intern_type* __to, intern_type* __to_end,
-+ intern_type*& __to_next) const;
-+
-+ virtual int
-+ do_encoding() const throw();
-+
-+ virtual bool
-+ do_always_noconv() const throw();
-+
-+ virtual int
-+ do_length(const state_type&, const extern_type* __from,
-+ const extern_type* __end, size_t __max) const;
-+
-+ virtual int
-+ do_max_length() const throw();
-+ };
-+
-+ template<typename _InternT, typename _ExternT>
-+ locale::id
-+ codecvt<_InternT, _ExternT, __enc_traits>::id;
-+
-+ // This adaptor works around the signature problems of the second
-+ // argument to iconv(): SUSv2 and others use 'const char**', but glibc 2.2
-+ // uses 'char**', which matches the POSIX 1003.1-2001 standard.
-+ // Using this adaptor, g++ will do the work for us.
-+ template<typename _T>
-+ inline size_t
-+ __iconv_adaptor(size_t(*__func)(iconv_t, _T, size_t*, char**, size_t*),
-+ iconv_t __cd, char** __inbuf, size_t* __inbytes,
-+ char** __outbuf, size_t* __outbytes)
-+ { return __func(__cd, (_T)__inbuf, __inbytes, __outbuf, __outbytes); }
-+
-+ template<typename _InternT, typename _ExternT>
-+ codecvt_base::result
-+ codecvt<_InternT, _ExternT, __enc_traits>::
-+ do_out(state_type& __state, const intern_type* __from,
-+ const intern_type* __from_end, const intern_type*& __from_next,
-+ extern_type* __to, extern_type* __to_end,
-+ extern_type*& __to_next) const
-+ {
-+ result __ret = codecvt_base::error;
-+ if (__state._M_good())
-+ {
-+ typedef state_type::__desc_type __desc_type;
-+ const __desc_type* __desc = __state._M_get_out_descriptor();
-+ const size_t __fmultiple = sizeof(intern_type);
-+ size_t __fbytes = __fmultiple * (__from_end - __from);
-+ const size_t __tmultiple = sizeof(extern_type);
-+ size_t __tbytes = __tmultiple * (__to_end - __to);
-+
-+ // Argument list for iconv specifies a byte sequence. Thus,
-+ // all to/from arrays must be brutally casted to char*.
-+ char* __cto = reinterpret_cast<char*>(__to);
-+ char* __cfrom;
-+ size_t __conv;
-+
-+ // Some encodings need a byte order marker as the first item
-+ // in the byte stream, to designate endian-ness. The default
-+ // value for the byte order marker is NULL, so if this is
-+ // the case, it's not necessary and we can just go on our
-+ // merry way.
-+ int __int_bom = __state._M_get_internal_bom();
-+ if (__int_bom)
-+ {
-+ size_t __size = __from_end - __from;
-+ intern_type* __cfixed = static_cast<intern_type*>(__builtin_alloca(sizeof(intern_type) * (__size + 1)));
-+ __cfixed[0] = static_cast<intern_type>(__int_bom);
-+ char_traits<intern_type>::copy(__cfixed + 1, __from, __size);
-+ __cfrom = reinterpret_cast<char*>(__cfixed);
-+ __conv = __iconv_adaptor(iconv, *__desc, &__cfrom,
-+ &__fbytes, &__cto, &__tbytes);
-+ }
-+ else
-+ {
-+ intern_type* __cfixed = const_cast<intern_type*>(__from);
-+ __cfrom = reinterpret_cast<char*>(__cfixed);
-+ __conv = __iconv_adaptor(iconv, *__desc, &__cfrom, &__fbytes,
-+ &__cto, &__tbytes);
-+ }
-+
-+ if (__conv != size_t(-1))
-+ {
-+ __from_next = reinterpret_cast<const intern_type*>(__cfrom);
-+ __to_next = reinterpret_cast<extern_type*>(__cto);
-+ __ret = codecvt_base::ok;
-+ }
-+ else
-+ {
-+ if (__fbytes < __fmultiple * (__from_end - __from))
-+ {
-+ __from_next = reinterpret_cast<const intern_type*>(__cfrom);
-+ __to_next = reinterpret_cast<extern_type*>(__cto);
-+ __ret = codecvt_base::partial;
-+ }
-+ else
-+ __ret = codecvt_base::error;
-+ }
-+ }
-+ return __ret;
-+ }
-+
-+ template<typename _InternT, typename _ExternT>
-+ codecvt_base::result
-+ codecvt<_InternT, _ExternT, __enc_traits>::
-+ do_unshift(state_type& __state, extern_type* __to,
-+ extern_type* __to_end, extern_type*& __to_next) const
-+ {
-+ result __ret = codecvt_base::error;
-+ if (__state._M_good())
-+ {
-+ typedef state_type::__desc_type __desc_type;
-+ const __desc_type* __desc = __state._M_get_in_descriptor();
-+ const size_t __tmultiple = sizeof(intern_type);
-+ size_t __tlen = __tmultiple * (__to_end - __to);
-+
-+ // Argument list for iconv specifies a byte sequence. Thus,
-+ // all to/from arrays must be brutally casted to char*.
-+ char* __cto = reinterpret_cast<char*>(__to);
-+ size_t __conv = __iconv_adaptor(iconv,*__desc, NULL, NULL,
-+ &__cto, &__tlen);
-+
-+ if (__conv != size_t(-1))
-+ {
-+ __to_next = reinterpret_cast<extern_type*>(__cto);
-+ if (__tlen == __tmultiple * (__to_end - __to))
-+ __ret = codecvt_base::noconv;
-+ else if (__tlen == 0)
-+ __ret = codecvt_base::ok;
-+ else
-+ __ret = codecvt_base::partial;
-+ }
-+ else
-+ __ret = codecvt_base::error;
-+ }
-+ return __ret;
-+ }
-+
-+ template<typename _InternT, typename _ExternT>
-+ codecvt_base::result
-+ codecvt<_InternT, _ExternT, __enc_traits>::
-+ do_in(state_type& __state, const extern_type* __from,
-+ const extern_type* __from_end, const extern_type*& __from_next,
-+ intern_type* __to, intern_type* __to_end,
-+ intern_type*& __to_next) const
-+ {
-+ result __ret = codecvt_base::error;
-+ if (__state._M_good())
-+ {
-+ typedef state_type::__desc_type __desc_type;
-+ const __desc_type* __desc = __state._M_get_in_descriptor();
-+ const size_t __fmultiple = sizeof(extern_type);
-+ size_t __flen = __fmultiple * (__from_end - __from);
-+ const size_t __tmultiple = sizeof(intern_type);
-+ size_t __tlen = __tmultiple * (__to_end - __to);
-+
-+ // Argument list for iconv specifies a byte sequence. Thus,
-+ // all to/from arrays must be brutally casted to char*.
-+ char* __cto = reinterpret_cast<char*>(__to);
-+ char* __cfrom;
-+ size_t __conv;
-+
-+ // Some encodings need a byte order marker as the first item
-+ // in the byte stream, to designate endian-ness. The default
-+ // value for the byte order marker is NULL, so if this is
-+ // the case, it's not necessary and we can just go on our
-+ // merry way.
-+ int __ext_bom = __state._M_get_external_bom();
-+ if (__ext_bom)
-+ {
-+ size_t __size = __from_end - __from;
-+ extern_type* __cfixed = static_cast<extern_type*>(__builtin_alloca(sizeof(extern_type) * (__size + 1)));
-+ __cfixed[0] = static_cast<extern_type>(__ext_bom);
-+ char_traits<extern_type>::copy(__cfixed + 1, __from, __size);
-+ __cfrom = reinterpret_cast<char*>(__cfixed);
-+ __conv = __iconv_adaptor(iconv, *__desc, &__cfrom,
-+ &__flen, &__cto, &__tlen);
-+ }
-+ else
-+ {
-+ extern_type* __cfixed = const_cast<extern_type*>(__from);
-+ __cfrom = reinterpret_cast<char*>(__cfixed);
-+ __conv = __iconv_adaptor(iconv, *__desc, &__cfrom,
-+ &__flen, &__cto, &__tlen);
-+ }
-+
-+
-+ if (__conv != size_t(-1))
-+ {
-+ __from_next = reinterpret_cast<const extern_type*>(__cfrom);
-+ __to_next = reinterpret_cast<intern_type*>(__cto);
-+ __ret = codecvt_base::ok;
-+ }
-+ else
-+ {
-+ if (__flen < static_cast<size_t>(__from_end - __from))
-+ {
-+ __from_next = reinterpret_cast<const extern_type*>(__cfrom);
-+ __to_next = reinterpret_cast<intern_type*>(__cto);
-+ __ret = codecvt_base::partial;
-+ }
-+ else
-+ __ret = codecvt_base::error;
-+ }
-+ }
-+ return __ret;
-+ }
-+
-+ template<typename _InternT, typename _ExternT>
-+ int
-+ codecvt<_InternT, _ExternT, __enc_traits>::
-+ do_encoding() const throw()
-+ {
-+ int __ret = 0;
-+ if (sizeof(_ExternT) <= sizeof(_InternT))
-+ __ret = sizeof(_InternT)/sizeof(_ExternT);
-+ return __ret;
-+ }
-+
-+ template<typename _InternT, typename _ExternT>
-+ bool
-+ codecvt<_InternT, _ExternT, __enc_traits>::
-+ do_always_noconv() const throw()
-+ { return false; }
-+
-+ template<typename _InternT, typename _ExternT>
-+ int
-+ codecvt<_InternT, _ExternT, __enc_traits>::
-+ do_length(const state_type&, const extern_type* __from,
-+ const extern_type* __end, size_t __max) const
-+ { return min(__max, static_cast<size_t>(__end - __from)); }
-+
-+#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
-+// 74. Garbled text for codecvt::do_max_length
-+ template<typename _InternT, typename _ExternT>
-+ int
-+ codecvt<_InternT, _ExternT, __enc_traits>::
-+ do_max_length() const throw()
-+ { return 1; }
-+#endif
-diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/collate_members.cc gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/collate_members.cc
---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/collate_members.cc 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/collate_members.cc 2004-01-09 08:06:24.000000000 -0600
-@@ -0,0 +1,80 @@
-+// std::collate implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library 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 library 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 library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.4.1.2 collate virtual functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#include <locale>
-+#include <bits/c++locale_internal.h>
-+
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __strcoll_l(S1, S2, L) strcoll((S1), (S2))
-+#define __strxfrm_l(S1, S2, N, L) strxfrm((S1), (S2), (N))
-+#define __wcscoll_l(S1, S2, L) wcscoll((S1), (S2))
-+#define __wcsxfrm_l(S1, S2, N, L) wcsxfrm((S1), (S2), (N))
-+#endif
-+
-+namespace std
-+{
-+ // These are basically extensions to char_traits, and perhaps should
-+ // be put there instead of here.
-+ template<>
-+ int
-+ collate<char>::_M_compare(const char* __one, const char* __two) const
-+ {
-+ int __cmp = __strcoll_l(__one, __two, _M_c_locale_collate);
-+ return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
-+ }
-+
-+ template<>
-+ size_t
-+ collate<char>::_M_transform(char* __to, const char* __from,
-+ size_t __n) const
-+ { return __strxfrm_l(__to, __from, __n, _M_c_locale_collate); }
-+
-+#ifdef _GLIBCPP_USE_WCHAR_T
-+ template<>
-+ int
-+ collate<wchar_t>::_M_compare(const wchar_t* __one,
-+ const wchar_t* __two) const
-+ {
-+ int __cmp = __wcscoll_l(__one, __two, _M_c_locale_collate);
-+ return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
-+ }
-+
-+ template<>
-+ size_t
-+ collate<wchar_t>::_M_transform(wchar_t* __to, const wchar_t* __from,
-+ size_t __n) const
-+ { return __wcsxfrm_l(__to, __from, __n, _M_c_locale_collate); }
-+#endif
-+}
-diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/ctype_members.cc gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/ctype_members.cc
---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/ctype_members.cc 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/ctype_members.cc 2004-01-09 08:15:41.000000000 -0600
-@@ -0,0 +1,274 @@
-+// std::ctype implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library 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 library 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 library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.1.1.2 ctype virtual functions.
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#define _LIBC
-+#include <locale>
-+#undef _LIBC
-+#include <bits/c++locale_internal.h>
-+
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __wctype_l(S, L) wctype((S))
-+#define __towupper_l(C, L) towupper((C))
-+#define __towlower_l(C, L) towlower((C))
-+#define __iswctype_l(C, M, L) iswctype((C), (M))
-+#endif
-+
-+namespace std
-+{
-+ // NB: The other ctype<char> specializations are in src/locale.cc and
-+ // various /config/os/* files.
-+ template<>
-+ ctype_byname<char>::ctype_byname(const char* __s, size_t __refs)
-+ : ctype<char>(0, false, __refs)
-+ {
-+ _S_destroy_c_locale(_M_c_locale_ctype);
-+ _S_create_c_locale(_M_c_locale_ctype, __s);
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ _M_toupper = _M_c_locale_ctype->__ctype_toupper;
-+ _M_tolower = _M_c_locale_ctype->__ctype_tolower;
-+ _M_table = _M_c_locale_ctype->__ctype_b;
-+#endif
-+ }
-+
-+#ifdef _GLIBCPP_USE_WCHAR_T
-+ ctype<wchar_t>::__wmask_type
-+ ctype<wchar_t>::_M_convert_to_wmask(const mask __m) const
-+ {
-+ __wmask_type __ret;
-+ switch (__m)
-+ {
-+ case space:
-+ __ret = __wctype_l("space", _M_c_locale_ctype);
-+ break;
-+ case print:
-+ __ret = __wctype_l("print", _M_c_locale_ctype);
-+ break;
-+ case cntrl:
-+ __ret = __wctype_l("cntrl", _M_c_locale_ctype);
-+ break;
-+ case upper:
-+ __ret = __wctype_l("upper", _M_c_locale_ctype);
-+ break;
-+ case lower:
-+ __ret = __wctype_l("lower", _M_c_locale_ctype);
-+ break;
-+ case alpha:
-+ __ret = __wctype_l("alpha", _M_c_locale_ctype);
-+ break;
-+ case digit:
-+ __ret = __wctype_l("digit", _M_c_locale_ctype);
-+ break;
-+ case punct:
-+ __ret = __wctype_l("punct", _M_c_locale_ctype);
-+ break;
-+ case xdigit:
-+ __ret = __wctype_l("xdigit", _M_c_locale_ctype);
-+ break;
-+ case alnum:
-+ __ret = __wctype_l("alnum", _M_c_locale_ctype);
-+ break;
-+ case graph:
-+ __ret = __wctype_l("graph", _M_c_locale_ctype);
-+ break;
-+ default:
-+ __ret = 0;
-+ }
-+ return __ret;
-+ };
-+
-+ wchar_t
-+ ctype<wchar_t>::do_toupper(wchar_t __c) const
-+ { return __towupper_l(__c, _M_c_locale_ctype); }
-+
-+ const wchar_t*
-+ ctype<wchar_t>::do_toupper(wchar_t* __lo, const wchar_t* __hi) const
-+ {
-+ while (__lo < __hi)
-+ {
-+ *__lo = __towupper_l(*__lo, _M_c_locale_ctype);
-+ ++__lo;
-+ }
-+ return __hi;
-+ }
-+
-+ wchar_t
-+ ctype<wchar_t>::do_tolower(wchar_t __c) const
-+ { return __towlower_l(__c, _M_c_locale_ctype); }
-+
-+ const wchar_t*
-+ ctype<wchar_t>::do_tolower(wchar_t* __lo, const wchar_t* __hi) const
-+ {
-+ while (__lo < __hi)
-+ {
-+ *__lo = __towlower_l(*__lo, _M_c_locale_ctype);
-+ ++__lo;
-+ }
-+ return __hi;
-+ }
-+
-+ bool
-+ ctype<wchar_t>::
-+ do_is(mask __m, wchar_t __c) const
-+ {
-+ // Highest bitmask in ctype_base == 10, but extra in "C"
-+ // library for blank.
-+ bool __ret = false;
-+ const size_t __bitmasksize = 11;
-+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
-+ {
-+ const mask __bit = static_cast<mask>(_ISbit(__bitcur));
-+ if (__m & __bit)
-+ __ret |= __iswctype_l(__c, _M_convert_to_wmask(__bit),
-+ _M_c_locale_ctype);
-+ }
-+ return __ret;
-+ }
-+
-+ const wchar_t*
-+ ctype<wchar_t>::
-+ do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const
-+ {
-+ for (;__lo < __hi; ++__vec, ++__lo)
-+ {
-+ // Highest bitmask in ctype_base == 10, but extra in "C"
-+ // library for blank.
-+ const size_t __bitmasksize = 11;
-+ mask __m = 0;
-+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
-+ {
-+ const mask __bit = static_cast<mask>(_ISbit(__bitcur));
-+ if (__iswctype_l(*__lo, _M_convert_to_wmask(__bit),
-+ _M_c_locale_ctype))
-+ __m |= __bit;
-+ }
-+ *__vec = __m;
-+ }
-+ return __hi;
-+ }
-+
-+ const wchar_t*
-+ ctype<wchar_t>::
-+ do_scan_is(mask __m, const wchar_t* __lo, const wchar_t* __hi) const
-+ {
-+ while (__lo < __hi && !this->do_is(__m, *__lo))
-+ ++__lo;
-+ return __lo;
-+ }
-+
-+ const wchar_t*
-+ ctype<wchar_t>::
-+ do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const
-+ {
-+ while (__lo < __hi && this->do_is(__m, *__lo) != 0)
-+ ++__lo;
-+ return __lo;
-+ }
-+
-+ wchar_t
-+ ctype<wchar_t>::
-+ do_widen(char __c) const
-+ {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __c_locale __old = __uselocale(_M_c_locale_ctype);
-+#endif
-+ wchar_t __ret = btowc(__c);
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __uselocale(__old);
-+#endif
-+ return __ret;
-+ }
-+
-+ const char*
-+ ctype<wchar_t>::
-+ do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const
-+ {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __c_locale __old = __uselocale(_M_c_locale_ctype);
-+#endif
-+ mbstate_t __state;
-+ memset(static_cast<void*>(&__state), 0, sizeof(mbstate_t));
-+ mbsrtowcs(__dest, &__lo, __hi - __lo, &__state);
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __uselocale(__old);
-+#endif
-+ return __hi;
-+ }
-+
-+ char
-+ ctype<wchar_t>::
-+ do_narrow(wchar_t __wc, char __dfault) const
-+ {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __c_locale __old = __uselocale(_M_c_locale_ctype);
-+#endif
-+ int __c = wctob(__wc);
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __uselocale(__old);
-+#endif
-+ return (__c == EOF ? __dfault : static_cast<char>(__c));
-+ }
-+
-+ const wchar_t*
-+ ctype<wchar_t>::
-+ do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault,
-+ char* __dest) const
-+ {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __c_locale __old = __uselocale(_M_c_locale_ctype);
-+#endif
-+ size_t __offset = 0;
-+ while (true)
-+ {
-+ const wchar_t* __start = __lo + __offset;
-+ size_t __len = __hi - __start;
-+
-+ mbstate_t __state;
-+ memset(static_cast<void*>(&__state), 0, sizeof(mbstate_t));
-+ size_t __con = wcsrtombs(__dest + __offset, &__start, __len, &__state);
-+ if (__con != __len && __start != 0)
-+ {
-+ __offset = __start - __lo;
-+ __dest[__offset++] = __dfault;
-+ }
-+ else
-+ break;
-+ }
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __uselocale(__old);
-+#endif
-+ return __hi;
-+ }
-+#endif // _GLIBCPP_USE_WCHAR_T
-+}
-diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/messages_members.cc gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/messages_members.cc
---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/messages_members.cc 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/messages_members.cc 2004-01-09 08:46:16.000000000 -0600
-@@ -0,0 +1,100 @@
-+// std::messages implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library 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 library 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 library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.7.1.2 messages virtual functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#include <locale>
-+#include <bits/c++locale_internal.h>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix gettext stuff
-+#endif
-+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
-+extern "C" char *__dcgettext(const char *domainname,
-+ const char *msgid, int category);
-+#undef gettext
-+#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES)
-+#else
-+#undef gettext
-+#define gettext(msgid) (msgid)
-+#endif
-+
-+namespace std
-+{
-+ // Specializations.
-+ template<>
-+ string
-+ messages<char>::do_get(catalog, int, int, const string& __dfault) const
-+ {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __c_locale __old = __uselocale(_M_c_locale_messages);
-+ const char* __msg = const_cast<const char*>(gettext(__dfault.c_str()));
-+ __uselocale(__old);
-+ return string(__msg);
-+#elif defined __UCLIBC_HAS_LOCALE__
-+ char* __old = strdup(setlocale(LC_ALL, NULL));
-+ setlocale(LC_ALL, _M_name_messages);
-+ const char* __msg = gettext(__dfault.c_str());
-+ setlocale(LC_ALL, __old);
-+ free(__old);
-+ return string(__msg);
-+#else
-+ const char* __msg = gettext(__dfault.c_str());
-+ return string(__msg);
-+#endif
-+ }
-+
-+#ifdef _GLIBCPP_USE_WCHAR_T
-+ template<>
-+ wstring
-+ messages<wchar_t>::do_get(catalog, int, int, const wstring& __dfault) const
-+ {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __c_locale __old = __uselocale(_M_c_locale_messages);
-+ char* __msg = gettext(_M_convert_to_char(__dfault));
-+ __uselocale(__old);
-+ return _M_convert_from_char(__msg);
-+#elif defined __UCLIBC_HAS_LOCALE__
-+ char* __old = strdup(setlocale(LC_ALL, NULL));
-+ setlocale(LC_ALL, _M_name_messages);
-+ char* __msg = gettext(_M_convert_to_char(__dfault));
-+ setlocale(LC_ALL, __old);
-+ free(__old);
-+ return _M_convert_from_char(__msg);
-+# else
-+ char* __msg = gettext(_M_convert_to_char(__dfault));
-+ return _M_convert_from_char(__msg);
-+# endif
-+ }
-+#endif
-+}
-diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/messages_members.h gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/messages_members.h
---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/messages_members.h 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/messages_members.h 2004-01-09 08:52:48.000000000 -0600
-@@ -0,0 +1,122 @@
-+// std::messages implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library 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 library 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 library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.7.1.2 messages functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix prototypes for *textdomain funcs
-+#endif
-+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
-+extern "C" char *__textdomain(const char *domainname);
-+extern "C" char *__bindtextdomain(const char *domainname,
-+ const char *dirname);
-+#else
-+#undef __textdomain
-+#undef __bindtextdomain
-+#define __textdomain(D) ((void)0)
-+#define __bindtextdomain(D,P) ((void)0)
-+#endif
-+
-+ // Non-virtual member functions.
-+ template<typename _CharT>
-+ messages<_CharT>::messages(size_t __refs)
-+ : locale::facet(__refs)
-+ {
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+ _M_name_messages = _S_c_name;
-+#endif
-+ _M_c_locale_messages = _S_c_locale;
-+ }
-+
-+ template<typename _CharT>
-+ messages<_CharT>::messages(__c_locale __cloc,
-+ const char* __s, size_t __refs)
-+ : locale::facet(__refs)
-+ {
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+ _M_name_messages = new char[strlen(__s) + 1];
-+ strcpy(_M_name_messages, __s);
-+#endif
-+ _M_c_locale_messages = _S_clone_c_locale(__cloc);
-+ }
-+
-+ template<typename _CharT>
-+ typename messages<_CharT>::catalog
-+ messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc,
-+ const char* __dir) const
-+ {
-+ __bindtextdomain(__s.c_str(), __dir);
-+ return this->do_open(__s, __loc);
-+ }
-+
-+ // Virtual member functions.
-+ template<typename _CharT>
-+ messages<_CharT>::~messages()
-+ {
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+ if (_S_c_name != _M_name_messages)
-+ delete [] _M_name_messages;
-+#endif
-+ _S_destroy_c_locale(_M_c_locale_messages);
-+ }
-+
-+ template<typename _CharT>
-+ typename messages<_CharT>::catalog
-+ messages<_CharT>::do_open(const basic_string<char>& __s,
-+ const locale&) const
-+ {
-+ // No error checking is done, assume the catalog exists and can
-+ // be used.
-+ __textdomain(__s.c_str());
-+ return 0;
-+ }
-+
-+ template<typename _CharT>
-+ void
-+ messages<_CharT>::do_close(catalog) const
-+ { }
-+
-+ // messages_byname
-+ template<typename _CharT>
-+ messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs)
-+ : messages<_CharT>(__refs)
-+ {
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+ if (_S_c_name != _M_name_messages)
-+ delete [] _M_name_messages;
-+ _M_name_messages = new char[strlen(__s) + 1];
-+ strcpy(_M_name_messages, __s);
-+#endif
-+ _S_destroy_c_locale(_M_c_locale_messages);
-+ _S_create_c_locale(_M_c_locale_messages, __s);
-+ }
-diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/monetary_members.cc gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/monetary_members.cc
---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/monetary_members.cc 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2004-01-09 18:20:23.000000000 -0600
-@@ -0,0 +1,578 @@
-+// std::moneypunct implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library 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 library 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 library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.6.3.2 moneypunct virtual functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#define _LIBC
-+#include <locale>
-+#undef _LIBC
-+#include <bits/c++locale_internal.h>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning optimize this for uclibc
-+#warning tailor for stub locale support
-+#endif
-+
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __nl_langinfo_l(N, L) nl_langinfo((N))
-+#endif
-+
-+namespace std
-+{
-+ // Construct and return valid pattern consisting of some combination of:
-+ // space none symbol sign value
-+ money_base::pattern
-+ money_base::_S_construct_pattern(char __precedes, char __space, char __posn)
-+ {
-+ pattern __ret;
-+
-+ // This insanely complicated routine attempts to construct a valid
-+ // pattern for use with monyepunct. A couple of invariants:
-+
-+ // if (__precedes) symbol -> value
-+ // else value -> symbol
-+
-+ // if (__space) space
-+ // else none
-+
-+ // none == never first
-+ // space never first or last
-+
-+ // Any elegant implementations of this are welcome.
-+ switch (__posn)
-+ {
-+ case 0:
-+ case 1:
-+ // 1 The sign precedes the value and symbol.
-+ if (__space)
-+ {
-+ // Pattern starts with sign.
-+ if (__precedes)
-+ {
-+ __ret.field[1] = symbol;
-+ __ret.field[2] = space;
-+ __ret.field[3] = value;
-+ }
-+ else
-+ {
-+ __ret.field[1] = value;
-+ __ret.field[2] = space;
-+ __ret.field[3] = symbol;
-+ }
-+ __ret.field[0] = sign;
-+ }
-+ else
-+ {
-+ // Pattern starts with sign and ends with none.
-+ if (__precedes)
-+ {
-+ __ret.field[1] = symbol;
-+ __ret.field[2] = value;
-+ }
-+ else
-+ {
-+ __ret.field[1] = value;
-+ __ret.field[2] = symbol;
-+ }
-+ __ret.field[0] = sign;
-+ __ret.field[3] = none;
-+ }
-+ break;
-+ case 2:
-+ // 2 The sign follows the value and symbol.
-+ if (__space)
-+ {
-+ // Pattern either ends with sign.
-+ if (__precedes)
-+ {
-+ __ret.field[0] = symbol;
-+ __ret.field[1] = space;
-+ __ret.field[2] = value;
-+ }
-+ else
-+ {
-+ __ret.field[0] = value;
-+ __ret.field[1] = space;
-+ __ret.field[2] = symbol;
-+ }
-+ __ret.field[3] = sign;
-+ }
-+ else
-+ {
-+ // Pattern ends with sign then none.
-+ if (__precedes)
-+ {
-+ __ret.field[0] = symbol;
-+ __ret.field[1] = value;
-+ }
-+ else
-+ {
-+ __ret.field[0] = value;
-+ __ret.field[1] = symbol;
-+ }
-+ __ret.field[2] = sign;
-+ __ret.field[3] = none;
-+ }
-+ break;
-+ case 3:
-+ // 3 The sign immediately precedes the symbol.
-+ if (__space)
-+ {
-+ // Have space.
-+ if (__precedes)
-+ {
-+ __ret.field[0] = sign;
-+ __ret.field[1] = symbol;
-+ __ret.field[2] = space;
-+ __ret.field[3] = value;
-+ }
-+ else
-+ {
-+ __ret.field[0] = value;
-+ __ret.field[1] = space;
-+ __ret.field[2] = sign;
-+ __ret.field[3] = symbol;
-+ }
-+ }
-+ else
-+ {
-+ // Have none.
-+ if (__precedes)
-+ {
-+ __ret.field[0] = sign;
-+ __ret.field[1] = symbol;
-+ __ret.field[2] = value;
-+ }
-+ else
-+ {
-+ __ret.field[0] = value;
-+ __ret.field[1] = sign;
-+ __ret.field[2] = symbol;
-+ }
-+ __ret.field[3] = none;
-+ }
-+ break;
-+ case 4:
-+ // 4 The sign immediately follows the symbol.
-+ if (__space)
-+ {
-+ // Have space.
-+ if (__precedes)
-+ {
-+ __ret.field[0] = symbol;
-+ __ret.field[1] = sign;
-+ __ret.field[2] = space;
-+ __ret.field[3] = value;
-+ }
-+ else
-+ {
-+ __ret.field[0] = value;
-+ __ret.field[1] = space;
-+ __ret.field[2] = symbol;
-+ __ret.field[3] = sign;
-+ }
-+ }
-+ else
-+ {
-+ // Have none.
-+ if (__precedes)
-+ {
-+ __ret.field[0] = symbol;
-+ __ret.field[1] = sign;
-+ __ret.field[2] = value;
-+ }
-+ else
-+ {
-+ __ret.field[0] = value;
-+ __ret.field[1] = symbol;
-+ __ret.field[2] = sign;
-+ }
-+ __ret.field[3] = none;
-+ }
-+ break;
-+ default:
-+ ;
-+ }
-+ return __ret;
-+ }
-+
-+ template<>
-+ void
-+ moneypunct<char, true>::_M_initialize_moneypunct(__c_locale __cloc,
-+ const char*)
-+ {
-+ if (!__cloc)
-+ {
-+ // "C" locale
-+ _M_decimal_point = '.';
-+ _M_thousands_sep = ',';
-+ _M_grouping = "";
-+ _M_curr_symbol = "";
-+ _M_positive_sign = "";
-+ _M_negative_sign = "";
-+ _M_frac_digits = 0;
-+ _M_pos_format = money_base::_S_default_pattern;
-+ _M_neg_format = money_base::_S_default_pattern;
-+ }
-+ else
-+ {
-+ // Named locale.
-+ _M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, __cloc));
-+ _M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, __cloc));
-+ _M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
-+ _M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
-+
-+ char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc));
-+ if (!__nposn)
-+ _M_negative_sign = "()";
-+ else
-+ _M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
-+
-+ // _Intl == true
-+ _M_curr_symbol = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc);
-+ _M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, __cloc));
-+ char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
-+ char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
-+ char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc));
-+ _M_pos_format = _S_construct_pattern(__pprecedes, __pspace, __pposn);
-+ char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc));
-+ char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc));
-+ _M_neg_format = _S_construct_pattern(__nprecedes, __nspace, __nposn);
-+ }
-+ }
-+
-+ template<>
-+ void
-+ moneypunct<char, false>::_M_initialize_moneypunct(__c_locale __cloc,
-+ const char*)
-+ {
-+ if (!__cloc)
-+ {
-+ // "C" locale
-+ _M_decimal_point = '.';
-+ _M_thousands_sep = ',';
-+ _M_grouping = "";
-+ _M_curr_symbol = "";
-+ _M_positive_sign = "";
-+ _M_negative_sign = "";
-+ _M_frac_digits = 0;
-+ _M_pos_format = money_base::_S_default_pattern;
-+ _M_neg_format = money_base::_S_default_pattern;
-+ }
-+ else
-+ {
-+ // Named locale.
-+ _M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, __cloc));
-+ _M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, __cloc));
-+ _M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
-+ _M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
-+
-+ char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc));
-+ if (!__nposn)
-+ _M_negative_sign = "()";
-+ else
-+ _M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
-+
-+ // _Intl == false
-+ _M_curr_symbol = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc);
-+ _M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc));
-+ char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
-+ char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc));
-+ char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc));
-+ _M_pos_format = _S_construct_pattern(__pprecedes, __pspace, __pposn);
-+ char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc));
-+ char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc));
-+ _M_neg_format = _S_construct_pattern(__nprecedes, __nspace, __nposn);
-+ }
-+ }
-+
-+ template<>
-+ moneypunct<char, true>::~moneypunct()
-+ { }
-+
-+ template<>
-+ moneypunct<char, false>::~moneypunct()
-+ { }
-+
-+#ifdef _GLIBCPP_USE_WCHAR_T
-+ template<>
-+ void
-+ moneypunct<wchar_t, true>::_M_initialize_moneypunct(__c_locale __cloc,
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ const char*)
-+#else
-+ const char* __name)
-+#endif
-+ {
-+ if (!__cloc)
-+ {
-+ // "C" locale
-+ _M_decimal_point = L'.';
-+ _M_thousands_sep = L',';
-+ _M_grouping = "";
-+ _M_curr_symbol = L"";
-+ _M_positive_sign = L"";
-+ _M_negative_sign = L"";
-+ _M_frac_digits = 0;
-+ _M_pos_format = money_base::_S_default_pattern;
-+ _M_neg_format = money_base::_S_default_pattern;
-+ }
-+ else
-+ {
-+ // Named locale.
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __c_locale __old = __uselocale(__cloc);
-+#else
-+ // Switch to named locale so that mbsrtowcs will work.
-+ char* __old = strdup(setlocale(LC_ALL, NULL));
-+ setlocale(LC_ALL, __name);
-+#endif
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix this
-+#endif
-+#ifdef __UCLIBC__
-+# ifdef __UCLIBC_HAS_XLOCALE__
-+ _M_decimal_point = __cloc->decimal_point_wc;
-+ _M_thousands_sep = __cloc->thousands_sep_wc;
-+# else
-+ _M_decimal_point = __global_locale->decimal_point_wc;
-+ _M_thousands_sep = __global_locale->thousands_sep_wc;
-+# endif
-+#else
-+ _M_decimal_point = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)}).__w);
-+
-+ _M_thousands_sep = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc)}).__w);
-+#endif
-+ _M_grouping = __nl_langinfo_l(GROUPING, __cloc);
-+
-+ const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
-+ const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
-+ const char* __ccurr = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc);
-+
-+ mbstate_t __state;
-+ size_t __len = strlen(__cpossign);
-+ if (__len)
-+ {
-+ ++__len;
-+ memset(&__state, 0, sizeof(mbstate_t));
-+ wchar_t* __wcs = new wchar_t[__len];
-+ mbsrtowcs(__wcs, &__cpossign, __len, &__state);
-+ _M_positive_sign = __wcs;
-+ }
-+ else
-+ _M_positive_sign = L"";
-+
-+ char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc));
-+ __len = strlen(__cnegsign);
-+ if (!__nposn)
-+ _M_negative_sign = L"()";
-+ else if (__len)
-+ {
-+ ++__len;
-+ memset(&__state, 0, sizeof(mbstate_t));
-+ wchar_t* __wcs = new wchar_t[__len];
-+ mbsrtowcs(__wcs, &__cnegsign, __len, &__state);
-+ _M_negative_sign = __wcs;
-+ }
-+ else
-+ _M_negative_sign = L"";
-+
-+ // _Intl == true.
-+ __len = strlen(__ccurr);
-+ if (__len)
-+ {
-+ ++__len;
-+ memset(&__state, 0, sizeof(mbstate_t));
-+ wchar_t* __wcs = new wchar_t[__len];
-+ mbsrtowcs(__wcs, &__ccurr, __len, &__state);
-+ _M_curr_symbol = __wcs;
-+ }
-+ else
-+ _M_curr_symbol = L"";
-+
-+ _M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, __cloc));
-+ char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
-+ char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
-+ char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc));
-+ _M_pos_format = _S_construct_pattern(__pprecedes, __pspace, __pposn);
-+ char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc));
-+ char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc));
-+ _M_neg_format = _S_construct_pattern(__nprecedes, __nspace, __nposn);
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __uselocale(__old);
-+#else
-+ setlocale(LC_ALL, __old);
-+ free(__old);
-+#endif
-+ }
-+ }
-+
-+ template<>
-+ void
-+ moneypunct<wchar_t, false>::_M_initialize_moneypunct(__c_locale __cloc,
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ const char*)
-+#else
-+ const char* __name)
-+#endif
-+ {
-+ if (!__cloc)
-+ {
-+ // "C" locale
-+ _M_decimal_point = L'.';
-+ _M_thousands_sep = L',';
-+ _M_grouping = "";
-+ _M_curr_symbol = L"";
-+ _M_positive_sign = L"";
-+ _M_negative_sign = L"";
-+ _M_frac_digits = 0;
-+ _M_pos_format = money_base::_S_default_pattern;
-+ _M_neg_format = money_base::_S_default_pattern;
-+ }
-+ else
-+ {
-+ // Named locale.
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __c_locale __old = __uselocale(__cloc);
-+#else
-+ // Switch to named locale so that mbsrtowcs will work.
-+ char* __old = strdup(setlocale(LC_ALL, NULL));
-+ setlocale(LC_ALL, __name);
-+#endif
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix this
-+#endif
-+#ifdef __UCLIBC__
-+# ifdef __UCLIBC_HAS_XLOCALE__
-+ _M_decimal_point = __cloc->decimal_point_wc;
-+ _M_thousands_sep = __cloc->thousands_sep_wc;
-+# else
-+ _M_decimal_point = __global_locale->decimal_point_wc;
-+ _M_thousands_sep = __global_locale->thousands_sep_wc;
-+# endif
-+#else
-+ _M_decimal_point = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)}).__w);
-+ _M_thousands_sep = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc)}).__w);
-+#endif
-+ _M_grouping = __nl_langinfo_l(GROUPING, __cloc);
-+
-+ const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
-+ const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
-+ const char* __ccurr = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc);
-+
-+ mbstate_t __state;
-+ size_t __len;
-+ __len = strlen(__cpossign);
-+ if (__len)
-+ {
-+ ++__len;
-+ memset(&__state, 0, sizeof(mbstate_t));
-+ wchar_t* __wcs = new wchar_t[__len];
-+ mbsrtowcs(__wcs, &__cpossign, __len, &__state);
-+ _M_positive_sign = __wcs;
-+ }
-+ else
-+ _M_positive_sign = L"";
-+
-+ char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc));
-+ __len = strlen(__cnegsign);
-+ if (!__nposn)
-+ _M_negative_sign = L"()";
-+ else if (__len)
-+ {
-+ ++__len;
-+ memset(&__state, 0, sizeof(mbstate_t));
-+ wchar_t* __wcs = new wchar_t[__len];
-+ mbsrtowcs(__wcs, &__cnegsign, __len, &__state);
-+ _M_negative_sign = __wcs;
-+ }
-+ else
-+ _M_negative_sign = L"";
-+
-+ // _Intl == true.
-+ __len = strlen(__ccurr);
-+ if (__len)
-+ {
-+ ++__len;
-+ memset(&__state, 0, sizeof(mbstate_t));
-+ wchar_t* __wcs = new wchar_t[__len];
-+ mbsrtowcs(__wcs, &__ccurr, __len, &__state);
-+ _M_curr_symbol = __wcs;
-+ }
-+ else
-+ _M_curr_symbol = L"";
-+
-+ _M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc));
-+ char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
-+ char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc));
-+ char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc));
-+ _M_pos_format = _S_construct_pattern(__pprecedes, __pspace, __pposn);
-+ char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc));
-+ char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc));
-+ _M_neg_format = _S_construct_pattern(__nprecedes, __nspace, __nposn);
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __uselocale(__old);
-+#else
-+ setlocale(LC_ALL, __old);
-+ free(__old);
-+#endif
-+ }
-+ }
-+
-+ template<>
-+ moneypunct<wchar_t, true>::~moneypunct()
-+ {
-+ if (wcslen(_M_positive_sign))
-+ delete [] _M_positive_sign;
-+ if (wcslen(_M_negative_sign) && (wcscmp(_M_negative_sign, L"()") != 0))
-+ delete [] _M_negative_sign;
-+ if (wcslen(_M_curr_symbol))
-+ delete [] _M_curr_symbol;
-+ }
-+
-+ template<>
-+ moneypunct<wchar_t, false>::~moneypunct()
-+ {
-+ if (wcslen(_M_positive_sign))
-+ delete [] _M_positive_sign;
-+ if (wcslen(_M_negative_sign) && (wcscmp(_M_negative_sign, L"()") != 0))
-+ delete [] _M_negative_sign;
-+ if (wcslen(_M_curr_symbol))
-+ delete [] _M_curr_symbol;
-+ }
-+#endif
-+}
-diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/numeric_members.cc gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/numeric_members.cc
---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/numeric_members.cc 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2004-01-09 18:20:59.000000000 -0600
-@@ -0,0 +1,129 @@
-+// std::numpunct implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library 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 library 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 library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.3.1.2 numpunct virtual functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#define _LIBC
-+#include <locale>
-+#undef _LIBC
-+#include <bits/c++locale_internal.h>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning tailor for stub locale support
-+#endif
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __nl_langinfo_l(N, L) nl_langinfo((N))
-+#endif
-+
-+namespace std
-+{
-+ template<>
-+ void
-+ numpunct<char>::_M_initialize_numpunct(__c_locale __cloc)
-+ {
-+ if (!__cloc)
-+ {
-+ // "C" locale
-+ _M_decimal_point = '.';
-+ _M_thousands_sep = ',';
-+ _M_grouping = "";
-+ }
-+ else
-+ {
-+ // Named locale.
-+ _M_decimal_point = *(__nl_langinfo_l(RADIXCHAR, __cloc));
-+ _M_thousands_sep = *(__nl_langinfo_l(THOUSEP, __cloc));
-+ // Check for NUL, which implies no grouping.
-+ if (_M_thousands_sep == '\0')
-+ _M_grouping = "";
-+ else
-+ _M_grouping = __nl_langinfo_l(GROUPING, __cloc);
-+ }
-+ // NB: There is no way to extact this info from posix locales.
-+ // _M_truename = __nl_langinfo_l(YESSTR, __cloc);
-+ _M_truename = "true";
-+ // _M_falsename = __nl_langinfo_l(NOSTR, __cloc);
-+ _M_falsename = "false";
-+ }
-+
-+ template<>
-+ numpunct<char>::~numpunct()
-+ { }
-+
-+#ifdef _GLIBCPP_USE_WCHAR_T
-+ template<>
-+ void
-+ numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc)
-+ {
-+ if (!__cloc)
-+ {
-+ // "C" locale
-+ _M_decimal_point = L'.';
-+ _M_thousands_sep = L',';
-+ _M_grouping = "";
-+ }
-+ else
-+ {
-+ // Named locale.
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix this
-+#endif
-+#ifdef __UCLIBC__
-+# ifdef __UCLIBC_HAS_XLOCALE__
-+ _M_decimal_point = __cloc->decimal_point_wc;
-+ _M_thousands_sep = __cloc->thousands_sep_wc;
-+# else
-+ _M_decimal_point = __global_locale->decimal_point_wc;
-+ _M_thousands_sep = __global_locale->thousands_sep_wc;
-+# endif
-+#else
-+ _M_decimal_point = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)}).__w);
-+ _M_thousands_sep = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc)}).__w);
-+#endif
-+ if (_M_thousands_sep == L'\0')
-+ _M_grouping = "";
-+ else
-+ _M_grouping = __nl_langinfo_l(GROUPING, __cloc);
-+ }
-+ // NB: There is no way to extact this info from posix locales.
-+ // _M_truename = __nl_langinfo_l(YESSTR, __cloc);
-+ _M_truename = L"true";
-+ // _M_falsename = __nl_langinfo_l(NOSTR, __cloc);
-+ _M_falsename = L"false";
-+ }
-+
-+ template<>
-+ numpunct<wchar_t>::~numpunct()
-+ { }
-+ #endif
-+}
-diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/time_members.cc gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/time_members.cc
---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/time_members.cc 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/time_members.cc 2004-01-09 08:25:03.000000000 -0600
-@@ -0,0 +1,341 @@
-+// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library 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 library 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 library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.5.1.2 - time_get virtual functions
-+// ISO C++ 14882: 22.2.5.3.2 - time_put virtual functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#include <locale>
-+#include <bits/c++locale_internal.h>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning tailor for stub locale support
-+#endif
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __nl_langinfo_l(N, L) nl_langinfo((N))
-+#endif
-+
-+namespace std
-+{
-+ template<>
-+ void
-+ __timepunct<char>::
-+ _M_put(char* __s, size_t __maxlen, const char* __format,
-+ const tm* __tm) const
-+ {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __strftime_l(__s, __maxlen, __format, __tm, _M_c_locale_timepunct);
-+#else
-+ char* __old = strdup(setlocale(LC_ALL, NULL));
-+ setlocale(LC_ALL, _M_name_timepunct);
-+ strftime(__s, __maxlen, __format, __tm);
-+ setlocale(LC_ALL, __old);
-+ free(__old);
-+#endif
-+ }
-+
-+ template<>
-+ void
-+ __timepunct<char>::_M_initialize_timepunct(__c_locale __cloc)
-+ {
-+ if (!__cloc)
-+ {
-+ // "C" locale
-+ _M_c_locale_timepunct = _S_c_locale;
-+
-+ _M_date_format = "%m/%d/%y";
-+ _M_date_era_format = "%m/%d/%y";
-+ _M_time_format = "%H:%M:%S";
-+ _M_time_era_format = "%H:%M:%S";
-+ _M_date_time_format = "";
-+ _M_date_time_era_format = "";
-+ _M_am = "AM";
-+ _M_pm = "PM";
-+ _M_am_pm_format = "";
-+
-+ // Day names, starting with "C"'s Sunday.
-+ _M_day1 = "Sunday";
-+ _M_day2 = "Monday";
-+ _M_day3 = "Tuesday";
-+ _M_day4 = "Wednesday";
-+ _M_day5 = "Thursday";
-+ _M_day6 = "Friday";
-+ _M_day7 = "Saturday";
-+
-+ // Abbreviated day names, starting with "C"'s Sun.
-+ _M_day_a1 = "Sun";
-+ _M_day_a2 = "Mon";
-+ _M_day_a3 = "Tue";
-+ _M_day_a4 = "Wed";
-+ _M_day_a5 = "Thu";
-+ _M_day_a6 = "Fri";
-+ _M_day_a7 = "Sat";
-+
-+ // Month names, starting with "C"'s January.
-+ _M_month01 = "January";
-+ _M_month02 = "February";
-+ _M_month03 = "March";
-+ _M_month04 = "April";
-+ _M_month05 = "May";
-+ _M_month06 = "June";
-+ _M_month07 = "July";
-+ _M_month08 = "August";
-+ _M_month09 = "September";
-+ _M_month10 = "October";
-+ _M_month11 = "November";
-+ _M_month12 = "December";
-+
-+ // Abbreviated month names, starting with "C"'s Jan.
-+ _M_month_a01 = "Jan";
-+ _M_month_a02 = "Feb";
-+ _M_month_a03 = "Mar";
-+ _M_month_a04 = "Apr";
-+ _M_month_a05 = "May";
-+ _M_month_a06 = "Jun";
-+ _M_month_a07 = "July";
-+ _M_month_a08 = "Aug";
-+ _M_month_a09 = "Sep";
-+ _M_month_a10 = "Oct";
-+ _M_month_a11 = "Nov";
-+ _M_month_a12 = "Dec";
-+ }
-+ else
-+ {
-+ _M_c_locale_timepunct = _S_clone_c_locale(__cloc);
-+
-+ _M_date_format = __nl_langinfo_l(D_FMT, __cloc);
-+ _M_date_era_format = __nl_langinfo_l(ERA_D_FMT, __cloc);
-+ _M_time_format = __nl_langinfo_l(T_FMT, __cloc);
-+ _M_time_era_format = __nl_langinfo_l(ERA_T_FMT, __cloc);
-+ _M_date_time_format = __nl_langinfo_l(D_T_FMT, __cloc);
-+ _M_date_time_era_format = __nl_langinfo_l(ERA_D_T_FMT, __cloc);
-+ _M_am = __nl_langinfo_l(AM_STR, __cloc);
-+ _M_pm = __nl_langinfo_l(PM_STR, __cloc);
-+ _M_am_pm_format = __nl_langinfo_l(T_FMT_AMPM, __cloc);
-+
-+ // Day names, starting with "C"'s Sunday.
-+ _M_day1 = __nl_langinfo_l(DAY_1, __cloc);
-+ _M_day2 = __nl_langinfo_l(DAY_2, __cloc);
-+ _M_day3 = __nl_langinfo_l(DAY_3, __cloc);
-+ _M_day4 = __nl_langinfo_l(DAY_4, __cloc);
-+ _M_day5 = __nl_langinfo_l(DAY_5, __cloc);
-+ _M_day6 = __nl_langinfo_l(DAY_6, __cloc);
-+ _M_day7 = __nl_langinfo_l(DAY_7, __cloc);
-+
-+ // Abbreviated day names, starting with "C"'s Sun.
-+ _M_day_a1 = __nl_langinfo_l(ABDAY_1, __cloc);
-+ _M_day_a2 = __nl_langinfo_l(ABDAY_2, __cloc);
-+ _M_day_a3 = __nl_langinfo_l(ABDAY_3, __cloc);
-+ _M_day_a4 = __nl_langinfo_l(ABDAY_4, __cloc);
-+ _M_day_a5 = __nl_langinfo_l(ABDAY_5, __cloc);
-+ _M_day_a6 = __nl_langinfo_l(ABDAY_6, __cloc);
-+ _M_day_a7 = __nl_langinfo_l(ABDAY_7, __cloc);
-+
-+ // Month names, starting with "C"'s January.
-+ _M_month01 = __nl_langinfo_l(MON_1, __cloc);
-+ _M_month02 = __nl_langinfo_l(MON_2, __cloc);
-+ _M_month03 = __nl_langinfo_l(MON_3, __cloc);
-+ _M_month04 = __nl_langinfo_l(MON_4, __cloc);
-+ _M_month05 = __nl_langinfo_l(MON_5, __cloc);
-+ _M_month06 = __nl_langinfo_l(MON_6, __cloc);
-+ _M_month07 = __nl_langinfo_l(MON_7, __cloc);
-+ _M_month08 = __nl_langinfo_l(MON_8, __cloc);
-+ _M_month09 = __nl_langinfo_l(MON_9, __cloc);
-+ _M_month10 = __nl_langinfo_l(MON_10, __cloc);
-+ _M_month11 = __nl_langinfo_l(MON_11, __cloc);
-+ _M_month12 = __nl_langinfo_l(MON_12, __cloc);
-+
-+ // Abbreviated month names, starting with "C"'s Jan.
-+ _M_month_a01 = __nl_langinfo_l(ABMON_1, __cloc);
-+ _M_month_a02 = __nl_langinfo_l(ABMON_2, __cloc);
-+ _M_month_a03 = __nl_langinfo_l(ABMON_3, __cloc);
-+ _M_month_a04 = __nl_langinfo_l(ABMON_4, __cloc);
-+ _M_month_a05 = __nl_langinfo_l(ABMON_5, __cloc);
-+ _M_month_a06 = __nl_langinfo_l(ABMON_6, __cloc);
-+ _M_month_a07 = __nl_langinfo_l(ABMON_7, __cloc);
-+ _M_month_a08 = __nl_langinfo_l(ABMON_8, __cloc);
-+ _M_month_a09 = __nl_langinfo_l(ABMON_9, __cloc);
-+ _M_month_a10 = __nl_langinfo_l(ABMON_10, __cloc);
-+ _M_month_a11 = __nl_langinfo_l(ABMON_11, __cloc);
-+ _M_month_a12 = __nl_langinfo_l(ABMON_12, __cloc);
-+ }
-+ }
-+
-+#ifdef _GLIBCPP_USE_WCHAR_T
-+ template<>
-+ void
-+ __timepunct<wchar_t>::
-+ _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format,
-+ const tm* __tm) const
-+ {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __wcsftime_l(__s, __maxlen, __format, __tm, _M_c_locale_timepunct);
-+#else
-+ char* __old = strdup(setlocale(LC_ALL, NULL));
-+ setlocale(LC_ALL, _M_name_timepunct);
-+ wcsftime(__s, __maxlen, __format, __tm);
-+ setlocale(LC_ALL, __old);
-+ free(__old);
-+#endif
-+ }
-+
-+ template<>
-+ void
-+ __timepunct<wchar_t>::_M_initialize_timepunct(__c_locale __cloc)
-+ {
-+#warning wide time stuff
-+// if (!__cloc)
-+ {
-+ // "C" locale
-+ _M_c_locale_timepunct = _S_c_locale;
-+
-+ _M_date_format = L"%m/%d/%y";
-+ _M_date_era_format = L"%m/%d/%y";
-+ _M_time_format = L"%H:%M:%S";
-+ _M_time_era_format = L"%H:%M:%S";
-+ _M_date_time_format = L"";
-+ _M_date_time_era_format = L"";
-+ _M_am = L"AM";
-+ _M_pm = L"PM";
-+ _M_am_pm_format = L"";
-+
-+ // Day names, starting with "C"'s Sunday.
-+ _M_day1 = L"Sunday";
-+ _M_day2 = L"Monday";
-+ _M_day3 = L"Tuesday";
-+ _M_day4 = L"Wednesday";
-+ _M_day5 = L"Thursday";
-+ _M_day6 = L"Friday";
-+ _M_day7 = L"Saturday";
-+
-+ // Abbreviated day names, starting with "C"'s Sun.
-+ _M_day_a1 = L"Sun";
-+ _M_day_a2 = L"Mon";
-+ _M_day_a3 = L"Tue";
-+ _M_day_a4 = L"Wed";
-+ _M_day_a5 = L"Thu";
-+ _M_day_a6 = L"Fri";
-+ _M_day_a7 = L"Sat";
-+
-+ // Month names, starting with "C"'s January.
-+ _M_month01 = L"January";
-+ _M_month02 = L"February";
-+ _M_month03 = L"March";
-+ _M_month04 = L"April";
-+ _M_month05 = L"May";
-+ _M_month06 = L"June";
-+ _M_month07 = L"July";
-+ _M_month08 = L"August";
-+ _M_month09 = L"September";
-+ _M_month10 = L"October";
-+ _M_month11 = L"November";
-+ _M_month12 = L"December";
-+
-+ // Abbreviated month names, starting with "C"'s Jan.
-+ _M_month_a01 = L"Jan";
-+ _M_month_a02 = L"Feb";
-+ _M_month_a03 = L"Mar";
-+ _M_month_a04 = L"Apr";
-+ _M_month_a05 = L"May";
-+ _M_month_a06 = L"Jun";
-+ _M_month_a07 = L"July";
-+ _M_month_a08 = L"Aug";
-+ _M_month_a09 = L"Sep";
-+ _M_month_a10 = L"Oct";
-+ _M_month_a11 = L"Nov";
-+ _M_month_a12 = L"Dec";
-+ }
-+#if 0
-+ else
-+ {
-+ _M_c_locale_timepunct = _S_clone_c_locale(__cloc);
-+
-+ _M_date_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WD_FMT, __cloc));
-+ _M_date_era_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WERA_D_FMT, __cloc));
-+ _M_time_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WT_FMT, __cloc));
-+ _M_time_era_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WERA_T_FMT, __cloc));
-+ _M_date_time_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WD_T_FMT, __cloc));
-+ _M_date_time_era_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WERA_D_T_FMT, __cloc));
-+ _M_am = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WAM_STR, __cloc));
-+ _M_pm = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WPM_STR, __cloc));
-+ _M_am_pm_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WT_FMT_AMPM, __cloc));
-+
-+ // Day names, starting with "C"'s Sunday.
-+ _M_day1 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_1, __cloc));
-+ _M_day2 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_2, __cloc));
-+ _M_day3 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_3, __cloc));
-+ _M_day4 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_4, __cloc));
-+ _M_day5 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_5, __cloc));
-+ _M_day6 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_6, __cloc));
-+ _M_day7 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_7, __cloc));
-+
-+ // Abbreviated day names, starting with "C"'s Sun.
-+ _M_day_a1 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_1, __cloc));
-+ _M_day_a2 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_2, __cloc));
-+ _M_day_a3 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_3, __cloc));
-+ _M_day_a4 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_4, __cloc));
-+ _M_day_a5 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_5, __cloc));
-+ _M_day_a6 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_6, __cloc));
-+ _M_day_a7 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_7, __cloc));
-+
-+ // Month names, starting with "C"'s January.
-+ _M_month01 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_1, __cloc));
-+ _M_month02 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_2, __cloc));
-+ _M_month03 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_3, __cloc));
-+ _M_month04 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_4, __cloc));
-+ _M_month05 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_5, __cloc));
-+ _M_month06 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_6, __cloc));
-+ _M_month07 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_7, __cloc));
-+ _M_month08 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_8, __cloc));
-+ _M_month09 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_9, __cloc));
-+ _M_month10 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_10, __cloc));
-+ _M_month11 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_11, __cloc));
-+ _M_month12 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_12, __cloc));
-+
-+ // Abbreviated month names, starting with "C"'s Jan.
-+ _M_month_a01 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_1, __cloc));
-+ _M_month_a02 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_2, __cloc));
-+ _M_month_a03 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_3, __cloc));
-+ _M_month_a04 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_4, __cloc));
-+ _M_month_a05 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_5, __cloc));
-+ _M_month_a06 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_6, __cloc));
-+ _M_month_a07 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_7, __cloc));
-+ _M_month_a08 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_8, __cloc));
-+ _M_month_a09 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_9, __cloc));
-+ _M_month_a10 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_10, __cloc));
-+ _M_month_a11 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_11, __cloc));
-+ _M_month_a12 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_12, __cloc));
-+ }
-+#endif // 0
-+ }
-+#endif
-+}
-diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/time_members.h gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/time_members.h
---- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/time_members.h 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/time_members.h 2004-01-09 04:26:21.000000000 -0600
-@@ -0,0 +1,68 @@
-+// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library 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 library 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 library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.5.1.2 - time_get functions
-+// ISO C++ 14882: 22.2.5.3.2 - time_put functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+ template<typename _CharT>
-+ __timepunct<_CharT>::__timepunct(size_t __refs)
-+ : locale::facet(__refs)
-+ {
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+ _M_name_timepunct = _S_c_name;
-+#endif
-+ _M_initialize_timepunct();
-+ }
-+
-+ template<typename _CharT>
-+ __timepunct<_CharT>::__timepunct(__c_locale __cloc,
-+ const char* __s,
-+ size_t __refs)
-+ : locale::facet(__refs)
-+ {
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+ _M_name_timepunct = new char[strlen(__s) + 1];
-+ strcpy(_M_name_timepunct, __s);
-+#endif
-+ _M_initialize_timepunct(__cloc);
-+ }
-+
-+ template<typename _CharT>
-+ __timepunct<_CharT>::~__timepunct()
-+ {
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+ if (_S_c_name != _M_name_timepunct)
-+ delete [] _M_name_timepunct;
-+#endif
-+ _S_destroy_c_locale(_M_c_locale_timepunct);
-+ }
-diff -urN gcc-3.3.2/libstdc++-v3/config/os/uclibc/ctype_base.h gcc-3.3.2-uClibc/libstdc++-v3/config/os/uclibc/ctype_base.h
---- gcc-3.3.2/libstdc++-v3/config/os/uclibc/ctype_base.h 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-3.3.2-uClibc/libstdc++-v3/config/os/uclibc/ctype_base.h 2004-01-09 02:54:54.000000000 -0600
-@@ -0,0 +1,57 @@
-+// Locale support -*- C++ -*-
-+
-+// Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library 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 library 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 library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.1 Locales
-+//
-+
-+// Information as gleaned from /usr/include/ctype.h
-+
-+ struct ctype_base
-+ {
-+ // Note: In uClibc, the following two types depend on configuration.
-+
-+ // Non-standard typedefs.
-+ typedef const __ctype_touplow_t* __to_type;
-+ // NB: Offsets into ctype<char>::_M_table force a particular size
-+ // on the mask type. Because of this, we don't use an enum.
-+ typedef __ctype_mask_t mask;
-+
-+ static const mask upper = _ISupper;
-+ static const mask lower = _ISlower;
-+ static const mask alpha = _ISalpha;
-+ static const mask digit = _ISdigit;
-+ static const mask xdigit = _ISxdigit;
-+ static const mask space = _ISspace;
-+ static const mask print = _ISprint;
-+ static const mask graph = _ISgraph;
-+ static const mask cntrl = _IScntrl;
-+ static const mask punct = _ISpunct;
-+ static const mask alnum = _ISalnum;
-+ };
-diff -urN gcc-3.3.2/libstdc++-v3/config/os/uclibc/ctype_inline.h gcc-3.3.2-uClibc/libstdc++-v3/config/os/uclibc/ctype_inline.h
---- gcc-3.3.2/libstdc++-v3/config/os/uclibc/ctype_inline.h 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-3.3.2-uClibc/libstdc++-v3/config/os/uclibc/ctype_inline.h 2002-06-24 00:49:19.000000000 -0500
-@@ -0,0 +1,69 @@
-+// Locale support -*- C++ -*-
-+
-+// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library 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 library 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 library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.1 Locales
-+//
-+
-+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
-+// functions go in ctype.cc
-+
-+ bool
-+ ctype<char>::
-+ is(mask __m, char __c) const
-+ { return _M_table[static_cast<unsigned char>(__c)] & __m; }
-+
-+ const char*
-+ ctype<char>::
-+ is(const char* __low, const char* __high, mask* __vec) const
-+ {
-+ while (__low < __high)
-+ *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
-+ return __high;
-+ }
-+
-+ const char*
-+ ctype<char>::
-+ scan_is(mask __m, const char* __low, const char* __high) const
-+ {
-+ while (__low < __high
-+ && !(_M_table[static_cast<unsigned char>(*__low)] & __m))
-+ ++__low;
-+ return __low;
-+ }
-+
-+ const char*
-+ ctype<char>::
-+ scan_not(mask __m, const char* __low, const char* __high) const
-+ {
-+ while (__low < __high
-+ && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
-+ ++__low;
-+ return __low;
-+ }
-diff -urN gcc-3.3.2/libstdc++-v3/config/os/uclibc/ctype_noninline.h gcc-3.3.2-uClibc/libstdc++-v3/config/os/uclibc/ctype_noninline.h
---- gcc-3.3.2/libstdc++-v3/config/os/uclibc/ctype_noninline.h 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-3.3.2-uClibc/libstdc++-v3/config/os/uclibc/ctype_noninline.h 2004-01-09 03:34:53.000000000 -0600
-@@ -0,0 +1,90 @@
-+// Locale support -*- C++ -*-
-+
-+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
-+// Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library 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 library 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 library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.1 Locales
-+//
-+
-+// Information as gleaned from /usr/include/ctype.h
-+
-+ const ctype_base::mask*
-+ ctype<char>::classic_table() throw()
-+ {
-+ return __C_ctype_b;
-+ }
-+
-+ ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
-+ size_t __refs)
-+ : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del)
-+ {
-+ _M_toupper = __C_ctype_toupper;
-+ _M_tolower = __C_ctype_tolower;
-+ _M_table = __table ? __table : __C_ctype_b;
-+ _M_c_locale_ctype = _S_c_locale;
-+ }
-+
-+ ctype<char>::ctype(const mask* __table, bool __del, size_t __refs) :
-+ __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del)
-+ {
-+ _M_toupper = __C_ctype_toupper;
-+ _M_tolower = __C_ctype_tolower;
-+ _M_table = __table ? __table : __C_ctype_b;
-+ _M_c_locale_ctype = _S_c_locale;
-+ }
-+
-+ char
-+ ctype<char>::do_toupper(char __c) const
-+ { return _M_toupper[static_cast<unsigned char>(__c)]; }
-+
-+ const char*
-+ ctype<char>::do_toupper(char* __low, const char* __high) const
-+ {
-+ while (__low < __high)
-+ {
-+ *__low = _M_toupper[static_cast<unsigned char>(*__low)];
-+ ++__low;
-+ }
-+ return __high;
-+ }
-+
-+ char
-+ ctype<char>::do_tolower(char __c) const
-+ { return _M_tolower[static_cast<unsigned char>(__c)]; }
-+
-+ const char*
-+ ctype<char>::do_tolower(char* __low, const char* __high) const
-+ {
-+ while (__low < __high)
-+ {
-+ *__low = _M_tolower[static_cast<unsigned char>(*__low)];
-+ ++__low;
-+ }
-+ return __high;
-+ }
-diff -urN gcc-3.3.2/libstdc++-v3/config/os/uclibc/os_defines.h gcc-3.3.2-uClibc/libstdc++-v3/config/os/uclibc/os_defines.h
---- gcc-3.3.2/libstdc++-v3/config/os/uclibc/os_defines.h 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-3.3.2-uClibc/libstdc++-v3/config/os/uclibc/os_defines.h 2004-01-09 04:56:13.000000000 -0600
-@@ -0,0 +1,56 @@
-+// Specific definitions for GNU/Linux -*- C++ -*-
-+
-+// Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library 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 library 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 library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+#ifndef _GLIBCPP_OS_DEFINES
-+#define _GLIBCPP_OS_DEFINES 1
-+
-+// System-specific #define, typedefs, corrections, etc, go here. This
-+// file will come before all others.
-+
-+// This keeps isanum, et al from being propagated as macros.
-+#define __NO_CTYPE 1
-+
-+#include <features.h>
-+
-+// These systems have declarations mismatching those in libio.h by
-+// omitting throw qualifiers. Cleanest way out is to not provide
-+// throw-qualifiers at all. Defining it as empty here will make libio.h
-+// not define it.
-+#undef __THROW
-+#define __THROW
-+
-+// Tell Glibc not to try to provide its own inline versions of
-+// some math functions. Those cause assembly-time clashes with
-+// our definitions.
-+#define __NO_MATH_INLINES
-+
-+// We must not see the optimized string functions GNU libc defines.
-+#define __NO_STRING_INLINES
-+
-+#endif
diff --git a/packages/gcc/gcc-3.3.3/gcc34-15089.patch b/packages/gcc/gcc-3.3.3/gcc34-15089.patch
deleted file mode 100644
index 3b7a056e63..0000000000
--- a/packages/gcc/gcc-3.3.3/gcc34-15089.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-2004-04-29 Philip Blundell <philb@gnu.org>
-
- * loop.c (scan_loop): Don't delete SET of a hard register.
-
-Index: loop.c
-===================================================================
-RCS file: /cvs/gcc/gcc/gcc/loop.c,v
-retrieving revision 1.488.2.3
-diff -u -r1.488.2.3 loop.c
---- gcc/gcc/loop.c 14 Feb 2004 14:46:03 -0000 1.488.2.3
-+++ gcc/gcc/loop.c 28 Apr 2004 22:02:53 -0000
-@@ -929,6 +929,7 @@
- || (! (GET_CODE (SET_SRC (set)) == REG
- && (REGNO (SET_SRC (set))
- < FIRST_PSEUDO_REGISTER))))
-+ && regno >= FIRST_PSEUDO_REGISTER
- /* This test is not redundant; SET_SRC (set) might be
- a call-clobbered register and the life of REGNO
- might span a call. */
diff --git a/packages/gcc/gcc-3.3.3/libibery-crosstool.patch b/packages/gcc/gcc-3.3.3/libibery-crosstool.patch
deleted file mode 100644
index 2898cf18ff..0000000000
--- a/packages/gcc/gcc-3.3.3/libibery-crosstool.patch
+++ /dev/null
@@ -1,683 +0,0 @@
-diff -urN gcc-3.3.3.orig/libiberty/configure gcc-3.3.3/libiberty/configure
---- gcc-3.3.3.orig/libiberty/configure 2003-11-12 12:32:29.000000000 -0500
-+++ gcc-3.3.3/libiberty/configure 2004-04-09 23:04:23.000000000 -0400
-@@ -1000,13 +1000,60 @@
- fi
-
-
-+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-+echo "configure:1005: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
-+
-+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
-+
-+cat > conftest.$ac_ext << EOF
-+
-+#line 1016 "configure"
-+#include "confdefs.h"
-+
-+main(){return(0);}
-+EOF
-+if { (eval echo configure:1021: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+ ac_cv_prog_cc_works=yes
-+ # If we can't run a trivial program, we are probably using a cross compiler.
-+ if (./conftest; exit) 2>/dev/null; then
-+ ac_cv_prog_cc_cross=no
-+ else
-+ ac_cv_prog_cc_cross=yes
-+ fi
-+else
-+ echo "configure: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ ac_cv_prog_cc_works=no
-+fi
-+rm -fr conftest*
-+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
-+
-+echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
-+if test $ac_cv_prog_cc_works = no; then
-+ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
-+fi
-+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-+echo "configure:1047: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
-+echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
-+cross_compiling=$ac_cv_prog_cc_cross
-+
-
- if test "x$CC" != xcc; then
- echo $ac_n "checking whether $CC and cc understand -c and -o together""... $ac_c" 1>&6
--echo "configure:1007: checking whether $CC and cc understand -c and -o together" >&5
-+echo "configure:1054: checking whether $CC and cc understand -c and -o together" >&5
- else
- echo $ac_n "checking whether cc understands -c and -o together""... $ac_c" 1>&6
--echo "configure:1010: checking whether cc understands -c and -o together" >&5
-+echo "configure:1057: checking whether cc understands -c and -o together" >&5
- fi
- set dummy $CC; ac_cc="`echo $2 |
- sed -e 's/[^a-zA-Z0-9_]/_/g' -e 's/^[0-9]/_/'`"
-@@ -1018,16 +1065,16 @@
- # We do the test twice because some compilers refuse to overwrite an
- # existing .o file with -o, though they will create one.
- ac_try='${CC-cc} -c conftest.c -o conftest.o 1>&5'
--if { (eval echo configure:1022: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } &&
-- test -f conftest.o && { (eval echo configure:1023: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; };
-+if { (eval echo configure:1069: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } &&
-+ test -f conftest.o && { (eval echo configure:1070: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; };
- then
- eval ac_cv_prog_cc_${ac_cc}_c_o=yes
- if test "x$CC" != xcc; then
- # Test first that cc exists at all.
-- if { ac_try='cc -c conftest.c 1>&5'; { (eval echo configure:1028: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
-+ if { ac_try='cc -c conftest.c 1>&5'; { (eval echo configure:1075: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
- ac_try='cc -c conftest.c -o conftest.o 1>&5'
-- if { (eval echo configure:1030: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } &&
-- test -f conftest.o && { (eval echo configure:1031: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; };
-+ if { (eval echo configure:1077: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } &&
-+ test -f conftest.o && { (eval echo configure:1078: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; };
- then
- # cc works too.
- :
-@@ -1063,7 +1110,7 @@
-
-
- echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
--echo "configure:1067: checking for POSIXized ISC" >&5
-+echo "configure:1114: checking for POSIXized ISC" >&5
- if test -d /etc/conf/kconfig.d &&
- grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
- then
-@@ -1084,12 +1131,12 @@
- fi
-
- echo $ac_n "checking for working const""... $ac_c" 1>&6
--echo "configure:1088: checking for working const" >&5
-+echo "configure:1135: checking for working const" >&5
- if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 1093 "configure"
-+#line 1140 "configure"
- #include "confdefs.h"
-
- int main() {
-@@ -1138,7 +1185,7 @@
-
- ; return 0; }
- EOF
--if { (eval echo configure:1142: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:1189: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_c_const=yes
- else
-@@ -1159,21 +1206,21 @@
- fi
-
- echo $ac_n "checking for inline""... $ac_c" 1>&6
--echo "configure:1163: checking for inline" >&5
-+echo "configure:1210: checking for inline" >&5
- if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- ac_cv_c_inline=no
- for ac_kw in inline __inline__ __inline; do
- cat > conftest.$ac_ext <<EOF
--#line 1170 "configure"
-+#line 1217 "configure"
- #include "confdefs.h"
-
- int main() {
- } $ac_kw foo() {
- ; return 0; }
- EOF
--if { (eval echo configure:1177: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:1224: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_c_inline=$ac_kw; break
- else
-@@ -1216,7 +1263,7 @@
- # 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:1220: checking for a BSD compatible install" >&5
-+echo "configure:1267: 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
-@@ -1277,7 +1324,7 @@
- # able to link anything, it had better be able to at least compile
- # something.
- echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
--echo "configure:1281: checking how to run the C preprocessor" >&5
-+echo "configure:1328: checking how to run the C preprocessor" >&5
- # On Suns, sometimes $CPP names a directory.
- if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-@@ -1292,13 +1339,13 @@
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp.
- cat > conftest.$ac_ext <<EOF
--#line 1296 "configure"
-+#line 1343 "configure"
- #include "confdefs.h"
- #include <assert.h>
- Syntax Error
- EOF
- ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
--{ (eval echo configure:1302: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-+{ (eval echo configure:1349: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
- ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
- if test -z "$ac_err"; then
- :
-@@ -1309,13 +1356,13 @@
- rm -rf conftest*
- CPP="${CC-cc} -E -traditional-cpp"
- cat > conftest.$ac_ext <<EOF
--#line 1313 "configure"
-+#line 1360 "configure"
- #include "confdefs.h"
- #include <assert.h>
- Syntax Error
- EOF
- ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
--{ (eval echo configure:1319: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-+{ (eval echo configure:1366: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
- ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
- if test -z "$ac_err"; then
- :
-@@ -1326,13 +1373,13 @@
- rm -rf conftest*
- CPP="${CC-cc} -nologo -E"
- cat > conftest.$ac_ext <<EOF
--#line 1330 "configure"
-+#line 1377 "configure"
- #include "confdefs.h"
- #include <assert.h>
- Syntax Error
- EOF
- ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
--{ (eval echo configure:1336: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-+{ (eval echo configure:1383: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
- ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
- if test -z "$ac_err"; then
- :
-@@ -1360,17 +1407,17 @@
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:1364: checking for $ac_hdr" >&5
-+echo "configure:1411: checking for $ac_hdr" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 1369 "configure"
-+#line 1416 "configure"
- #include "confdefs.h"
- #include <$ac_hdr>
- EOF
- ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
--{ (eval echo configure:1374: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-+{ (eval echo configure:1421: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
- ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
- if test -z "$ac_err"; then
- rm -rf conftest*
-@@ -1397,12 +1444,12 @@
- done
-
- echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
--echo "configure:1401: checking for sys/wait.h that is POSIX.1 compatible" >&5
-+echo "configure:1448: checking for sys/wait.h that is POSIX.1 compatible" >&5
- if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 1406 "configure"
-+#line 1453 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #include <sys/wait.h>
-@@ -1418,7 +1465,7 @@
- s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
- ; return 0; }
- EOF
--if { (eval echo configure:1422: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:1469: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_header_sys_wait_h=yes
- else
-@@ -1439,12 +1486,12 @@
- fi
-
- echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
--echo "configure:1443: checking whether time.h and sys/time.h may both be included" >&5
-+echo "configure:1490: checking whether time.h and sys/time.h may both be included" >&5
- if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 1448 "configure"
-+#line 1495 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #include <sys/time.h>
-@@ -1453,7 +1500,7 @@
- struct tm *tp;
- ; return 0; }
- EOF
--if { (eval echo configure:1457: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:1504: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_header_time=yes
- else
-@@ -1475,19 +1522,19 @@
-
-
- echo $ac_n "checking whether errno must be declared""... $ac_c" 1>&6
--echo "configure:1479: checking whether errno must be declared" >&5
-+echo "configure:1526: checking whether errno must be declared" >&5
- if eval "test \"`echo '$''{'libiberty_cv_declare_errno'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 1484 "configure"
-+#line 1531 "configure"
- #include "confdefs.h"
- #include <errno.h>
- int main() {
- int x = errno;
- ; return 0; }
- EOF
--if { (eval echo configure:1491: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:1538: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- libiberty_cv_declare_errno=no
- else
-@@ -1509,12 +1556,12 @@
-
-
- echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
--echo "configure:1513: checking for ANSI C header files" >&5
-+echo "configure:1560: checking for ANSI C header files" >&5
- if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 1518 "configure"
-+#line 1565 "configure"
- #include "confdefs.h"
- #include <stdlib.h>
- #include <stdarg.h>
-@@ -1522,7 +1569,7 @@
- #include <float.h>
- EOF
- ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
--{ (eval echo configure:1526: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-+{ (eval echo configure:1573: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
- ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
- if test -z "$ac_err"; then
- rm -rf conftest*
-@@ -1539,7 +1586,7 @@
- if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat > conftest.$ac_ext <<EOF
--#line 1543 "configure"
-+#line 1590 "configure"
- #include "confdefs.h"
- #include <string.h>
- EOF
-@@ -1557,7 +1604,7 @@
- if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat > conftest.$ac_ext <<EOF
--#line 1561 "configure"
-+#line 1608 "configure"
- #include "confdefs.h"
- #include <stdlib.h>
- EOF
-@@ -1578,7 +1625,7 @@
- :
- else
- cat > conftest.$ac_ext <<EOF
--#line 1582 "configure"
-+#line 1629 "configure"
- #include "confdefs.h"
- #include <ctype.h>
- #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-@@ -1589,7 +1636,7 @@
- exit (0); }
-
- EOF
--if { (eval echo configure:1593: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-+if { (eval echo configure:1640: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
- then
- :
- else
-@@ -1613,12 +1660,12 @@
- fi
-
- echo $ac_n "checking for uintptr_t""... $ac_c" 1>&6
--echo "configure:1617: checking for uintptr_t" >&5
-+echo "configure:1664: checking for uintptr_t" >&5
- if eval "test \"`echo '$''{'ac_cv_type_uintptr_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 1622 "configure"
-+#line 1669 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #if STDC_HEADERS
-@@ -1654,12 +1701,12 @@
-
-
- echo $ac_n "checking for pid_t""... $ac_c" 1>&6
--echo "configure:1658: checking for pid_t" >&5
-+echo "configure:1705: checking for pid_t" >&5
- if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 1663 "configure"
-+#line 1710 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #if STDC_HEADERS
-@@ -1746,12 +1793,12 @@
- for ac_func in asprintf atexit basename bcmp bcopy bsearch bzero calloc clock
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:1750: checking for $ac_func" >&5
-+echo "configure:1797: checking for $ac_func" >&5
- if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 1755 "configure"
-+#line 1802 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-@@ -1774,7 +1821,7 @@
-
- ; return 0; }
- EOF
--if { (eval echo configure:1778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:1825: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
- else
-@@ -1801,12 +1848,12 @@
- for ac_func in getcwd getpagesize index insque mkstemps memchr memcmp memcpy
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:1805: checking for $ac_func" >&5
-+echo "configure:1852: checking for $ac_func" >&5
- if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 1810 "configure"
-+#line 1857 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-@@ -1829,7 +1876,7 @@
-
- ; return 0; }
- EOF
--if { (eval echo configure:1833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:1880: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
- else
-@@ -1856,12 +1903,12 @@
- for ac_func in memmove memset putenv random rename rindex sigsetmask
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:1860: checking for $ac_func" >&5
-+echo "configure:1907: checking for $ac_func" >&5
- if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 1865 "configure"
-+#line 1912 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-@@ -1884,7 +1931,7 @@
-
- ; return 0; }
- EOF
--if { (eval echo configure:1888: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:1935: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
- else
-@@ -1911,12 +1958,12 @@
- for ac_func in strcasecmp setenv strchr strdup strncasecmp strrchr strstr
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:1915: checking for $ac_func" >&5
-+echo "configure:1962: checking for $ac_func" >&5
- if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 1920 "configure"
-+#line 1967 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-@@ -1939,7 +1986,7 @@
-
- ; return 0; }
- EOF
--if { (eval echo configure:1943: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:1990: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
- else
-@@ -1966,12 +2013,12 @@
- for ac_func in strtod strtol strtoul tmpnam vasprintf vfprintf vprintf
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:1970: checking for $ac_func" >&5
-+echo "configure:2017: checking for $ac_func" >&5
- if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 1975 "configure"
-+#line 2022 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-@@ -1994,7 +2041,7 @@
-
- ; return 0; }
- EOF
--if { (eval echo configure:1998: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:2045: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
- else
-@@ -2021,12 +2068,12 @@
- for ac_func in vsprintf waitpid getrusage on_exit psignal strerror strsignal
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:2025: checking for $ac_func" >&5
-+echo "configure:2072: checking for $ac_func" >&5
- if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 2030 "configure"
-+#line 2077 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-@@ -2049,7 +2096,7 @@
-
- ; return 0; }
- EOF
--if { (eval echo configure:2053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:2100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
- else
-@@ -2076,12 +2123,12 @@
- for ac_func in sysconf times sbrk gettimeofday ffs
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:2080: checking for $ac_func" >&5
-+echo "configure:2127: checking for $ac_func" >&5
- if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 2085 "configure"
-+#line 2132 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-@@ -2104,7 +2151,7 @@
-
- ; return 0; }
- EOF
--if { (eval echo configure:2108: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:2155: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
- else
-@@ -2131,12 +2178,12 @@
- for ac_func in realpath canonicalize_file_name
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:2135: checking for $ac_func" >&5
-+echo "configure:2182: checking for $ac_func" >&5
- if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 2140 "configure"
-+#line 2187 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-@@ -2159,7 +2206,7 @@
-
- ; return 0; }
- EOF
--if { (eval echo configure:2163: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:2210: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
- else
-@@ -2186,12 +2233,12 @@
- for ac_func in pstat_getstatic pstat_getdynamic sysmp getsysinfo table sysctl
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:2190: checking for $ac_func" >&5
-+echo "configure:2237: checking for $ac_func" >&5
- if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 2195 "configure"
-+#line 2242 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-@@ -2214,7 +2261,7 @@
-
- ; return 0; }
- EOF
--if { (eval echo configure:2218: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:2265: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
- else
-@@ -2443,53 +2490,6 @@
-
- # We haven't set the list of objects yet. Use the standard autoconf
- # tests. This will only work if the compiler works.
-- echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
--echo "configure:2448: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
--
--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
--
--cat > conftest.$ac_ext << EOF
--
--#line 2459 "configure"
--#include "confdefs.h"
--
--main(){return(0);}
--EOF
--if { (eval echo configure:2464: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-- ac_cv_prog_cc_works=yes
-- # If we can't run a trivial program, we are probably using a cross compiler.
-- if (./conftest; exit) 2>/dev/null; then
-- ac_cv_prog_cc_cross=no
-- else
-- ac_cv_prog_cc_cross=yes
-- fi
--else
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- ac_cv_prog_cc_works=no
--fi
--rm -fr conftest*
--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
--
--echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
--if test $ac_cv_prog_cc_works = no; then
-- { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
--fi
--echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
--echo "configure:2490: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
--echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
--cross_compiling=$ac_cv_prog_cc_cross
--
- for ac_func in $funcs
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-diff -urN gcc-3.3.3.orig/libiberty/configure.in gcc-3.3.3/libiberty/configure.in
---- gcc-3.3.3.orig/libiberty/configure.in 2003-11-12 12:32:30.000000000 -0500
-+++ gcc-3.3.3/libiberty/configure.in 2004-04-09 23:04:05.000000000 -0400
-@@ -100,6 +100,7 @@
- AC_CHECK_TOOL(RANLIB, ranlib, :)
-
- LIB_AC_PROG_CC
-+AC_PROG_CC_WORKS
-
- AC_PROG_CC_C_O
- # autoconf is lame and doesn't give us any substitution variable for this.
-@@ -396,7 +397,6 @@
-
- # We haven't set the list of objects yet. Use the standard autoconf
- # tests. This will only work if the compiler works.
-- AC_PROG_CC_WORKS
- AC_REPLACE_FUNCS($funcs)
- libiberty_AC_FUNC_C_ALLOCA
- AC_FUNC_VFORK
diff --git a/packages/gcc/gcc-3.3.3/pr10392-1-test.patch b/packages/gcc/gcc-3.3.3/pr10392-1-test.patch
deleted file mode 100644
index e94c8b9b9b..0000000000
--- a/packages/gcc/gcc-3.3.3/pr10392-1-test.patch
+++ /dev/null
@@ -1,65 +0,0 @@
---- /dev/null Sat Dec 14 13:56:51 2002
-+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr10392-1.c Sun Sep 14 14:28:24 2003
-@@ -0,0 +1,62 @@
-+/* PR optimization/10392
-+ * Reporter: marcus@mc.pp.se
-+ * Summary: [3.3/3.4 regression] [SH] optimizer generates faulty array indexing
-+ * Description:
-+ * The address calculation of an index operation on an array on the stack
-+ * can _under some conditions_ get messed up completely
-+ *
-+ * Testcase tweaked by dank@kegel.com
-+ * Problem only happens with -O2 -m4, so it should only happen on sh4,
-+ * but what the heck, let's test other architectures, too.
-+ * Not marked as xfail since it's a regression.
-+*/
-+/* { dg-do run } */
-+/* { dg-options "-O2" } */
-+/* { dg-options "-O2 -m4" { target sh4-*-* } } */
-+const char *dont_optimize_function_away;
-+
-+const char *use(const char *str)
-+{
-+ dont_optimize_function_away = str;
-+ if (str[0] != 'v')
-+ abort();
-+ if (str[1] < '1' || str[1] > '6')
-+ abort();
-+ if (str[2])
-+ abort();
-+ return str[2] ? "notused" : "v6";
-+}
-+
-+const char *func(char *a, char *b)
-+{
-+ char buf[128];
-+ unsigned char i;
-+ const char *result;
-+
-+ char *item[] = {
-+ "v1",
-+ "v2",
-+ };
-+
-+ buf[0] = 'v';
-+ buf[1] = '3';
-+ buf[2] = 0;
-+
-+ for (i = 0; i < 2; i++) {
-+ /* bug is: following line passes wild pointer to use() on sh4 -O2 */
-+ result = use(item[i]);
-+
-+ use(buf);
-+ use(a);
-+ use(b);
-+ result = use(result);
-+ }
-+ return result;
-+}
-+
-+int main()
-+{
-+ func("v4", "v5");
-+ return 0;
-+}
-+
diff --git a/packages/gcc/gcc-3.3.3/pr10412-1-test.patch b/packages/gcc/gcc-3.3.3/pr10412-1-test.patch
deleted file mode 100644
index 6ca05258df..0000000000
--- a/packages/gcc/gcc-3.3.3/pr10412-1-test.patch
+++ /dev/null
@@ -1,46 +0,0 @@
---- /dev/null Sat Dec 14 13:56:51 2002
-+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr10412-1.c Sun Sep 14 16:15:21 2003
-@@ -0,0 +1,43 @@
-+/* PR target/10412
-+ * Reporter: shrinivasa@kpitcummins.com
-+ * Summary: Renesas SH - Incorrect code generation
-+ * Description:
-+ * When following code is compiled with
-+ * sh-elf-gcc -S -mhitachi -m2 -O2 bug1.c
-+ * generates an incorrect code.
-+ *
-+ * Testcase tweaked by dank@kegel.com
-+ * Problem only happens with -mhitachi -m2. Not sure if I can give those
-+ * options for all sh targets. They work on sh4, though.
-+ * Not marked as xfail as it's a regression relative to hardhat 2.0 gcc-2.97.
-+*/
-+/* { dg-do run } */
-+/* { dg-options "-O2" } */
-+int global_val;
-+
-+int func0(int x)
-+{
-+ global_val += x;
-+ return (x != 99);
-+}
-+
-+int func1(unsigned long addr)
-+{
-+ int err;
-+
-+ err = func0(addr);
-+ if (err)
-+ return (err);
-+
-+ err = func0(addr * 7); /* address of func0 is lost during multiplication -> probable SIGSEGV */
-+ return (err);
-+}
-+
-+int main(int argc, char **argv)
-+{
-+ global_val = 0;
-+ global_val += func1(99);
-+ if (global_val != 99 * 8 + 1)
-+ abort();
-+ return 0;
-+}
diff --git a/packages/gcc/gcc-3.3.3/pr10589-1-test.patch b/packages/gcc/gcc-3.3.3/pr10589-1-test.patch
deleted file mode 100644
index 04882e51f1..0000000000
--- a/packages/gcc/gcc-3.3.3/pr10589-1-test.patch
+++ /dev/null
@@ -1,17 +0,0 @@
---- /dev/null Sat Dec 14 13:56:51 2002
-+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr10589-1.c Mon Sep 15 08:57:58 2003
-@@ -0,0 +1,14 @@
-+/* PR target/10589
-+ * Reporter: mathieu@thenesis.com
-+ * Summary: For Hitachi SH target, GCC crashes when both -fomit-frame-pointer and -mdalign options are specified
-+ * Keywords: ice-on-valid-code
-+ * Testcase by Kazu Hirata, tweaked by dank@kegel.com
-+ * Did not fail in Hard Hat 2.0 gcc-2.97, nor in dodes gcc-3.0.2, so this is a regression, so I'm not marking it xfail
-+ */
-+/* { dg-do compile { target sh*-*-* } } */
-+/* { dg-options "-fomit-frame-pointer -mdalign" } */
-+
-+int foo(int a, int b)
-+{
-+ return a / b;
-+}
diff --git a/packages/gcc/gcc-3.3.3/pr11162-1-test.patch b/packages/gcc/gcc-3.3.3/pr11162-1-test.patch
deleted file mode 100644
index 9ab0d32443..0000000000
--- a/packages/gcc/gcc-3.3.3/pr11162-1-test.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- /dev/null Sat Dec 14 13:56:51 2002
-+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11162-1.c Sun Sep 14 16:24:41 2003
-@@ -0,0 +1,22 @@
-+/*
-+ * PR optimization/11162
-+ * Reporter: Toshiyasu Morita <tm@kloo.net>
-+ * Summary: [3.4 Regression] [-fnew-ra] ICE compiling channel.i on sh
-+ * Keywords: ice-on-valid-code
-+ * Description:
-+ * [ICE] when channel.i from stress-1.17 is compiled with options:
-+ * -O2 -m4 -fnew-ra
-+ * ...
-+ * The CFG code gets confused by the addition of a USE insn after a sibcall.
-+ * Sibcalls are supposed to end the block (and the function!), so the fact
-+ * that we have an instruction following one (even if its fake) is confusing.
-+ *
-+ * testcase tweaked by dank@kegel.com
-+ */
-+/* { dg-do compile } */
-+/* { dg-options "-O2 -fnew-ra" } */
-+
-+int foo(char *p1)
-+{
-+ return bar(p1);
-+}
diff --git a/packages/gcc/gcc-3.3.3/pr11587-1-test.patch b/packages/gcc/gcc-3.3.3/pr11587-1-test.patch
deleted file mode 100644
index f6dedde016..0000000000
--- a/packages/gcc/gcc-3.3.3/pr11587-1-test.patch
+++ /dev/null
@@ -1,39 +0,0 @@
---- /dev/null Sat Dec 14 13:56:51 2002
-+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11587-1.c Mon Sep 15 08:46:00 2003
-@@ -0,0 +1,36 @@
-+/* PR optimization/11587
-+ * Reporter: Michael Eager <eager@mvista.com>
-+ * Summary: [3.3/3.4 Regression] SH ICE in reload_cse_simplify_operand, postreload.c
-+ * Keywords: ice-on-valid-code
-+ *
-+ * Note: a fix exists; see bugzilla
-+ *
-+ * Testcase tweaked by dank@kegel.com
-+ * Not marked as xfail since it's a regression.
-+ */
-+
-+/* { dg-do compile } */
-+/* { dg-options "-O1" } */
-+int foo1(void);
-+int foo2();
-+int foo3();
-+
-+static int goo()
-+{
-+ int i;
-+
-+ if (i <= 0)
-+ return i;
-+
-+ if (foo1() > 1) {
-+ i = foo2();
-+ if (i < 0)
-+ return i;
-+ if (i) {
-+ if (foo3())
-+ return 1;
-+ return 0;
-+ }
-+ }
-+
-+}
diff --git a/packages/gcc/gcc-3.3.3/pr11608.patch b/packages/gcc/gcc-3.3.3/pr11608.patch
deleted file mode 100644
index b45959c394..0000000000
--- a/packages/gcc/gcc-3.3.3/pr11608.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-# See http://gcc.gnu.org/PR11608
-# Fixes following error when testing sh4 toolchain:
-#
-# Testing debug/20020327-1.c, -gstabs1
-# ...
-# FAIL: gcc.dg/debug/20020327-1.c (test for excess errors)
-# Excess errors:
-# /tmp/cc8dFF7Y.s: Assembler messages:
-# /tmp/cc8dFF7Y.s:66: Error: symbol `Letext' is already defined
-
-Index: elf.h
-===================================================================
-RCS file: /cvs/gcc/gcc/gcc/config/sh/elf.h,v
-retrieving revision 1.32
-diff -u -p -r1.32 elf.h
---- gcc/gcc/config/sh/elf.h.old 27 Sep 2003 04:48:28 -0000 1.32
-+++ gcc/gcc/config/sh/elf.h 2 Jan 2004 07:23:23 -0000
-@@ -95,7 +95,7 @@ while (0)
- #define DBX_OUTPUT_MAIN_SOURCE_FILE_END(FILE, FILENAME) \
- do { \
- text_section (); \
-- fprintf ((FILE), "\t.stabs \"\",%d,0,0,Letext\nLetext:\n", N_SO); \
-+ asm_fprintf ((FILE), "\t.stabs \"\",%d,0,0,%LLetext\n%LLetext:\n", N_SO); \
- } while (0)
-
- #undef STARTFILE_SPEC
diff --git a/packages/gcc/gcc-3.3.3/pr11736-1-test.patch b/packages/gcc/gcc-3.3.3/pr11736-1-test.patch
deleted file mode 100644
index ea544b1275..0000000000
--- a/packages/gcc/gcc-3.3.3/pr11736-1-test.patch
+++ /dev/null
@@ -1,48 +0,0 @@
---- /dev/null Sat Dec 14 13:56:51 2002
-+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11736-1.c Sun Sep 14 14:26:33 2003
-@@ -0,0 +1,45 @@
-+/* PR optimization/11736
-+ * Reporter: marcus@mc.pp.se
-+ * Summary: Stackpointer messed up on SuperH
-+ * Keywords: wrong-code
-+ * Description:
-+ * When a function with 5 arguments is called in both branches of a
-+ * conditional, and only the last argument differs, the code to push that
-+ * last argument on the stack gets confused.
-+ * Space for the fifth argument is reserved on the stack by the
-+ * instruction I have marked as "A". However, if the else-branch is
-+ * taken the stackpointer is decremented _again_ at "B". This
-+ * decrementation is never restored, and it is only due to the
-+ * restoration of r15 from r14 that the function works at all. With
-+ * -fomit-frame-pointer it will crash.
-+ *
-+ * Testcase tweaked by dank@kegel.com
-+ * Not marked as xfail since it's a regression from hardhat 2.0 gcc-2.97
-+ * and dodes gcc-3.0.2
-+ */
-+
-+/* { dg-do run } */
-+/* { dg-options "-O1 -fomit-frame-pointer" } */
-+
-+int expected_e;
-+
-+void bar(int a, int b, int c, int d, int e)
-+{
-+ if (e != expected_e)
-+ abort();
-+}
-+
-+void foo(int a)
-+{
-+ if (a)
-+ bar(0, 0, 0, 0, 1);
-+ else
-+ bar(0, 0, 0, 0, 0); /* stack pointer decremented extra time here, causing segfault */
-+}
-+
-+int main(int argc, char **argv)
-+{
-+ for (expected_e = 0; expected_e < 2; expected_e++)
-+ foo(expected_e);
-+ return 0;
-+}
diff --git a/packages/gcc/gcc-3.3.3/pr11864-1-test.patch b/packages/gcc/gcc-3.3.3/pr11864-1-test.patch
deleted file mode 100644
index f5b0d175f4..0000000000
--- a/packages/gcc/gcc-3.3.3/pr11864-1-test.patch
+++ /dev/null
@@ -1,45 +0,0 @@
---- /dev/null Sat Dec 14 13:56:51 2002
-+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11864-1.c Sun Sep 14 14:32:24 2003
-@@ -0,0 +1,42 @@
-+/* PR optimization/11864
-+ * Reporter: Kazumoto Kojima <kkojima@gcc.gnu.org>
-+ * Summary: [3.3/3.4 regression] miscompiles zero extension and test
-+ * Description:
-+ * gcc-3.3/3.4 -O2 for sh target may miscompile the combination of zero extension
-+ * and test if it's zero.
-+ *
-+ * Testcase tweaked by dank@kegel.com. Not marked as xfail because it's a regression.
-+ */
-+/* { dg-do run } */
-+/* { dg-options "-O2" } */
-+
-+extern void abort(void);
-+
-+int val = 0xff00;
-+
-+int f(void)
-+{
-+ return val;
-+}
-+
-+unsigned char a[1];
-+
-+void foo(void)
-+{
-+ a[0] = f() & 255;
-+
-+ if (!a[0])
-+ a[0] = f() & 255;
-+
-+ if (!a[0])
-+ a[0] = 1 + (f() & 127);
-+}
-+
-+int main(int argc, char **argv)
-+{
-+ foo();
-+ if (!a[0])
-+ abort();
-+
-+ return 0;
-+}
diff --git a/packages/gcc/gcc-3.3.3/pr12009.patch b/packages/gcc/gcc-3.3.3/pr12009.patch
deleted file mode 100644
index cb294d579a..0000000000
--- a/packages/gcc/gcc-3.3.3/pr12009.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-See http://gcc.gnu.org/PR12009
-
-Fixes the following problems when testing a cross-compiler:
-
-============================================
-Testing g++.dg/compat/abi/bitfield1,
-...
-Invoking the compiler as /crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-gli
-bc-2.2.5/build-gcc/gcc/testsuite/../g++ ...
-/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/gcc-3.3/gcc/test
-suite/g++.dg/compat/abi/bitfield1_main.C
-pid is 16028 -16028
-compiler exited with status 1
-output is:
-sh: error while loading shared libraries: /opt/cegl-2.0/powerpc-750-linux-gnu/gc
-c-3.3-glibc-2.2.5/powerpc-750-linux-gnu/./lib/libdl.so.2: ELF file data encoding
- not little-endian
-/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/build-gcc/gcc/te
-stsuite/../g++: error while loading shared libraries: /opt/cegl-2.0/powerpc-750-
-linux-gnu/gcc-3.3-glibc-2.2.5/powerpc-750-linux-gnu/./lib/libc.so.6: ELF file da
-ta encoding not little-endian
-
-FAIL: g++.dg/compat/abi/bitfield1 main_tst.o compile
-============================================
-
-and
-
-sh: error while loading shared libraries: /opt/cegl-2.0/powerpc-405-linux-gnu/gcc-3.2.3-glibc-2.2.5/powerpc-405-linux-gnu/./lib/libdl.so.2: ELF file data encoding not little-endian
-
-
-
---- gcc-3.3/gcc/testsuite/g++.dg/compat/compat.exp.old Thu Oct 17 17:22:57 2002
-+++ gcc-3.3/gcc/testsuite/g++.dg/compat/compat.exp Mon Jul 14 10:59:19 2003
-@@ -42,11 +42,13 @@
- proc compat-fix-library-path { } {
- global ld_library_path
-
-- # See comments in lib/g++.exp for why this is needed.
-- setenv LD_LIBRARY_PATH $ld_library_path
-- setenv SHLIB_PATH $ld_library_path
-- setenv LD_LIBRARYN32_PATH $ld_library_path
-- setenv LD_LIBRARY64_PATH $ld_library_path
-+ if {![is_remote target]} {
-+ # See comments in lib/g++.exp for why this is needed.
-+ setenv LD_LIBRARY_PATH $ld_library_path
-+ setenv SHLIB_PATH $ld_library_path
-+ setenv LD_LIBRARYN32_PATH $ld_library_path
-+ setenv LD_LIBRARY64_PATH $ld_library_path
-+ }
- }
-
- #
---- gcc-3.4-20030813/gcc/testsuite/lib/g++.exp.orig Tue Jun 17 18:56:45 2003
-+++ gcc-3.4-20030813/gcc/testsuite/lib/g++.exp Sun Aug 17 18:35:38 2003
-@@ -166,16 +182,20 @@
- }
- }
-
-- # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
-- # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
-- # (for the 64-bit ABI). The right way to do this would be to modify
-- # unix.exp -- but that's not an option since it's part of DejaGNU
-- # proper, so we do it here. We really only need to do
-- # this on IRIX, but it shouldn't hurt to do it anywhere else.
-- setenv LD_LIBRARY_PATH $ld_library_path
-- setenv SHLIB_PATH $ld_library_path
-- setenv LD_LIBRARYN32_PATH $ld_library_path
-- setenv LD_LIBRARY64_PATH $ld_library_path
-+ if {![is_remote target]} {
-+ # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
-+ # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
-+ # (for the 64-bit ABI). The right way to do this would be to modify
-+ # unix.exp -- but that's not an option since it's part of DejaGNU
-+ # proper, so we do it here. We really only need to do
-+ # this on IRIX, but it shouldn't hurt to do it anywhere else.
-+
-+ # Doing this causes us to be unable to run cross-compilers.
-+ setenv LD_LIBRARY_PATH $ld_library_path
-+ setenv SHLIB_PATH $ld_library_path
-+ setenv LD_LIBRARYN32_PATH $ld_library_path
-+ setenv LD_LIBRARY64_PATH $ld_library_path
-+ }
-
- return "$flags"
- }
diff --git a/packages/gcc/gcc-3.3.3/pr12010.patch b/packages/gcc/gcc-3.3.3/pr12010.patch
deleted file mode 100644
index bb7f171e39..0000000000
--- a/packages/gcc/gcc-3.3.3/pr12010.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-Adjusted for gcc-3.3-20040119
-
-See http://gcc.gnu.org/PR12010
-
-Without this patch, one gets both compile and link time errors in
-'make check' when configured for cross-compiling.
-
-In particular, 'make check' on a cross-compiler fails with
-
-/testsuite_flags: /testsuite_flags: No such file or directory
- while executing
-"exec sh ${odir_v3}/testsuite_flags --build-includes"
- (procedure "g++_include_flags" line 21)
- invoked from within
-"g++_include_flags [get_multilibs] "
- (procedure "g++_init" line 63)
- invoked from within
-"${tool}_init $test_file_name"
- (procedure "runtest" line 19)
-...
-make[1]: [check-g++] Error 1 (ignored)
-
---- gcc-3.3-20040119/gcc/testsuite/lib/g++.exp.orig 2004-01-25 17:56:24.000000000 -0800
-+++ gcc-3.3-20040119/gcc/testsuite/lib/g++.exp 2004-01-25 18:29:44.000000000 -0800
-@@ -72,6 +72,8 @@ proc g++_version { } {
- #
- proc g++_include_flags { paths } {
- global srcdir
-+ global objdir
-+ global target_triplet
- global HAVE_LIBSTDCXX_V3
- global TESTING_IN_BUILD_TREE
-
-@@ -90,6 +92,20 @@ proc g++_include_flags { paths } {
-
- if { ${HAVE_LIBSTDCXX_V3} } {
- set odir_v3 [lookfor_file ${gccpath} libstdc++-v3]
-+ if { $odir_v3 == "" } {
-+ verbose "g++_include_flags: couldn't find libstdc++-v3 on first try, now looking in build directory $objdir"
-+ # first assume no multilibs
-+ set odir_v3 [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
-+ }
-+ if { $odir_v3 == "" } {
-+ verbose "g++_include_flags: couldn't find libstdc++-v3 on second try, trying multilib"
-+ # assume multilib only one level deep
-+ set multisub [file tail $gccpath]
-+ set odir_v3 [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
-+ }
-+ if { $odir_v3 == "" } {
-+ error "Can't find libstdc++-v3"
-+ }
- append flags [exec sh ${odir_v3}/testsuite_flags --build-includes]
- } else {
- set odir_v2 [lookfor_file ${gccpath} libstdc++]
-
---- gcc-3.3-20040119/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp.old Sun Jul 13 10:42:01 2003
-+++ gcc-3.3-20040119/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp Sun Jul 13 11:39:54 2003
-@@ -48,8 +48,23 @@
- global ld_library_path
- global original_ld_library_path
- global tool_root_dir
-+ global target_triplet
-
- set blddir [lookfor_file [get_multilibs] libstdc++-v3]
-+ if { $blddir == "" } {
-+ set multilibs [get_multilibs]
-+ # FIXME: assume multilib only one level deep
-+ set multisub [file tail $multilibs]
-+ verbose "libstdc++-v3-init: couldn't find libstdc++-v3 in $multilibs, trying $objdir"
-+ set blddir [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
-+ }
-+ if { $blddir == "" } {
-+ verbose "libstdc++-v3-init: couldn't find libstdc++-v3, trying $objdir without multilibs"
-+ set blddir [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
-+ }
-+ if { $blddir == "" } {
-+ error "Can't find libstdc++-v3"
-+ }
-
- # By default, we assume we want to run program images.
- global dg-do-what-default
diff --git a/packages/gcc/gcc-3.3.3/pr13260-test.patch b/packages/gcc/gcc-3.3.3/pr13260-test.patch
deleted file mode 100644
index d9cc3e45b1..0000000000
--- a/packages/gcc/gcc-3.3.3/pr13260-test.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-See http://gcc.gnu.org/PR13260
-
-/cvs/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20031204-1.c,v --> standard output
-revision 1.1
---- - 1970-01-01 00:00:00.000000000 +0000
-+++ gcc/gcc/testsuite/gcc.c-torture/execute/20031204-1.c
-@@ -0,0 +1,49 @@
-+/* PR optimization/13260 */
-+
-+#include <string.h>
-+
-+typedef unsigned long u32;
-+
-+u32 in_aton(const char* x)
-+{
-+ return 0x0a0b0c0d;
-+}
-+
-+u32 root_nfs_parse_addr(char *name)
-+{
-+ u32 addr;
-+ int octets = 0;
-+ char *cp, *cq;
-+
-+ cp = cq = name;
-+ while (octets < 4) {
-+ while (*cp >= '0' && *cp <= '9')
-+ cp++;
-+ if (cp == cq || cp - cq > 3)
-+ break;
-+ if (*cp == '.' || octets == 3)
-+ octets++;
-+ if (octets < 4)
-+ cp++;
-+ cq = cp;
-+ }
-+
-+ if (octets == 4 && (*cp == ':' || *cp == '\0')) {
-+ if (*cp == ':')
-+ *cp++ = '\0';
-+ addr = in_aton(name);
-+ strcpy(name, cp);
-+ } else
-+ addr = (-1);
-+
-+ return addr;
-+}
-+
-+int
-+main()
-+{
-+ static char addr[] = "10.11.12.13:/hello";
-+ u32 result = root_nfs_parse_addr(addr);
-+ if (result != 0x0a0b0c0d) { abort(); }
-+ return 0;
-+}
diff --git a/packages/gcc/gcc-3.3.3/pr9365-1-test.patch b/packages/gcc/gcc-3.3.3/pr9365-1-test.patch
deleted file mode 100644
index ee7dfa7c19..0000000000
--- a/packages/gcc/gcc-3.3.3/pr9365-1-test.patch
+++ /dev/null
@@ -1,43 +0,0 @@
---- /dev/null Sat Dec 14 13:56:51 2002
-+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr9365-1.c Sun Sep 14 09:34:37 2003
-@@ -0,0 +1,40 @@
-+/* PR target/9365
-+ * Origin: marcus@mc.pp.se
-+ * Testcase tweaked by dank@kegel.com
-+ * [3.3 regression] [SH] segfault in gen_far_branch (config/sh/sh.c)
-+ * ice-on-valid-code
-+ * Not marked as xfail since it's a regression
-+*/
-+/* { dg-do compile } */
-+/* { dg-options "-O2 -fomit-frame-pointer" } */
-+
-+
-+void foo(int n, int *p)
-+{
-+ switch(n) {
-+ case 100: case 110: case 120: case 130: case 140:
-+ case 200: case 210: case 220: case 230: case 240:
-+ case 300: case 310: case 320: case 330: case 340:
-+ case 400: case 410: case 420: case 430: case 440:
-+ case 500: case 510: case 520: case 530: case 540:
-+ case 600: case 610: case 620: case 630: case 640:
-+ case 700: case 710: case 720: case 730: case 740:
-+ case 800: case 810: case 820: case 830: case 840:
-+ case 900: case 910: case 920: case 930: case 940:
-+ break;
-+ default:
-+ *p = n;
-+ break;
-+ }
-+}
-+
-+int main(int argc, char **argv)
-+{
-+ int p;
-+
-+ (void) argv;
-+
-+ foo(argc, &p);
-+
-+ return p;
-+}
diff --git a/packages/gcc/gcc-3.3.3/reverse-compare.patch b/packages/gcc/gcc-3.3.3/reverse-compare.patch
deleted file mode 100644
index 7b6c1b6425..0000000000
--- a/packages/gcc/gcc-3.3.3/reverse-compare.patch
+++ /dev/null
@@ -1,31 +0,0 @@
---- gcc-3.3.3/gcc/flow.c~ 2003-07-30 01:57:24.000000000 +0100
-+++ gcc-3.3.3/gcc/flow.c 2004-04-23 19:23:43.000000000 +0100
-@@ -1904,6 +1904,7 @@
- regset diff = INITIALIZE_REG_SET (diff_head);
- basic_block bb_true, bb_false;
- rtx cond_true, cond_false, set_src;
-+ enum rtx_code reversed_code;
- int i;
-
- /* Identify the successor blocks. */
-@@ -1934,7 +1935,11 @@
- /* Extract the condition from the branch. */
- set_src = SET_SRC (pc_set (bb->end));
- cond_true = XEXP (set_src, 0);
-- cond_false = gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond_true)),
-+ reversed_code = reverse_condition (GET_CODE (cond_true));
-+ if (reversed_code == UNKNOWN)
-+ goto skip;
-+
-+ cond_false = gen_rtx_fmt_ee (reversed_code,
- GET_MODE (cond_true), XEXP (cond_true, 0),
- XEXP (cond_true, 1));
- if (GET_CODE (XEXP (set_src, 1)) == PC)
-@@ -1980,6 +1985,7 @@
- });
- }
-
-+ skip:
- FREE_REG_SET (diff);
- }
- #endif
diff --git a/packages/gcc/gcc-3.3.3/sh-lib1funcs_sizeAndType.patch b/packages/gcc/gcc-3.3.3/sh-lib1funcs_sizeAndType.patch
deleted file mode 100644
index 64d4fc4bdd..0000000000
--- a/packages/gcc/gcc-3.3.3/sh-lib1funcs_sizeAndType.patch
+++ /dev/null
@@ -1,610 +0,0 @@
-Fixes the problem
- [ libdemo.so and main.o both use assignment on structures ]
- $ sh4-unknown-linux-gnu-gcc libdemo.so main.o
- sh4-unknown-linux-gnu/bin/ld: warning: type and size of dynamic symbol `__movstr_i4_even' are not defined
- [ resulting app links, but crashes at runtime ]
-See testcase at http://tsukuba.m17n.org/linux-sh/ml/linux-sh/2003-11/msg00016.html
-
-Patch was posted as http://gcc.gnu.org/ml/gcc-patches/2002-11/msg01641.html
-and is in cvs as http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/sh/lib1funcs.asm.diff?r1=1.29.4.1&r2=1.29.4.2
-
-but see also sh-libgcc-hidden.patch (part of gcc-3.3.3 as of 20040119 or so)
-
-===================================================================
-
---- gcc/gcc/config/sh/lib1funcs.asm 2002/09/20 01:29:21 1.29.4.1
-+++ gcc/gcc/config/sh/lib1funcs.asm 2003/11/18 12:27:31
-@@ -38,9 +38,14 @@
- amylaar@cygnus.com */
-
- #ifdef __ELF__
--#define LOCAL(X) .L_##X
--#else
--#define LOCAL(X) L_##X
-+#define LOCAL(X) .L_##X
-+#define FUNC(X) .type X,@function
-+#define ENDFUNC0(X) .Lfe_##X: .size X,.Lfe_##X-X
-+#define ENDFUNC(X) ENDFUNC0(X)
-+#else
-+#define LOCAL(X) L_##X
-+#define FUNC(X)
-+#define ENDFUNC(X)
- #endif
-
- #define CONCAT(A,B) A##B
-@@ -87,6 +92,40 @@
- .global GLOBAL(ashiftrt_r4_31)
- .global GLOBAL(ashiftrt_r4_32)
-
-+ FUNC(GLOBAL(ashiftrt_r4_0))
-+ FUNC(GLOBAL(ashiftrt_r4_1))
-+ FUNC(GLOBAL(ashiftrt_r4_2))
-+ FUNC(GLOBAL(ashiftrt_r4_3))
-+ FUNC(GLOBAL(ashiftrt_r4_4))
-+ FUNC(GLOBAL(ashiftrt_r4_5))
-+ FUNC(GLOBAL(ashiftrt_r4_6))
-+ FUNC(GLOBAL(ashiftrt_r4_7))
-+ FUNC(GLOBAL(ashiftrt_r4_8))
-+ FUNC(GLOBAL(ashiftrt_r4_9))
-+ FUNC(GLOBAL(ashiftrt_r4_10))
-+ FUNC(GLOBAL(ashiftrt_r4_11))
-+ FUNC(GLOBAL(ashiftrt_r4_12))
-+ FUNC(GLOBAL(ashiftrt_r4_13))
-+ FUNC(GLOBAL(ashiftrt_r4_14))
-+ FUNC(GLOBAL(ashiftrt_r4_15))
-+ FUNC(GLOBAL(ashiftrt_r4_16))
-+ FUNC(GLOBAL(ashiftrt_r4_17))
-+ FUNC(GLOBAL(ashiftrt_r4_18))
-+ FUNC(GLOBAL(ashiftrt_r4_19))
-+ FUNC(GLOBAL(ashiftrt_r4_20))
-+ FUNC(GLOBAL(ashiftrt_r4_21))
-+ FUNC(GLOBAL(ashiftrt_r4_22))
-+ FUNC(GLOBAL(ashiftrt_r4_23))
-+ FUNC(GLOBAL(ashiftrt_r4_24))
-+ FUNC(GLOBAL(ashiftrt_r4_25))
-+ FUNC(GLOBAL(ashiftrt_r4_26))
-+ FUNC(GLOBAL(ashiftrt_r4_27))
-+ FUNC(GLOBAL(ashiftrt_r4_28))
-+ FUNC(GLOBAL(ashiftrt_r4_29))
-+ FUNC(GLOBAL(ashiftrt_r4_30))
-+ FUNC(GLOBAL(ashiftrt_r4_31))
-+ FUNC(GLOBAL(ashiftrt_r4_32))
-+
- .align 1
- GLOBAL(ashiftrt_r4_32):
- GLOBAL(ashiftrt_r4_31):
-@@ -166,6 +205,40 @@
- GLOBAL(ashiftrt_r4_0):
- rts
- nop
-+
-+ ENDFUNC(GLOBAL(ashiftrt_r4_0))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_1))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_2))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_3))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_4))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_5))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_6))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_7))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_8))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_9))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_10))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_11))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_12))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_13))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_14))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_15))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_16))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_17))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_18))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_19))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_20))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_21))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_22))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_23))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_24))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_25))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_26))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_27))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_28))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_29))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_30))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_31))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_32))
- #endif
-
- #ifdef L_ashiftrt_n
-@@ -188,6 +261,7 @@
- !
-
- .global GLOBAL(ashrsi3)
-+ FUNC(GLOBAL(ashrsi3))
- .align 2
- GLOBAL(ashrsi3):
- mov #31,r0
-@@ -315,6 +389,7 @@
- rts
- nop
-
-+ ENDFUNC(GLOBAL(ashrsi3))
- #endif
-
- #ifdef L_ashiftlt
-@@ -336,6 +411,7 @@
- ! (none)
- !
- .global GLOBAL(ashlsi3)
-+ FUNC(GLOBAL(ashlsi3))
- .align 2
- GLOBAL(ashlsi3):
- mov #31,r0
-@@ -472,6 +548,7 @@
- rts
- nop
-
-+ ENDFUNC(GLOBAL(ashlsi3))
- #endif
-
- #ifdef L_lshiftrt
-@@ -493,6 +570,7 @@
- ! (none)
- !
- .global GLOBAL(lshrsi3)
-+ FUNC(GLOBAL(lshrsi3))
- .align 2
- GLOBAL(lshrsi3):
- mov #31,r0
-@@ -629,6 +707,7 @@
- rts
- nop
-
-+ ENDFUNC(GLOBAL(lshrsi3))
- #endif
-
- #ifdef L_movstr
-@@ -645,76 +724,113 @@
- add #64,r4
- .align 4
- .global GLOBAL(movstrSI64)
-+ FUNC(GLOBAL(movstrSI64))
- GLOBAL(movstrSI64):
- mov.l @(60,r5),r0
- mov.l r0,@(60,r4)
- .global GLOBAL(movstrSI60)
-+ FUNC(GLOBAL(movstrSI60))
- GLOBAL(movstrSI60):
- mov.l @(56,r5),r0
- mov.l r0,@(56,r4)
- .global GLOBAL(movstrSI56)
-+ FUNC(GLOBAL(movstrSI56))
- GLOBAL(movstrSI56):
- mov.l @(52,r5),r0
- mov.l r0,@(52,r4)
- .global GLOBAL(movstrSI52)
-+ FUNC(GLOBAL(movstrSI52))
- GLOBAL(movstrSI52):
- mov.l @(48,r5),r0
- mov.l r0,@(48,r4)
- .global GLOBAL(movstrSI48)
-+ FUNC(GLOBAL(movstrSI48))
- GLOBAL(movstrSI48):
- mov.l @(44,r5),r0
- mov.l r0,@(44,r4)
- .global GLOBAL(movstrSI44)
-+ FUNC(GLOBAL(movstrSI44))
- GLOBAL(movstrSI44):
- mov.l @(40,r5),r0
- mov.l r0,@(40,r4)
- .global GLOBAL(movstrSI40)
-+ FUNC(GLOBAL(movstrSI40))
- GLOBAL(movstrSI40):
- mov.l @(36,r5),r0
- mov.l r0,@(36,r4)
- .global GLOBAL(movstrSI36)
-+ FUNC(GLOBAL(movstrSI36))
- GLOBAL(movstrSI36):
- mov.l @(32,r5),r0
- mov.l r0,@(32,r4)
- .global GLOBAL(movstrSI32)
-+ FUNC(GLOBAL(movstrSI32))
- GLOBAL(movstrSI32):
- mov.l @(28,r5),r0
- mov.l r0,@(28,r4)
- .global GLOBAL(movstrSI28)
-+ FUNC(GLOBAL(movstrSI28))
- GLOBAL(movstrSI28):
- mov.l @(24,r5),r0
- mov.l r0,@(24,r4)
- .global GLOBAL(movstrSI24)
-+ FUNC(GLOBAL(movstrSI24))
- GLOBAL(movstrSI24):
- mov.l @(20,r5),r0
- mov.l r0,@(20,r4)
- .global GLOBAL(movstrSI20)
-+ FUNC(GLOBAL(movstrSI20))
- GLOBAL(movstrSI20):
- mov.l @(16,r5),r0
- mov.l r0,@(16,r4)
- .global GLOBAL(movstrSI16)
-+ FUNC(GLOBAL(movstrSI16))
- GLOBAL(movstrSI16):
- mov.l @(12,r5),r0
- mov.l r0,@(12,r4)
- .global GLOBAL(movstrSI12)
-+ FUNC(GLOBAL(movstrSI12))
- GLOBAL(movstrSI12):
- mov.l @(8,r5),r0
- mov.l r0,@(8,r4)
- .global GLOBAL(movstrSI8)
-+ FUNC(GLOBAL(movstrSI8))
- GLOBAL(movstrSI8):
- mov.l @(4,r5),r0
- mov.l r0,@(4,r4)
- .global GLOBAL(movstrSI4)
-+ FUNC(GLOBAL(movstrSI4))
- GLOBAL(movstrSI4):
- mov.l @(0,r5),r0
- mov.l r0,@(0,r4)
-+ .global GLOBAL(movstrSI0)
-+ FUNC(GLOBAL(movstrSI0))
- GLOBAL(movstrSI0):
- rts
- nop
-
-+ ENDFUNC(GLOBAL(movstrSI64))
-+ ENDFUNC(GLOBAL(movstrSI60))
-+ ENDFUNC(GLOBAL(movstrSI56))
-+ ENDFUNC(GLOBAL(movstrSI52))
-+ ENDFUNC(GLOBAL(movstrSI48))
-+ ENDFUNC(GLOBAL(movstrSI44))
-+ ENDFUNC(GLOBAL(movstrSI40))
-+ ENDFUNC(GLOBAL(movstrSI36))
-+ ENDFUNC(GLOBAL(movstrSI32))
-+ ENDFUNC(GLOBAL(movstrSI28))
-+ ENDFUNC(GLOBAL(movstrSI24))
-+ ENDFUNC(GLOBAL(movstrSI20))
-+ ENDFUNC(GLOBAL(movstrSI16))
-+ ENDFUNC(GLOBAL(movstrSI12))
-+ ENDFUNC(GLOBAL(movstrSI8))
-+ ENDFUNC(GLOBAL(movstrSI4))
-+ ENDFUNC(GLOBAL(movstrSI0))
-+
- .align 4
-
- .global GLOBAL(movstr)
-+ FUNC(GLOBAL(movstr))
- GLOBAL(movstr):
- mov.l @(60,r5),r0
- mov.l r0,@(60,r4)
-@@ -771,6 +887,8 @@
- add #64,r5
- bra GLOBAL(movstr)
- add #64,r4
-+
-+ FUNC(GLOBAL(movstr))
- #endif
-
- #ifdef L_movstr_i4
-@@ -779,6 +897,10 @@
- .global GLOBAL(movstr_i4_odd)
- .global GLOBAL(movstrSI12_i4)
-
-+ FUNC(GLOBAL(movstr_i4_even))
-+ FUNC(GLOBAL(movstr_i4_odd))
-+ FUNC(GLOBAL(movstrSI12_i4))
-+
- .p2align 5
- L_movstr_2mod4_end:
- mov.l r0,@(16,r4)
-@@ -787,6 +909,11 @@
-
- .p2align 2
-
-+GLOBAL(movstr_i4_even):
-+ mov.l @r5+,r0
-+ bra L_movstr_start_even
-+ mov.l @r5+,r1
-+
- GLOBAL(movstr_i4_odd):
- mov.l @r5+,r1
- add #-4,r4
-@@ -813,10 +940,8 @@
- rts
- mov.l r3,@(12,r4)
-
--GLOBAL(movstr_i4_even):
-- mov.l @r5+,r0
-- bra L_movstr_start_even
-- mov.l @r5+,r1
-+ ENDFUNC(GLOBAL(movstr_i4_even))
-+ ENDFUNC(GLOBAL(movstr_i4_odd))
-
- .p2align 4
- GLOBAL(movstrSI12_i4):
-@@ -827,12 +952,15 @@
- mov.l r1,@(4,r4)
- rts
- mov.l r2,@(8,r4)
-+
-+ ENDFUNC(GLOBAL(movstrSI12_i4))
- #endif
-
- #ifdef L_mulsi3
-
-
- .global GLOBAL(mulsi3)
-+ FUNC(GLOBAL(mulsi3))
-
- ! r4 = aabb
- ! r5 = ccdd
-@@ -865,7 +993,7 @@
- rts
- add r2,r0
-
--
-+ FUNC(GLOBAL(mulsi3))
- #endif
- #endif /* ! __SH5__ */
- #ifdef L_sdivsi3_i4
-@@ -875,6 +1003,7 @@
- !! args in r4 and r5, result in fpul, clobber dr0, dr2
-
- .global GLOBAL(sdivsi3_i4)
-+ FUNC(GLOBAL(sdivsi3_i4))
- GLOBAL(sdivsi3_i4):
- lds r4,fpul
- float fpul,dr0
-@@ -884,6 +1013,7 @@
- rts
- ftrc dr0,fpul
-
-+ ENDFUNC(GLOBAL(sdivsi3_i4))
- #elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__) || (defined (__SH5__) && ! defined __SH4_NOFPU__)
- !! args in r4 and r5, result in fpul, clobber r2, dr0, dr2
-
-@@ -892,6 +1022,7 @@
- .mode SHcompact
- #endif
- .global GLOBAL(sdivsi3_i4)
-+ FUNC(GLOBAL(sdivsi3_i4))
- GLOBAL(sdivsi3_i4):
- sts.l fpscr,@-r15
- mov #8,r2
-@@ -906,6 +1037,7 @@
- rts
- lds.l @r15+,fpscr
-
-+ ENDFUNC(GLOBAL(sdivsi3_i4))
- #endif /* ! __SH5__ || __SH5__ == 32 */
- #endif /* ! __SH4__ */
- #endif
-@@ -920,9 +1052,10 @@
- !!
- !!
-
--!! args in r4 and r5, result in r0 clobber r1,r2,r3
-+!! args in r4 and r5, result in r0 clobber r1, r2, r3, and t bit
-
- .global GLOBAL(sdivsi3)
-+ FUNC(GLOBAL(sdivsi3))
- #if __SHMEDIA__
- #if __SH5__ == 32
- .section .text..SHmedia32,"ax"
-@@ -1166,6 +1299,7 @@
- div0: rts
- mov #0,r0
-
-+ ENDFUNC(GLOBAL(sdivsi3))
- #endif /* ! __SHMEDIA__ */
- #endif /* ! __SH4__ */
- #endif
-@@ -1174,9 +1308,11 @@
- .title "SH DIVIDE"
- !! 4 byte integer Divide code for the Hitachi SH
- #ifdef __SH4__
--!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4
-+!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4,
-+!! and t bit
-
- .global GLOBAL(udivsi3_i4)
-+ FUNC(GLOBAL(udivsi3_i4))
- GLOBAL(udivsi3_i4):
- mov #1,r1
- cmp/hi r1,r5
-@@ -1217,11 +1353,13 @@
- L1:
- .double 2147483648
-
-+ ENDFUNC(GLOBAL(udivsi3_i4))
- #elif defined (__SH5__) && ! defined (__SH4_NOFPU__)
- #if ! __SH5__ || __SH5__ == 32
- !! args in r4 and r5, result in fpul, clobber r20, r21, dr0, fr33
- .mode SHmedia
- .global GLOBAL(udivsi3_i4)
-+ FUNC(GLOBAL(udivsi3_i4))
- GLOBAL(udivsi3_i4):
- addz.l r4,r63,r20
- addz.l r5,r63,r21
-@@ -1234,6 +1372,8 @@
- ftrc.dq dr0,dr32
- fmov.s fr33,fr32
- blink tr0,r63
-+
-+ ENDFUNC(GLOBAL(udivsi3_i4))
- #endif /* ! __SH5__ || __SH5__ == 32 */
- #elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__)
- !! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4
-@@ -1287,6 +1427,7 @@
- #endif
- .double 2147483648
-
-+ ENDFUNC(GLOBAL(udivsi3_i4))
- #endif /* ! __SH4__ */
- #endif
-
-@@ -1297,6 +1438,7 @@
-
- !! args in r4 and r5, result in r0, clobbers r4, pr, and t bit
- .global GLOBAL(udivsi3)
-+ FUNC(GLOBAL(udivsi3))
-
- #if __SHMEDIA__
- #if __SH5__ == 32
-@@ -1485,6 +1627,7 @@
- rts
- rotcl r0
-
-+ ENDFUNC(GLOBAL(udivsi3))
- #endif /* ! __SHMEDIA__ */
- #endif /* __SH4__ */
- #endif /* L_udivsi3 */
-@@ -1790,6 +1933,7 @@
- .mode SHcompact
- #endif
- .global GLOBAL(set_fpscr)
-+ FUNC(GLOBAL(set_fpscr))
- GLOBAL(set_fpscr):
- lds r4,fpscr
- mov.l LOCAL(set_fpscr_L1),r1
-@@ -1822,6 +1966,8 @@
- .align 2
- LOCAL(set_fpscr_L1):
- .long GLOBAL(fpscr_values)
-+
-+ ENDFUNC(GLOBAL(set_fpscr))
- #ifdef __ELF__
- .comm GLOBAL(fpscr_values),8,4
- #else
-@@ -1860,6 +2006,7 @@
- blink tr0, r63
- #elif defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__)
- .global GLOBAL(ic_invalidate)
-+ FUNC(GLOBAL(ic_invalidate))
- GLOBAL(ic_invalidate):
- ocbwb @r4
- mova 0f,r0
-@@ -1882,6 +2029,8 @@
- nop
- .endr
- .endr
-+
-+ ENDFUNC(GLOBAL(ic_invalidate))
- #endif /* SH4 */
- #endif /* L_ic_invalidate */
-
-@@ -1940,6 +2089,7 @@
- will be expanded into r2/r3 upon return. */
-
- .global GLOBAL(GCC_shcompact_call_trampoline)
-+ FUNC(GLOBAL(GCC_shcompact_call_trampoline))
- GLOBAL(GCC_shcompact_call_trampoline):
- ptabs/l r0, tr0 /* Prepare to call the actual function. */
- movi ((datalabel LOCAL(ct_main_table) - 31 * 2) >> 16) & 65535, r0
-@@ -2290,6 +2440,8 @@
- shari r2, 32, r2
- #endif
- blink tr0, r63
-+
-+ ENDFUNC(GLOBAL(GCC_shcompact_call_trampoline))
- #endif /* L_shcompact_call_trampoline */
-
- #ifdef L_shcompact_return_trampoline
-@@ -2302,6 +2454,7 @@
- .section .text..SHmedia32, "ax"
- .align 2
- .global GLOBAL(GCC_shcompact_return_trampoline)
-+ FUNC(GLOBAL(GCC_shcompact_return_trampoline))
- GLOBAL(GCC_shcompact_return_trampoline):
- ptabs/l r18, tr0
- #if __LITTLE_ENDIAN__
-@@ -2313,6 +2466,8 @@
- #endif
- or r3, r2, r2
- blink tr0, r63
-+
-+ ENDFUNC(GLOBAL(GCC_shcompact_return_trampoline))
- #endif /* L_shcompact_return_trampoline */
-
- #ifdef L_shcompact_incoming_args
-@@ -2367,6 +2522,7 @@
- actual bit pattern. */
-
- .global GLOBAL(GCC_shcompact_incoming_args)
-+ FUNC(GLOBAL(GCC_shcompact_incoming_args))
- GLOBAL(GCC_shcompact_incoming_args):
- ptabs/l r18, tr0 /* Prepare to return. */
- shlri r17, 32, r0 /* Load the cookie. */
-@@ -2519,6 +2675,7 @@
- LOCAL(ia_return): /* Return. */
- blink tr0, r63
- LOCAL(ia_end_of_push_seq): /* Label used to compute the first push instruction. */
-+ ENDFUNC(GLOBAL(GCC_shcompact_incoming_args))
- #endif /* L_shcompact_incoming_args */
- #endif
- #if __SH5__
-@@ -2530,6 +2687,7 @@
- #endif
- .align 3 /* It is copied in units of 8 bytes in SHmedia mode. */
- .global GLOBAL(GCC_nested_trampoline)
-+ FUNC(GLOBAL(GCC_nested_trampoline))
- GLOBAL(GCC_nested_trampoline):
- .mode SHmedia
- ptrel/u r63, tr0
-@@ -2546,6 +2704,8 @@
- ld.l r0, 28, r1
- #endif
- blink tr1, r63
-+
-+ ENDFUNC(GLOBAL(GCC_nested_trampoline))
- #endif /* L_nested_trampoline */
- #endif /* __SH5__ */
- #if __SH5__ == 32
-@@ -2555,6 +2715,7 @@
- .align 2
- #ifndef __SH4_NOFPU__
- .global GLOBAL(GCC_push_shmedia_regs)
-+ FUNC(GLOBAL(GCC_push_shmedia_regs))
- GLOBAL(GCC_push_shmedia_regs):
- addi.l r15, -14*8, r15
- fst.d r15, 13*8, dr62
-@@ -2573,6 +2734,7 @@
- fst.d r15, 0*8, dr36
- #endif
- .global GLOBAL(GCC_push_shmedia_regs_nofpu)
-+ FUNC(GLOBAL(GCC_push_shmedia_regs_nofpu))
- GLOBAL(GCC_push_shmedia_regs_nofpu):
- ptabs/l r18, tr0
- addi.l r15, -27*8, r15
-@@ -2608,8 +2770,13 @@
- st.q r15, 0*8, r28
- blink tr0, r63
-
-+#ifndef __SH4_NOFPU__
-+ ENDFUNC(GLOBAL(GCC_push_shmedia_regs))
-+#endif
-+ ENDFUNC(GLOBAL(GCC_push_shmedia_regs_nofpu))
- #ifndef __SH4_NOFPU__
- .global GLOBAL(GCC_pop_shmedia_regs)
-+ FUNC(GLOBAL(GCC_pop_shmedia_regs))
- GLOBAL(GCC_pop_shmedia_regs):
- pt .L0, tr1
- movi 41*8, r0
-@@ -2630,6 +2797,7 @@
- blink tr1, r63
- #endif
- .global GLOBAL(GCC_pop_shmedia_regs_nofpu)
-+ FUNC(GLOBAL(GCC_pop_shmedia_regs_nofpu))
- GLOBAL(GCC_pop_shmedia_regs_nofpu):
- movi 27*8, r0
- .L0:
-@@ -2666,5 +2834,10 @@
- ld.q r15, 0*8, r28
- add.l r15, r0, r15
- blink tr0, r63
-+
-+#ifndef __SH4_NOFPU__
-+ ENDFUNC(GLOBAL(GCC_pop_shmedia_regs))
-+#endif
-+ ENDFUNC(GLOBAL(GCC_pop_shmedia_regs_nofpu))
- #endif /* __SH5__ == 32 */
- #endif /* L_push_pop_shmedia_regs */
diff --git a/packages/gcc/gcc-3.3.3/sh-pic-set_fpscr-gcc-3.3.2.patch b/packages/gcc/gcc-3.3.3/sh-pic-set_fpscr-gcc-3.3.2.patch
deleted file mode 100644
index 2a9d592bcc..0000000000
--- a/packages/gcc/gcc-3.3.3/sh-pic-set_fpscr-gcc-3.3.2.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-See http://gcc.gnu.org/PR11901
-Should fix
-make[2]: *** [/gcc-3.3-glibc-2.3.2/build-glibc/elf/check-textrel.out] Error 1
-in glibc's "make tests".
-
-Note: this patch is named
-sh-pic-set_fpscr-gcc-3.3.2.patch
-and must be applied after
-sh-lib1funcs_sizeAndType.patch
-but that'll happen naturally if you apply them in alphabetical order.
-
--------------
-
-Date: Wed, 30 Jul 2003 12:03:01 +0900
-From: kaz Kojima <kkojima@rr.iij4u.or.jp>
-Subject: [linux-sh:02916] Re: Writing PIC version of __udivsi3_i4? (was: Re: "make tests" fails
- with "libc.so: text relocations used" in glibc-2.3.2 for sh4)
-To: dank@kegel.com
-Cc: linux-sh@m17n.org
-Message-Id: <200307300255.h6U2tB906928@r-rr.iij4u.or.jp>
-
-> I'll try to write the PIC version of it,
-
-Dan, does the attached patch work for you?
-
-Regards,
- kaz
---
-diff -u3prN ORIG/gcc/gcc/config/sh/lib1funcs.asm LOCAL/gcc/gcc/config/sh/lib1funcs.asm
---- ORIG/gcc/gcc/config/sh/lib1funcs.asm Thu Jun 19 07:38:59 2003
-+++ gcc-3.3.2/gcc/config/sh/lib1funcs.asm Wed Jul 30 11:08:49 2003
-@@ -1936,7 +1944,17 @@ GLOBAL(moddi3):
- FUNC(GLOBAL(set_fpscr))
- GLOBAL(set_fpscr):
- lds r4,fpscr
-+#ifdef __PIC__
-+ mov.l r12,@-r15
-+ mova LOCAL(set_fpscr_L0),r0
-+ mov.l LOCAL(set_fpscr_L0),r12
-+ add r0,r12
-+ mov.l LOCAL(set_fpscr_L1),r0
-+ mov.l @(r0,r12),r1
-+ mov.l @r15+,r12
-+#else
- mov.l LOCAL(set_fpscr_L1),r1
-+#endif
- swap.w r4,r0
- or #24,r0
- #ifndef FMOVD_WORKS
-@@ -1964,8 +1982,15 @@ GLOBAL(set_fpscr):
- mov.l r3,@(4,r1)
- #endif
- .align 2
-+#ifdef __PIC__
-+LOCAL(set_fpscr_L0):
-+ .long _GLOBAL_OFFSET_TABLE_
-+LOCAL(set_fpscr_L1):
-+ .long GLOBAL(fpscr_values@GOT)
-+#else
- LOCAL(set_fpscr_L1):
- .long GLOBAL(fpscr_values)
-+#endif
-
- ENDFUNC(GLOBAL(set_fpscr))
- #ifndef NO_FPSCR_VALUES
-
-
diff --git a/packages/gcc/gcc-3.3.3/thunk3.patch b/packages/gcc/gcc-3.3.3/thunk3.patch
deleted file mode 100644
index 7974a0c0fa..0000000000
--- a/packages/gcc/gcc-3.3.3/thunk3.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Fixes
-FAIL: g++.jason/thunk3.C (test for excess errors)
-on sh4-unknown-linux-gnu.
-
-Does any sh variant *not* use the generic thunk support? If so, the patch should be
-more cautious. As it is, it excludes all sh processors from this test.
-
-Index: thunk3.C
-===================================================================
-RCS file: /cvsroot/gcc/gcc/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C,v
-retrieving revision 1.13
-diff -u -d -u -r1.13 thunk3.C
---- gcc-ss-3_3-20030714/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C.old 25 Mar 2002 17:57:03 -0000 1.13
-+++ gcc-ss-3_3-20030714/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C 20 Jul 2003 16:57:38 -0000
-@@ -2,7 +2,7 @@
- // Note that this will break on any target that uses the generic thunk
- // support, because it doesn't support variadic functions.
-
--// excess errors test - XFAIL mips*-*-* rs6000-*-* powerpc-*-eabi m68k-*-coff m68k-motorola-sysv m88k-motorola-sysv3 mn10300-*-* mn10200-*-* v850-*-* sh-*-* sh64-*-* h8*-*-* xtensa-*-*
-+// excess errors test - XFAIL mips*-*-* rs6000-*-* powerpc-*-eabi m68k-*-coff m68k-motorola-sysv m88k-motorola-sysv3 mn10300-*-* mn10200-*-* v850-*-* sh*-*-* h8*-*-* xtensa-*-*
-
- #include <stdarg.h>
-
diff --git a/packages/gcc/gcc-3.3.3/zecke-xgcc-cpp.patch b/packages/gcc/gcc-3.3.3/zecke-xgcc-cpp.patch
deleted file mode 100644
index d12562761f..0000000000
--- a/packages/gcc/gcc-3.3.3/zecke-xgcc-cpp.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: gcc-3.3.3/Makefile.in
-===================================================================
---- gcc-3.3.3.orig/Makefile.in 2003-07-05 04:37:08.000000000 +0200
-+++ gcc-3.3.3/Makefile.in 2006-08-06 12:57:53.000000000 +0200
-@@ -1355,6 +1355,8 @@
- AS="$(AS_FOR_TARGET)"; export AS; \
- CC="$(CC_FOR_TARGET)"; export CC; \
- CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
-+ CPP="$(CC_FOR_TARGET) -E"; export CPP; \
-+ CPPFLAGS=""; export CPPFLAGS; \
- CXX="$(CXX_FOR_TARGET)"; export CXX; \
- CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
- GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \