aboutsummaryrefslogtreecommitdiffstats
path: root/devel/mipsel-linux-egcs/files
diff options
context:
space:
mode:
authordinoex <dinoex@FreeBSD.org>2001-06-30 19:53:23 +0800
committerdinoex <dinoex@FreeBSD.org>2001-06-30 19:53:23 +0800
commitbf0e41d95092e690d93b7a605dd555870d37f10e (patch)
treef031dcbee61029b0614926aaae2cc584f8d275b9 /devel/mipsel-linux-egcs/files
parent256454b6695275e9d915887df5f3a52ce6d8821b (diff)
downloadfreebsd-ports-gnome-bf0e41d95092e690d93b7a605dd555870d37f10e.tar.gz
freebsd-ports-gnome-bf0e41d95092e690d93b7a605dd555870d37f10e.tar.zst
freebsd-ports-gnome-bf0e41d95092e690d93b7a605dd555870d37f10e.zip
This port build-depends on devel/mipsel-linux-binutils and
devel/agenda-headers. This port run-depends on devel/mipsel-linux-binutils. This is egcs-1.0.3a for mipsel-linux target with Linux VR patches. Version egcs-1.0.3a is latest official supported by Linux VR version. This port was converted from SRPM for RedHat. PR: 28515 Submitted by: lev@serebryakov.spb.ru
Diffstat (limited to 'devel/mipsel-linux-egcs/files')
-rw-r--r--devel/mipsel-linux-egcs/files/patch-aa-mips1748
-rw-r--r--devel/mipsel-linux-egcs/files/patch-bb-mips-softfloat-254
-rw-r--r--devel/mipsel-linux-egcs/files/patch-cc-sgidefs142
-rw-r--r--devel/mipsel-linux-egcs/files/specs100
4 files changed, 2044 insertions, 0 deletions
diff --git a/devel/mipsel-linux-egcs/files/patch-aa-mips b/devel/mipsel-linux-egcs/files/patch-aa-mips
new file mode 100644
index 000000000000..da16bb55c965
--- /dev/null
+++ b/devel/mipsel-linux-egcs/files/patch-aa-mips
@@ -0,0 +1,1748 @@
+diff -urN egcs-1.0.3a.orig/configure.in egcs-1.0.3a/configure.in
+--- egcs-1.0.3a.orig/configure.in Sun Feb 22 15:21:02 1998
++++ egcs-1.0.3a/configure.in Tue Jul 4 03:22:16 2000
+@@ -173,6 +173,7 @@
+ case "${target}" in
+ alpha-dec-osf*) enable_shared=yes ;;
+ alpha-*-linux*) enable_shared=yes ;;
++ mips*-*-linux*) enable_shared=yes ;;
+ mips-sgi-irix5*) enable_shared=yes ;;
+ *) enable_shared=no ;;
+ esac
+@@ -462,6 +463,12 @@
+ i[3456]86-*-go32* | i[3456]-*-msdosdjgpp*)
+ # but don't build gdb
+ noconfigdirs="$noconfigdirs gdb target-libg++ target-libstdc++ target-libio target-librx"
++ ;;
++ mips*-*-linux*)
++ # linux has rx in libc
++ skipdirs="$skipdirs target-librx"
++ # gprof isn't support for MIPS
++ noconfigdirs="$noconfigdirs gprof"
+ ;;
+ *-*-linux*)
+ # linux has rx in libc
+diff -urN egcs-1.0.3a.orig/gcc/config/mips/linux.h egcs-1.0.3a/gcc/config/mips/linux.h
+--- egcs-1.0.3a.orig/gcc/config/mips/linux.h Thu Jan 1 01:00:00 1970
++++ egcs-1.0.3a/gcc/config/mips/linux.h Tue Jul 4 03:28:50 2000
+@@ -0,0 +1,765 @@
++/*
++ * Common definitions for MIPS running Linux with ELF binaries
++ *
++ * Copyright (C) 1994, 1995, 1996, 1998 Free Software Foundation, Inc.
++ *
++ * Written by Ralf Baechle (ralf@gnu.org)
++ *
++ * Linux is a POSIX.1 compatible UNIX clone for MIPS, which uses GNU
++ * stuffs as the native stuffs.
++ */
++
++#ifndef TARGET_DEFAULT
++#define TARGET_DEFAULT (MASK_ABICALLS|MASK_GAS)
++#endif
++
++#ifndef TARGET_CPU_DEFAULT
++#define TARGET_CPU_DEFAULT 0
++#endif
++
++#ifndef TARGET_ENDIAN_DEFAULT
++#define TARGET_ENDIAN_DEFAULT MASK_BIG_ENDIAN
++#endif
++
++#ifndef MACHINE_TYPE
++#define MACHINE_TYPE "(MIPS Linux/ELF)"
++#endif
++
++#ifndef MULTILIB_DEFAULTS
++#define MULTILIB_DEFAULTS { "EB", "mips1" }
++#endif
++
++/*
++ * -G is incompatible with -KPIC which is the default, so only allow objects
++ * in the small data section if the user explicitly asks for it.
++ */
++#undef MIPS_DEFAULT_GVALUE
++#define MIPS_DEFAULT_GVALUE 0
++
++/*
++ * Do-nothing dummy switch for Linux/i386 compatibility
++ */
++#undef SUBTARGET_SWITCHES
++#define SUBTARGET_SWITCHES {"ieee-fp", 0},
++
++/*
++ * Specify predefined symbols in preprocessor.
++ */
++#ifndef CPP_PREDEFINES
++#define CPP_PREDEFINES "\
++-D__ELF__ -D__PIC__ -D__pic__ -Dunix -Dmips -DR3000 -DMIPSEB -Dlinux \
++-Asystem(linux) -Asystem(posix) -Acpu(mips) -Amachine(mips)"
++#endif
++
++#define SUBTARGET_CPP_SPEC "\
++%{!mfp32: %{!mfp64: -D_MIPS_FPSET=16}} \
++%{mfp32: -D_MIPS_FPSET=16} \
++%{mfp64: -D_MIPS_FPSET=32} \
++%{mips1: -D_MIPS_ISA=_MIPS_ISA_MIPS1} \
++%{mips2: -D_MIPS_ISA=_MIPS_ISA_MIPS2} \
++%{mips3: -D_MIPS_ISA=_MIPS_ISA_MIPS3} \
++%{mips4: -D_MIPS_ISA=_MIPS_ISA_MIPS4} \
++%{!mips1: %{!mips2: %{!mips3: %{!mips4: -D_MIPS_ISA=_MIPS_ISA_MIPS1}}}} \
++%{mabi=32: -D_MIPS_SIM=_MIPS_SIM_ABI32} \
++%{mabi=n32: -D_ABIN32=2 -D_MIPS_SIM=_ABIN32} \
++%{mabi=64: -D_ABI64=3 -D_MIPS_SIM=_ABI64} \
++%{!mabi*: -D_MIPS_SIM=_MIPS_SIM_ABI32} \
++%{mint64:-D_MIPS_SZINT=64 %{!mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__SSIZE_TYPE__=long\\ int -D__PTRDIFF_TYPE__=long\\ int -D_MIPS_SZLONG=64 -D_MIPS_SZPTR=64}} \
++%{!mint64:-D_MIPS_SZINT=32 %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__SSIZE_TYPE__=int -D__PTRDIFF_TYPE__=int -D_MIPS_SZLONG=32 -D_MIPS_SZPTR=32}} \
++%{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__SSIZE_TYPE__=long\\ int -D__PTRDIFF_TYPE__=long\\ int -D_MIPS_SZLONG=64 -D_MIPS_SZPTR=64} \
++%{mabi=32: -D_MIPS_SZLONG=32} \
++%{mabi=n32: -D_MIPS_SZLONG=32} \
++%{mabi=64: -D_MIPS_SZLONG=64} \
++%{!mabi*: -D_MIPS_SZLONG=32} \
++%{mabi=32: -D_MIPS_SZPTR=32} \
++%{mabi=n32: -D_MIPS_SZPTR=32} \
++%{mabi=64: -D_MIPS_SZPTR=64} \
++%{!mabi*: -D_MIPS_SZPTR=32} \
++%{!mips*: -U__mips -D__mips} \
++%{mabi=32: -U__mips64} \
++%{mabi=n32: -D__mips64} \
++%{mabi=64: -D__mips64} \
++%{!mabi*: -U__mips64} \
++%{fno-PIC:-U__PIC__ -U__pic__} %{fno-pic:-U__PIC__ -U__pic__} \
++%{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \
++%{-D__HAVE_FPU__ } \
++%{posix:-D_POSIX_SOURCE} \
++%{pthread:-D_REENTRANT}"
++
++/*
++ * Extra switches sometimes passed to the assembler.
++ */
++#define SUBTARGET_ASM_SPEC "\
++%{!fno-PIC:%{!fno-pic:-KPIC}} %{fPIC:-KPIC} %{fpic:-KPIC} \
++%{fno-PIC:-non_shared} %{fno-pic:-non_shared}"
++
++/* Provide a STARTFILE_SPEC appropriate for Linux. Here we add
++ the Linux magical crtbegin.o file (see crtstuff.c) which
++ provides part of the support for getting C++ file-scope static
++ object constructed before entering `main'. */
++
++#undef STARTFILE_SPEC
++#define STARTFILE_SPEC \
++ "%{!shared: \
++ %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
++ %{!p:%{profile:gcrt1.o%s} \
++ %{!profile:crt1.o%s}}}} \
++ crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
++
++/* Provide a ENDFILE_SPEC appropriate for Linux. Here we tack on
++ the Linux magical crtend.o file (see crtstuff.c) which
++ provides part of the support for getting C++ file-scope static
++ object constructed before entering `main', followed by a normal
++ Linux "finalizer" file, `crtn.o'. */
++
++#undef ENDFILE_SPEC
++#define ENDFILE_SPEC \
++ "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
++
++/* Provide a LINK_SPEC appropriate for Linux. Here we provide support
++ for the special GCC options -static and -shared, which allow us to
++ link things in one of these three modes by applying the appropriate
++ combinations of options at link-time. We like to support here for
++ as many of the other GNU linker options as possible. But I don't
++ have the time to search for those flags. I am sure how to add
++ support for -soname shared_object_name. H.J.
++
++ I took out %{v:%{!V:-V}}. It is too much :-(. They can use
++ -Wl,-V.
++
++ When the -shared link option is used a final link is not being
++ done. */
++
++#undef LINK_SPEC
++#define LINK_SPEC "\
++%{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} %{mips4} \
++%{bestGnum} %{shared} %{non_shared} \
++%{call_shared} %{no_archive} %{exact_version} \
++ %{!shared: \
++ %{!static: \
++ %{rdynamic:-export-dynamic} \
++ %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
++ %{static:-static}}"
++
++/*
++ * We no longer link with libc_p.a or libg.a by default. If you
++ * want to profile or debug the Linux C library, please add
++ * -lc_p or -ggdb to LDFLAGS at the link time, respectively.
++ */
++#undef LIB_SPEC
++#define LIB_SPEC \
++ "%{shared: -lc} \
++ %{!shared: %{mieee-fp:-lieee} %{pthread:-lpthread} \
++ %{profile:-lc_p} %{!profile: -lc}}"
++
++#include "mips/mips.h"
++
++/* mips/mips.h defines some defaults which are quite stupid ... */
++#undef OBJECT_FORMAT_COFF
++#undef EXTENDED_COFF
++#define OBJECT_FORMAT_ELF
++
++/* Don't assume anything about the header files. */
++#define NO_IMPLICIT_EXTERN_C
++
++#undef HAVE_ATEXIT
++#define HAVE_ATEXIT
++
++/* Elf can do stabs */
++#define SDB_DEBUGGING_INFO
++
++/* Prefer dbx. */
++#undef PREFERRED_DEBUGGING_TYPE
++#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
++
++/* Generate calls to memcpy, etc., not bcopy, etc. */
++#define TARGET_MEM_FUNCTIONS
++
++/* Output the label which precedes a jumptable. Note that for all svr4
++ systems where we actually generate jumptables (which is to say every
++ svr4 target except i386, where we use casesi instead) we put the jump-
++ tables into the .rodata section and since other stuff could have been
++ put into the .rodata section prior to any given jumptable, we have to
++ make sure that the location counter for the .rodata section gets pro-
++ perly re-aligned prior to the actual beginning of the jump table. */
++
++#define ASM_OUTPUT_BEFORE_CASE_LABEL(FILE,PREFIX,NUM,TABLE) \
++ ASM_OUTPUT_ALIGN((FILE), 2)
++
++#undef ASM_OUTPUT_CASE_LABEL
++#define ASM_OUTPUT_CASE_LABEL(FILE,PREFIX,NUM,JUMPTABLE) \
++ do { \
++ ASM_OUTPUT_BEFORE_CASE_LABEL (FILE, PREFIX, NUM, JUMPTABLE); \
++ ASM_OUTPUT_INTERNAL_LABEL (FILE, PREFIX, NUM); \
++ } while (0)
++
++/* This says how to output assembler code to declare an
++ uninitialized external linkage data object. Under SVR4,
++ the linker seems to want the alignment of data objects
++ to depend on their types. We do exactly that here. */
++
++#define COMMON_ASM_OP ".comm"
++
++#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \
++do { \
++ fprintf ((FILE), "\t%s\t", COMMON_ASM_OP); \
++ assemble_name ((FILE), (NAME)); \
++ fprintf ((FILE), ",%u,%u\n", (SIZE), (ALIGN) / BITS_PER_UNIT); \
++} while (0)
++
++/* This says how to output assembler code to declare an
++ uninitialized internal linkage data object. Under SVR4,
++ the linker seems to want the alignment of data objects
++ to depend on their types. We do exactly that here. */
++
++#define LOCAL_ASM_OP ".local"
++
++#define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN) \
++do { \
++ fprintf ((FILE), "\t%s\t", LOCAL_ASM_OP); \
++ assemble_name ((FILE), (NAME)); \
++ fprintf ((FILE), "\n"); \
++ ASM_OUTPUT_ALIGNED_COMMON (FILE, NAME, SIZE, ALIGN); \
++} while (0)
++
++/* Output at beginning of assembler file. */
++/* The .file command should always begin the output. */
++#undef ASM_FILE_START
++#define ASM_FILE_START(FILE) \
++ do { \
++ output_file_directive (FILE, main_input_filename); \
++ fprintf (FILE, "\t.version\t\"01.01\"\n"); \
++ } while (0)
++
++/* This is the pseudo-op used to generate a 32-bit word of data with a
++ specific value in some section. This is the same for all known svr4
++ assemblers. */
++
++#define INT_ASM_OP ".long"
++
++/* This is the pseudo-op used to generate a contiguous sequence of byte
++ values from a double-quoted string WITHOUT HAVING A TERMINATING NUL
++ AUTOMATICALLY APPENDED. This is the same for most svr4 assemblers. */
++
++#define ASCII_DATA_ASM_OP ".ascii"
++
++
++/* Support const sections and the ctors and dtors sections for g++.
++ Note that there appears to be two different ways to support const
++ sections at the moment. You can either #define the symbol
++ READONLY_DATA_SECTION (giving it some code which switches to the
++ readonly data section) or else you can #define the symbols
++ EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, SELECT_SECTION, and
++ SELECT_RTX_SECTION. We do both here just to be on the safe side. */
++
++#define USE_CONST_SECTION 1
++
++#define CONST_SECTION_ASM_OP_32 "\t.rdata"
++#define CONST_SECTION_ASM_OP_64 ".section\t.rodata"
++/* Silence GCC when using this file for the Linux libc */
++#undef CTORS_SECTION_ASM_OP
++#undef DTORS_SECTION_ASM_OP
++#define CTORS_SECTION_ASM_OP ".section\t.ctors,\"aw\""
++#define DTORS_SECTION_ASM_OP ".section\t.dtors,\"aw\""
++
++/* A default list of other sections which we might be "in" at any given
++ time. For targets that use additional sections (e.g. .tdesc) you
++ should override this definition in the target-specific file which
++ includes this file. */
++
++#undef EXTRA_SECTIONS
++#define EXTRA_SECTIONS in_sdata, in_rdata, in_const, in_ctors, in_dtors
++
++/* A default list of extra section function definitions. For targets
++ that use additional sections (e.g. .tdesc) you should override this
++ definition in the target-specific file which includes this file. */
++
++#undef EXTRA_SECTION_FUNCTIONS
++#define EXTRA_SECTION_FUNCTIONS \
++void \
++sdata_section () \
++{ \
++ if (in_section != in_sdata) \
++ { \
++ fprintf (asm_out_file, "%s\n", SDATA_SECTION_ASM_OP); \
++ in_section = in_sdata; \
++ } \
++} \
++ \
++void \
++const_section () \
++{ \
++ if (!USE_CONST_SECTION) \
++ text_section(); \
++ else if (in_section != in_const) \
++ { \
++ if (mips_isa >= 3) \
++ fprintf (asm_out_file, "%s\n", CONST_SECTION_ASM_OP_64); \
++ else \
++ fprintf (asm_out_file, "%s\n", CONST_SECTION_ASM_OP_32); \
++ in_section = in_const; \
++ } \
++} \
++ \
++void \
++rdata_section () \
++{ \
++ if (in_section != in_rdata) \
++ { \
++ if (mips_isa >= 3) \
++ fprintf (asm_out_file, "%s\n", CONST_SECTION_ASM_OP_64); \
++ else \
++ fprintf (asm_out_file, "%s\n", CONST_SECTION_ASM_OP_32); \
++ in_section = in_rdata; \
++ } \
++} \
++ CTORS_SECTION_FUNCTION \
++ DTORS_SECTION_FUNCTION
++
++#define CTORS_SECTION_FUNCTION \
++void \
++ctors_section () \
++{ \
++ if (in_section != in_ctors) \
++ { \
++ fprintf (asm_out_file, "%s\n", CTORS_SECTION_ASM_OP); \
++ in_section = in_ctors; \
++ } \
++}
++
++#define DTORS_SECTION_FUNCTION \
++void \
++dtors_section () \
++{ \
++ if (in_section != in_dtors) \
++ { \
++ fprintf (asm_out_file, "%s\n", DTORS_SECTION_ASM_OP); \
++ in_section = in_dtors; \
++ } \
++}
++
++/* A C statement (sans semicolon) to output an element in the table of
++ global constructors. */
++#define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \
++ do { \
++ ctors_section (); \
++ fprintf (FILE, "\t%s\t ", INT_ASM_OP); \
++ assemble_name (FILE, NAME); \
++ fprintf (FILE, "\n"); \
++ } while (0)
++
++/* A C statement (sans semicolon) to output an element in the table of
++ global destructors. */
++#define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \
++ do { \
++ dtors_section (); \
++ fprintf (FILE, "\t%s\t ", INT_ASM_OP); \
++ assemble_name (FILE, NAME); \
++ fprintf (FILE, "\n"); \
++ } while (0)
++
++
++#define INIT_SECTION_ASM_OP ".section .init,\"x\""
++#define FINI_SECTION_ASM_OP ".section .fini,\"x\""
++
++/* Switch into a generic section.
++
++ We make the section read-only and executable for a function decl,
++ read-only for a const data decl, and writable for a non-const data decl.
++
++ If the section has already been defined, we must not
++ emit the attributes here. The SVR4 assembler does not
++ recognize section redefinitions.
++ If DECL is NULL, no attributes are emitted. */
++
++#define ASM_OUTPUT_SECTION_NAME(FILE, DECL, NAME, RELOC) \
++do { \
++ static struct section_info \
++ { \
++ struct section_info *next; \
++ char *name; \
++ enum sect_enum {SECT_RW, SECT_RO, SECT_EXEC} type; \
++ } *sections; \
++ struct section_info *s; \
++ char *mode; \
++ enum sect_enum type; \
++ \
++ for (s = sections; s; s = s->next) \
++ if (!strcmp (NAME, s->name)) \
++ break; \
++ \
++ if (DECL && TREE_CODE (DECL) == FUNCTION_DECL) \
++ type = SECT_EXEC, mode = "ax"; \
++ else if (DECL && DECL_READONLY_SECTION (DECL, RELOC)) \
++ type = SECT_RO, mode = "a"; \
++ else \
++ type = SECT_RW, mode = "aw"; \
++ \
++ if (s == 0) \
++ { \
++ s = (struct section_info *) xmalloc (sizeof (struct section_info)); \
++ s->name = xmalloc ((strlen (NAME) + 1) * sizeof (*NAME)); \
++ strcpy (s->name, NAME); \
++ s->type = type; \
++ s->next = sections; \
++ sections = s; \
++ fprintf (FILE, ".section\t%s,\"%s\",@progbits\n", NAME, mode); \
++ } \
++ else \
++ { \
++ if (DECL && s->type != type) \
++ error_with_decl (DECL, "%s causes a section type conflict"); \
++ \
++ fprintf (FILE, ".section\t%s\n", NAME); \
++ } \
++} while (0)
++
++
++/* A C statement or statements to switch to the appropriate
++ section for output of DECL. DECL is either a `VAR_DECL' node
++ or a constant of some sort. RELOC indicates whether forming
++ the initial value of DECL requires link-time relocations. */
++
++#undef SELECT_SECTION
++#define SELECT_SECTION(DECL,RELOC) \
++{ \
++ if (TREE_CODE (DECL) == STRING_CST) \
++ { \
++ if (! flag_writable_strings) \
++ const_section (); \
++ else \
++ data_section (); \
++ } \
++ else if (TREE_CODE (DECL) == VAR_DECL) \
++ { \
++ if ((flag_pic && RELOC) \
++ || !TREE_READONLY (DECL) || TREE_SIDE_EFFECTS (DECL) \
++ || !DECL_INITIAL (DECL) \
++ || (DECL_INITIAL (DECL) != error_mark_node \
++ && !TREE_CONSTANT (DECL_INITIAL (DECL)))) \
++ data_section (); \
++ else \
++ const_section (); \
++ } \
++ else \
++ const_section (); \
++}
++
++/* A C statement or statements to switch to the appropriate
++ section for output of RTX in mode MODE. RTX is some kind
++ of constant in RTL. The argument MODE is redundant except
++ in the case of a `const_int' rtx. Currently, these always
++ go into the const section. */
++
++#undef SELECT_RTX_SECTION
++#define SELECT_RTX_SECTION(MODE,RTX) const_section()
++
++/* Define the strings used for the special svr4 .type and .size directives.
++ These strings generally do not vary from one system running svr4 to
++ another, but if a given system (e.g. m88k running svr) needs to use
++ different pseudo-op names for these, they may be overridden in the
++ file which includes this one. */
++
++#define TYPE_ASM_OP ".type"
++#define SIZE_ASM_OP ".size"
++
++/* This is how we tell the assembler that a symbol is weak. */
++
++#define ASM_WEAKEN_LABEL(FILE,NAME) \
++ do { fputs ("\t.weak\t", FILE); assemble_name (FILE, NAME); \
++ fputc ('\n', FILE); } while (0)
++
++/*
++ * This is how to equate one symbol to another symbol. The syntax used is
++ * `SYM1=SYM2'. Note that this is different from the way equates are done
++ * with most svr4 assemblers, where the syntax is `.set SYM1,SYM2'.
++ */
++#define ASM_OUTPUT_DEF(FILE,LABEL1,LABEL2) \
++ do { fprintf ((FILE), "\t"); \
++ assemble_name (FILE, LABEL1); \
++ fprintf (FILE, " = "); \
++ assemble_name (FILE, LABEL2); \
++ fprintf (FILE, "\n"); \
++ } while (0)
++
++/* The following macro defines the format used to output the second
++ operand of the .type assembler directive. Different svr4 assemblers
++ expect various different forms for this operand. The one given here
++ is just a default. You may need to override it in your machine-
++ specific tm.h file (depending upon the particulars of your assembler). */
++
++#define TYPE_OPERAND_FMT "@%s"
++
++/* These macros generate the special .type and .size directives which
++ are used to set the corresponding fields of the linker symbol table
++ entries in an ELF object file under SVR4. These macros also output
++ the starting labels for the relevant functions/objects. */
++
++/* Write the extra assembler code needed to declare a function properly. */
++
++#undef ASM_DECLARE_FUNCTION_NAME
++#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \
++ do { \
++ fprintf (FILE, "\t%s\t ", TYPE_ASM_OP); \
++ assemble_name (FILE, NAME); \
++ putc (',', FILE); \
++ fprintf (FILE, TYPE_OPERAND_FMT, "function"); \
++ putc ('\n', FILE); \
++ ASM_OUTPUT_LABEL(FILE, NAME); \
++ } while (0)
++
++/* Write the extra assembler code needed to declare an object properly. */
++
++#undef ASM_DECLARE_OBJECT_NAME
++#define ASM_DECLARE_OBJECT_NAME(FILE, NAME, DECL) \
++ do { \
++ fprintf (FILE, "\t%s\t ", TYPE_ASM_OP); \
++ assemble_name (FILE, NAME); \
++ putc (',', FILE); \
++ fprintf (FILE, TYPE_OPERAND_FMT, "object"); \
++ putc ('\n', FILE); \
++ size_directive_output = 0; \
++ if (!flag_inhibit_size_directive && DECL_SIZE (DECL)) \
++ { \
++ size_directive_output = 1; \
++ fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \
++ assemble_name (FILE, NAME); \
++ fprintf (FILE, ",%d\n", int_size_in_bytes (TREE_TYPE (DECL))); \
++ } \
++ ASM_OUTPUT_LABEL(FILE, NAME); \
++ } while (0)
++
++/* Output the size directive for a decl in rest_of_decl_compilation
++ in the case where we did not do so before the initializer.
++ Once we find the error_mark_node, we know that the value of
++ size_directive_output was set
++ by ASM_DECLARE_OBJECT_NAME when it was run for the same decl. */
++
++#undef ASM_FINISH_DECLARE_OBJECT
++#define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END) \
++do { \
++ char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0); \
++ if (!flag_inhibit_size_directive && DECL_SIZE (DECL) \
++ && ! AT_END && TOP_LEVEL \
++ && DECL_INITIAL (DECL) == error_mark_node \
++ && !size_directive_output) \
++ { \
++ size_directive_output = 1; \
++ fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \
++ assemble_name (FILE, name); \
++ fprintf (FILE, ",%d\n", int_size_in_bytes (TREE_TYPE (DECL))); \
++ } \
++ } while (0)
++
++/*
++ * This is how to declare the size of a function.
++ * mips.h doesn't declare this and the one in svr4.h we just imported
++ * will produce bad code for GP optimized code.
++ */
++#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
++ do { \
++ if (!flag_inhibit_size_directive) \
++ { \
++ char label[256]; \
++ static int labelno; \
++ labelno++; \
++ \
++ ASM_GENERATE_INTERNAL_LABEL (label, "Lfe", labelno); \
++ ASM_OUTPUT_INTERNAL_LABEL (FILE, "Lfe", labelno); \
++ fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \
++ assemble_name (FILE, (FNAME)); \
++ fprintf (FILE, ","); \
++ assemble_name (FILE, label); \
++ fprintf (FILE, "-"); \
++ assemble_name (FILE, (FNAME)); \
++ putc ('\n', FILE); \
++ } \
++ } while (0)
++
++#undef ASM_FILE_END
++#define ASM_FILE_END(FILE) \
++ do { \
++ mips_asm_file_end(FILE); \
++ fprintf ((FILE), "\t%s\t\"GCC: (GNU) %s\"\n", \
++ IDENT_ASM_OP, version_string); \
++ } while (0)
++
++
++/* The default ident must be replaced. */
++#undef ASM_OUTPUT_IDENT
++
++/* Attach a special .ident directive to the end of the file to identify
++ the version of GCC which compiled this code. The format of the
++ .ident string is patterned after the ones produced by native svr4
++ C compilers. */
++
++#define IDENT_ASM_OP ".ident"
++
++/* Output #ident as a .ident. */
++
++#define ASM_OUTPUT_IDENT(FILE, NAME) \
++ fprintf (FILE, "\t%s\t\"%s\"\n", IDENT_ASM_OP, NAME);
++
++
++/* A table of bytes codes used by the ASM_OUTPUT_ASCII and
++ ASM_OUTPUT_LIMITED_STRING macros. Each byte in the table
++ corresponds to a particular byte value [0..255]. For any
++ given byte value, if the value in the corresponding table
++ position is zero, the given character can be output directly.
++ If the table value is 1, the byte must be output as a \ooo
++ octal escape. If the tables value is anything else, then the
++ byte value should be output as a \ followed by the value
++ in the table. Note that we can use standard UN*X escape
++ sequences for many control characters, but we don't use
++ \a to represent BEL because some svr4 assemblers (e.g. on
++ the i386) don't know about that. Also, we don't use \v
++ since some versions of gas, such as 2.2 did not accept it. */
++
++#define ESCAPES \
++"\1\1\1\1\1\1\1\1btn\1fr\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
++\0\0\"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
++\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\\\0\0\0\
++\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\
++\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
++\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
++\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
++\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1"
++
++/* Some svr4 assemblers have a limit on the number of characters which
++ can appear in the operand of a .string directive. If your assembler
++ has such a limitation, you should define STRING_LIMIT to reflect that
++ limit. Note that at least some svr4 assemblers have a limit on the
++ actual number of bytes in the double-quoted string, and that they
++ count each character in an escape sequence as one byte. Thus, an
++ escape sequence like \377 would count as four bytes.
++
++ If your target assembler doesn't support the .string directive, you
++ should define this to zero.
++*/
++
++#define STRING_LIMIT ((unsigned) 256)
++
++#define STRING_ASM_OP ".string"
++
++/* The routine used to output NUL terminated strings. We use a special
++ version of this for most svr4 targets because doing so makes the
++ generated assembly code more compact (and thus faster to assemble)
++ as well as more readable, especially for targets like the i386
++ (where the only alternative is to output character sequences as
++ comma separated lists of numbers). */
++
++#define ASM_OUTPUT_LIMITED_STRING(FILE, STR) \
++ do \
++ { \
++ register unsigned char *_limited_str = (unsigned char *) (STR); \
++ register unsigned ch; \
++ fprintf ((FILE), "\t%s\t\"", STRING_ASM_OP); \
++ for (; ch = *_limited_str; _limited_str++) \
++ { \
++ register int escape; \
++ switch (escape = ESCAPES[ch]) \
++ { \
++ case 0: \
++ putc (ch, (FILE)); \
++ break; \
++ case 1: \
++ fprintf ((FILE), "\\%03o", ch); \
++ break; \
++ default: \
++ putc ('\\', (FILE)); \
++ putc (escape, (FILE)); \
++ break; \
++ } \
++ } \
++ fprintf ((FILE), "\"\n"); \
++ } \
++ while (0)
++
++/* The routine used to output sequences of byte values. We use a special
++ version of this for most svr4 targets because doing so makes the
++ generated assembly code more compact (and thus faster to assemble)
++ as well as more readable. Note that if we find subparts of the
++ character sequence which end with NUL (and which are shorter than
++ STRING_LIMIT) we output those using ASM_OUTPUT_LIMITED_STRING. */
++
++#undef ASM_OUTPUT_ASCII
++#define ASM_OUTPUT_ASCII(FILE, STR, LENGTH) \
++ do \
++ { \
++ register unsigned char *_ascii_bytes = (unsigned char *) (STR); \
++ register unsigned char *limit = _ascii_bytes + (LENGTH); \
++ register unsigned bytes_in_chunk = 0; \
++ for (; _ascii_bytes < limit; _ascii_bytes++) \
++ { \
++ register unsigned char *p; \
++ if (bytes_in_chunk >= 60) \
++ { \
++ fprintf ((FILE), "\"\n"); \
++ bytes_in_chunk = 0; \
++ } \
++ for (p = _ascii_bytes; p < limit && *p != '\0'; p++) \
++ continue; \
++ if (p < limit && (p - _ascii_bytes) <= STRING_LIMIT) \
++ { \
++ if (bytes_in_chunk > 0) \
++ { \
++ fprintf ((FILE), "\"\n"); \
++ bytes_in_chunk = 0; \
++ } \
++ ASM_OUTPUT_LIMITED_STRING ((FILE), _ascii_bytes); \
++ _ascii_bytes = p; \
++ } \
++ else \
++ { \
++ register int escape; \
++ register unsigned ch; \
++ if (bytes_in_chunk == 0) \
++ fprintf ((FILE), "\t%s\t\"", ASCII_DATA_ASM_OP); \
++ switch (escape = ESCAPES[ch = *_ascii_bytes]) \
++ { \
++ case 0: \
++ putc (ch, (FILE)); \
++ bytes_in_chunk++; \
++ break; \
++ case 1: \
++ fprintf ((FILE), "\\%03o", ch); \
++ bytes_in_chunk += 4; \
++ break; \
++ default: \
++ putc ('\\', (FILE)); \
++ putc (escape, (FILE)); \
++ bytes_in_chunk += 2; \
++ break; \
++ } \
++ } \
++ } \
++ if (bytes_in_chunk > 0) \
++ fprintf ((FILE), "\"\n"); \
++ } \
++ while (0)
++
++#undef DEFAULT_VTABLE_THUNKS
++#define DEFAULT_VTABLE_THUNKS 1
++
++/* Get rid of SysV garbage imported via mips/mips.h. */
++
++#undef MD_EXEC_PREFIX
++#undef MD_STARTFILE_PREFIX
++
++/* Specify wchar_t types. */
++
++#undef WCHAR_TYPE
++#define WCHAR_TYPE "long int"
++
++#undef WCHAR_TYPE_SIZE
++#define WCHAR_TYPE_SIZE LONG_TYPE_SIZE
++
++#undef MAX_WCHAR_TYPE_SIZE
++#define MAX_WCHAR_TYPE_SIZE MAX_LONG_TYPE_SIZE
++
++/* Biggest alignment supported by the object file format of this
++ machine. Use this macro to limit the alignment which can be
++ specified using the `__attribute__ ((aligned (N)))' construct. If
++ not defined, the default value is `BIGGEST_ALIGNMENT'. */
++
++#define MAX_OFILE_ALIGNMENT (32768*8)
+diff -urN egcs-1.0.3a.orig/gcc/config/mips/llinux.h egcs-1.0.3a/gcc/config/mips/llinux.h
+--- egcs-1.0.3a.orig/gcc/config/mips/llinux.h Thu Jan 1 01:00:00 1970
++++ egcs-1.0.3a/gcc/config/mips/llinux.h Tue Jul 4 03:22:17 2000
+@@ -0,0 +1,27 @@
++/*
++ * Definitions for little endian MIPS running Linux with ELF binary format
++ *
++ * Copyright (C) 1994, 1995, 1996, 1998 Free Software Foundation, Inc.
++ *
++ * Written by Ralf Baechle (ralf@gnu.org)
++ *
++ * Linux is a POSIX.1 compatible UNIX clone for MIPS, which uses GNU
++ * stuffs as the native stuffs.
++ */
++
++#define TARGET_ENDIAN_DEFAULT 0
++
++#define MACHINE_TYPE "MIPSEL Linux/ELF"
++
++#ifndef MULTILIB_DEFAULTS
++#define MULTILIB_DEFAULTS { "EL" }
++#endif
++
++/*
++ * Specify predefined symbols in preprocessor.
++ */
++#define CPP_PREDEFINES "\
++-D__ELF__ -D__PIC__ -D__pic__ -Dunix -Dmips -DR3000 -DMIPSEL -Dlinux \
++-Asystem(linux) -Asystem(posix) -Acpu(mips) -Amachine(mips)"
++
++#include "mips/linux.h"
+diff -urN egcs-1.0.3a.orig/gcc/config/mips/mips.c egcs-1.0.3a/gcc/config/mips/mips.c
+--- egcs-1.0.3a.orig/gcc/config/mips/mips.c Wed Dec 24 23:06:51 1997
++++ egcs-1.0.3a/gcc/config/mips/mips.c Tue Jul 4 03:22:17 2000
+@@ -3375,20 +3375,6 @@
+ }
+
+
+-#ifdef SIGINFO
+-
+-static void
+-siginfo (signo)
+- int signo;
+-{
+- fprintf (stderr, "compiling '%s' in '%s'\n",
+- (current_function_name != (char *)0) ? current_function_name : "<toplevel>",
+- (current_function_file != (char *)0) ? current_function_file : "<no file>");
+- fflush (stderr);
+-}
+-#endif /* SIGINFO */
+-
+-
+ /* Set up the threshold for data to go into the small data area, instead
+ of the normal data area, and detect any conflicts in the switches. */
+
+@@ -3704,19 +3690,6 @@
+ if (TARGET_NAME_REGS)
+ bcopy ((char *) mips_sw_reg_names, (char *) mips_reg_names, sizeof (mips_reg_names));
+
+- /* If this is OSF/1, set up a SIGINFO handler so we can see what function
+- is currently being compiled. */
+-#ifdef SIGINFO
+- if (getenv ("GCC_SIGINFO") != (char *)0)
+- {
+- struct sigaction action;
+- action.sa_handler = siginfo;
+- action.sa_mask = 0;
+- action.sa_flags = SA_RESTART;
+- sigaction (SIGINFO, &action, (struct sigaction *)0);
+- }
+-#endif
+-
+ #if defined(_IOLBF)
+ #if defined(ultrix) || defined(__ultrix) || defined(__OSF1__) || defined(__osf__) || defined(osf)
+ /* If -mstats and -quiet, make stderr line buffered. */
+@@ -5260,29 +5233,35 @@
+ exactly matches the name used in ASM_DECLARE_FUNCTION_NAME. */
+ fnname = XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0);
+
+- fputs ("\t.ent\t", file);
+- assemble_name (file, fnname);
+- fputs ("\n", file);
++ if (!flag_inhibit_size_directive)
++ {
++ fputs ("\t.ent\t", file);
++ assemble_name (file, fnname);
++ fputs ("\n", file);
++ }
+
+ assemble_name (file, fnname);
+ fputs (":\n", file);
+ #endif
+
+- fprintf (file, "\t.frame\t%s,%d,%s\t\t# vars= %d, regs= %d/%d, args= %d, extra= %d\n",
+- reg_names[ (frame_pointer_needed) ? FRAME_POINTER_REGNUM : STACK_POINTER_REGNUM ],
+- tsize,
+- reg_names[31 + GP_REG_FIRST],
+- current_frame_info.var_size,
+- current_frame_info.num_gp,
+- current_frame_info.num_fp,
+- current_function_outgoing_args_size,
+- current_frame_info.extra_size);
+-
+- fprintf (file, "\t.mask\t0x%08lx,%d\n\t.fmask\t0x%08lx,%d\n",
+- current_frame_info.mask,
+- current_frame_info.gp_save_offset,
+- current_frame_info.fmask,
+- current_frame_info.fp_save_offset);
++ if (!flag_inhibit_size_directive)
++ {
++ fprintf (file, "\t.frame\t%s,%d,%s\t\t# vars= %d, regs= %d/%d, args= %d, extra= %d\n",
++ reg_names[ (frame_pointer_needed) ? FRAME_POINTER_REGNUM : STACK_POINTER_REGNUM ],
++ tsize,
++ reg_names[31 + GP_REG_FIRST],
++ current_frame_info.var_size,
++ current_frame_info.num_gp,
++ current_frame_info.num_fp,
++ current_function_outgoing_args_size,
++ current_frame_info.extra_size);
++
++ fprintf (file, "\t.mask\t0x%08lx,%d\n\t.fmask\t0x%08lx,%d\n",
++ current_frame_info.mask,
++ current_frame_info.gp_save_offset,
++ current_frame_info.fmask,
++ current_frame_info.fp_save_offset);
++ }
+
+ if (TARGET_ABICALLS && mips_abi == ABI_32)
+ {
+@@ -5526,9 +5505,12 @@
+ exactly matches the name used in ASM_DECLARE_FUNCTION_NAME. */
+ fnname = XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0);
+
+- fputs ("\t.end\t", file);
+- assemble_name (file, fnname);
+- fputs ("\n", file);
++ if (!flag_inhibit_size_directive)
++ {
++ fputs ("\t.end\t", file);
++ assemble_name (file, fnname);
++ fputs ("\n", file);
++ }
+ #endif
+
+ if (TARGET_STATS)
+diff -urN egcs-1.0.3a.orig/gcc/config/mips/t-linux egcs-1.0.3a/gcc/config/mips/t-linux
+--- egcs-1.0.3a.orig/gcc/config/mips/t-linux Thu Jan 1 01:00:00 1970
++++ egcs-1.0.3a/gcc/config/mips/t-linux Tue Jul 4 03:22:17 2000
+@@ -0,0 +1,18 @@
++# Don't run fixproto
++STMP_FIXPROTO =
++
++# Don't install "assert.h" in gcc. We use the one in glibc.
++INSTALL_ASSERT_H =
++
++# Suppress building libgcc1.a, since the MIPS compiler port is complete
++# and does not need anything from libgcc1.a.
++LIBGCC1 =
++CROSS_LIBGCC1 =
++
++MULTILIB_OPTIONS= EL/EB
++MULTILIB_DIRNAMES= el eb
++MULTILIB_MATCHES=
++MULTILIB_EXCEPTIONS=
++
++LIBGCC = stmp-multilib
++INSTALL_LIBGCC = install-multilib
+diff -urN egcs-1.0.3a.orig/gcc/config/mips/xm-linux.h egcs-1.0.3a/gcc/config/mips/xm-linux.h
+--- egcs-1.0.3a.orig/gcc/config/mips/xm-linux.h Thu Jan 1 01:00:00 1970
++++ egcs-1.0.3a/gcc/config/mips/xm-linux.h Tue Jul 4 03:22:17 2000
+@@ -0,0 +1,7 @@
++/*
++ * Configuration for GCC for Linux/MIPS.
++ *
++ * Written by Ralf Baechle (linux@uni-koblenz.de)
++ */
++#include <mips/xm-mips.h>
++#include <xm-linux.h>
+diff -urN egcs-1.0.3a.orig/gcc/configure egcs-1.0.3a/gcc/configure
+--- egcs-1.0.3a.orig/gcc/configure Fri May 15 19:24:26 1998
++++ egcs-1.0.3a/gcc/configure Tue Jul 4 03:22:17 2000
+@@ -1,7 +1,7 @@
+ #! /bin/sh
+
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated automatically using autoconf version 2.12
++# Generated automatically using autoconf version 2.13
+ # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+ #
+ # This configure script is free software; the Free Software Foundation
+@@ -71,6 +71,7 @@
+ # Initialize some other variables.
+ subdirs=
+ MFLAGS= MAKEFLAGS=
++SHELL=${CONFIG_SHELL-/bin/sh}
+ # Maximum number of lines to put in a shell here document.
+ ac_max_here_lines=12
+
+@@ -354,7 +355,7 @@
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers)
+- echo "configure generated by autoconf version 2.12"
++ echo "configure generated by autoconf version 2.13"
+ exit 0 ;;
+
+ -with-* | --with-*)
+@@ -524,9 +525,11 @@
+ # 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 $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
++ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+ cross_compiling=$ac_cv_prog_cc_cross
+
++ac_exeext=
++ac_objext=o
+ if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+@@ -715,33 +718,33 @@
+
+
+ # Make sure we can run config.sub.
+-if $ac_config_sub sun4 >/dev/null 2>&1; then :
++if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
+ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
+ fi
+
+ echo $ac_n "checking host system type""... $ac_c" 1>&6
+-echo "configure:724: checking host system type" >&5
++echo "configure:727: checking host system type" >&5
+
+ host_alias=$host
+ case "$host_alias" in
+ NONE)
+ case $nonopt in
+ NONE)
+- if host_alias=`$ac_config_guess`; then :
++ if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
+ else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
+ fi ;;
+ *) host_alias=$nonopt ;;
+ esac ;;
+ esac
+
+-host=`$ac_config_sub $host_alias`
++host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
+ host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$host" 1>&6
+
+ echo $ac_n "checking target system type""... $ac_c" 1>&6
+-echo "configure:745: checking target system type" >&5
++echo "configure:748: checking target system type" >&5
+
+ target_alias=$target
+ case "$target_alias" in
+@@ -752,14 +755,14 @@
+ esac ;;
+ esac
+
+-target=`$ac_config_sub $target_alias`
++target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias`
+ target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo "$ac_t""$target" 1>&6
+
+ echo $ac_n "checking build system type""... $ac_c" 1>&6
+-echo "configure:763: checking build system type" >&5
++echo "configure:766: checking build system type" >&5
+
+ build_alias=$build
+ case "$build_alias" in
+@@ -770,7 +773,7 @@
+ esac ;;
+ esac
+
+-build=`$ac_config_sub $build_alias`
++build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
+ build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+@@ -783,20 +786,21 @@
+
+
+ # Find some useful tools
+-for ac_prog in mawk gawk nawk awk
++for ac_prog in gawk mawk nawk awk
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:792: checking for $ac_word" >&5
++echo "configure:795: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+ else
+- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+- for ac_dir in $PATH; do
++ 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_AWK="$ac_prog"
+@@ -819,15 +823,16 @@
+ # Extract the first word of "flex", so it can be a program name with args.
+ set dummy flex; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:823: checking for $ac_word" >&5
++echo "configure:827: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ if test -n "$LEX"; then
+ ac_cv_prog_LEX="$LEX" # Let the user override the test.
+ else
+- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+- for ac_dir in $PATH; do
++ 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_LEX="flex"
+@@ -852,7 +857,7 @@
+ *) ac_lib=l ;;
+ esac
+ echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6
+-echo "configure:856: checking for yywrap in -l$ac_lib" >&5
++echo "configure:861: checking for yywrap in -l$ac_lib" >&5
+ ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+@@ -860,7 +865,7 @@
+ ac_save_LIBS="$LIBS"
+ LIBS="-l$ac_lib $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 864 "configure"
++#line 869 "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
+@@ -871,7 +876,7 @@
+ yywrap()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:875: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
++if { (eval echo configure:880: \"$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
+@@ -894,7 +899,7 @@
+ fi
+
+ echo $ac_n "checking whether ln works""... $ac_c" 1>&6
+-echo "configure:898: checking whether ln works" >&5
++echo "configure:903: checking whether ln works" >&5
+ if eval "test \"`echo '$''{'gcc_cv_prog_LN'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -926,7 +931,7 @@
+ fi
+
+ echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
+-echo "configure:930: checking whether ln -s works" >&5
++echo "configure:935: checking whether ln -s works" >&5
+ if eval "test \"`echo '$''{'gcc_cv_prog_LN_S'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -960,15 +965,16 @@
+ # Extract the first word of "ranlib", so it can be a program name with args.
+ set dummy ranlib; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:964: checking for $ac_word" >&5
++echo "configure:969: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+ else
+- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+- for ac_dir in $PATH; do
++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
++ ac_dummy="$PATH"
++ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_RANLIB="ranlib"
+@@ -991,15 +997,16 @@
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:995: checking for $ac_word" >&5
++echo "configure:1001: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ if test -n "$YACC"; then
+ ac_cv_prog_YACC="$YACC" # Let the user override the test.
+ else
+- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+- for ac_dir in $PATH; do
++ 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_YACC="$ac_prog"
+@@ -1031,7 +1038,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:1035: checking for a BSD compatible install" >&5
++echo "configure:1042: 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
+@@ -1085,15 +1092,16 @@
+ # Extract the first word of "gcc", so it can be a program name with args.
+ set dummy gcc; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1089: checking for $ac_word" >&5
++echo "configure:1096: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+ else
+- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+- for ac_dir in $PATH; do
++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
++ ac_dummy="$PATH"
++ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_CC="gcc"
+@@ -1114,16 +1122,17 @@
+ # Extract the first word of "cc", so it can be a program name with args.
+ set dummy cc; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1118: checking for $ac_word" >&5
++echo "configure:1126: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+ else
+- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_prog_rejected=no
+- for ac_dir in $PATH; do
++ ac_dummy="$PATH"
++ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+@@ -1158,25 +1167,61 @@
+ echo "$ac_t""no" 1>&6
+ fi
+
++ if test -z "$CC"; then
++ case "`uname -s`" in
++ *win32* | *WIN32*)
++ # Extract the first word of "cl", so it can be a program name with args.
++set dummy cl; ac_word=$2
++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
++echo "configure:1177: checking for $ac_word" >&5
++if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
++ echo $ac_n "(cached) $ac_c" 1>&6
++else
++ if test -n "$CC"; then
++ ac_cv_prog_CC="$CC" # Let the user override the test.
++else
++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
++ ac_dummy="$PATH"
++ for ac_dir in $ac_dummy; do
++ test -z "$ac_dir" && ac_dir=.
++ if test -f $ac_dir/$ac_word; then
++ ac_cv_prog_CC="cl"
++ break
++ fi
++ done
++ IFS="$ac_save_ifs"
++fi
++fi
++CC="$ac_cv_prog_CC"
++if test -n "$CC"; then
++ echo "$ac_t""$CC" 1>&6
++else
++ echo "$ac_t""no" 1>&6
++fi
++ ;;
++ esac
++ fi
+ test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
+ fi
+
+ echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+-echo "configure:1166: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
++echo "configure:1209: 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 $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 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 1176 "configure"
++cat > conftest.$ac_ext << EOF
++
++#line 1220 "configure"
+ #include "confdefs.h"
++
+ main(){return(0);}
+ EOF
+-if { (eval echo configure:1180: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
++if { (eval echo configure:1225: \"$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
+@@ -1190,18 +1235,24 @@
+ 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:1200: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
++echo "configure:1251: 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
+
+ echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+-echo "configure:1205: checking whether we are using GNU C" >&5
++echo "configure:1256: checking whether we are using GNU C" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1210,7 +1261,7 @@
+ yes;
+ #endif
+ EOF
+-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1214: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
++if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1265: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+ ac_cv_prog_gcc=yes
+ else
+ ac_cv_prog_gcc=no
+@@ -1221,11 +1272,15 @@
+
+ if test $ac_cv_prog_gcc = yes; then
+ GCC=yes
+- ac_test_CFLAGS="${CFLAGS+set}"
+- ac_save_CFLAGS="$CFLAGS"
+- CFLAGS=
+- echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+-echo "configure:1229: checking whether ${CC-cc} accepts -g" >&5
++else
++ GCC=
++fi
++
++ac_test_CFLAGS="${CFLAGS+set}"
++ac_save_CFLAGS="$CFLAGS"
++CFLAGS=
++echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
++echo "configure:1284: checking whether ${CC-cc} accepts -g" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1240,20 +1295,24 @@
+ fi
+
+ echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
+- if test "$ac_test_CFLAGS" = set; then
+- CFLAGS="$ac_save_CFLAGS"
+- elif test $ac_cv_prog_cc_g = yes; then
++if test "$ac_test_CFLAGS" = set; then
++ CFLAGS="$ac_save_CFLAGS"
++elif test $ac_cv_prog_cc_g = yes; then
++ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+- CFLAGS="-O2"
++ CFLAGS="-g"
+ fi
+ else
+- GCC=
+- test "${CFLAGS+set}" = set || CFLAGS="-g"
++ if test "$GCC" = yes; then
++ CFLAGS="-O2"
++ else
++ CFLAGS=
++ fi
+ fi
+
+ echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
+-echo "configure:1257: checking whether ${MAKE-make} sets \${MAKE}" >&5
++echo "configure:1316: checking whether ${MAKE-make} sets \${MAKE}" >&5
+ set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+@@ -1281,7 +1340,7 @@
+
+
+ echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+-echo "configure:1285: checking how to run the C preprocessor" >&5
++echo "configure:1344: checking how to run the C preprocessor" >&5
+ # On Suns, sometimes $CPP names a directory.
+ if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+@@ -1296,14 +1355,14 @@
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp.
+ cat > conftest.$ac_ext <<EOF
+-#line 1300 "configure"
++#line 1359 "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:1306: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+-ac_err=`grep -v '^ *+' conftest.out`
++{ (eval echo configure:1365: \"$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
+ :
+ else
+@@ -1313,14 +1372,31 @@
+ rm -rf conftest*
+ CPP="${CC-cc} -E -traditional-cpp"
+ cat > conftest.$ac_ext <<EOF
+-#line 1317 "configure"
++#line 1376 "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:1382: \"$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
++ :
++else
++ echo "$ac_err" >&5
++ echo "configure: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ rm -rf conftest*
++ CPP="${CC-cc} -nologo -E"
++ cat > conftest.$ac_ext <<EOF
++#line 1393 "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:1323: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+-ac_err=`grep -v '^ *+' conftest.out`
++{ (eval echo configure:1399: \"$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
+ :
+ else
+@@ -1333,6 +1409,8 @@
+ rm -f conftest*
+ fi
+ rm -f conftest*
++fi
++rm -f conftest*
+ ac_cv_prog_CPP="$CPP"
+ fi
+ CPP="$ac_cv_prog_CPP"
+@@ -1345,18 +1423,18 @@
+ do
+ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+ echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:1349: checking for $ac_hdr" >&5
++echo "configure:1427: 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 1354 "configure"
++#line 1432 "configure"
+ #include "confdefs.h"
+ #include <$ac_hdr>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1359: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+-ac_err=`grep -v '^ *+' conftest.out`
++{ (eval echo configure:1437: \"$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"
+@@ -1383,12 +1461,12 @@
+
+
+ echo $ac_n "checking whether malloc must be declared""... $ac_c" 1>&6
+-echo "configure:1387: checking whether malloc must be declared" >&5
++echo "configure:1465: checking whether malloc must be declared" >&5
+ if eval "test \"`echo '$''{'gcc_cv_decl_needed_malloc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1392 "configure"
++#line 1470 "configure"
+ #include "confdefs.h"
+
+ #include <stdio.h>
+@@ -1409,7 +1487,7 @@
+ char *(*pfn) = (char *(*)) malloc
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1413: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:1491: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ gcc_cv_decl_needed_malloc=no
+ else
+@@ -1431,12 +1509,12 @@
+ fi
+
+ echo $ac_n "checking whether realloc must be declared""... $ac_c" 1>&6
+-echo "configure:1435: checking whether realloc must be declared" >&5
++echo "configure:1513: checking whether realloc must be declared" >&5
+ if eval "test \"`echo '$''{'gcc_cv_decl_needed_realloc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1440 "configure"
++#line 1518 "configure"
+ #include "confdefs.h"
+
+ #include <stdio.h>
+@@ -1457,7 +1535,7 @@
+ char *(*pfn) = (char *(*)) realloc
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1461: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:1539: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ gcc_cv_decl_needed_realloc=no
+ else
+@@ -1479,12 +1557,12 @@
+ fi
+
+ echo $ac_n "checking whether calloc must be declared""... $ac_c" 1>&6
+-echo "configure:1483: checking whether calloc must be declared" >&5
++echo "configure:1561: checking whether calloc must be declared" >&5
+ if eval "test \"`echo '$''{'gcc_cv_decl_needed_calloc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1488 "configure"
++#line 1566 "configure"
+ #include "confdefs.h"
+
+ #include <stdio.h>
+@@ -1505,7 +1583,7 @@
+ char *(*pfn) = (char *(*)) calloc
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1509: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:1587: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ gcc_cv_decl_needed_calloc=no
+ else
+@@ -1527,12 +1605,12 @@
+ fi
+
+ echo $ac_n "checking whether free must be declared""... $ac_c" 1>&6
+-echo "configure:1531: checking whether free must be declared" >&5
++echo "configure:1609: checking whether free must be declared" >&5
+ if eval "test \"`echo '$''{'gcc_cv_decl_needed_free'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1536 "configure"
++#line 1614 "configure"
+ #include "confdefs.h"
+
+ #include <stdio.h>
+@@ -1553,7 +1631,7 @@
+ char *(*pfn) = (char *(*)) free
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1557: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:1635: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ gcc_cv_decl_needed_free=no
+ else
+@@ -1576,12 +1654,12 @@
+
+
+ echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6
+-echo "configure:1580: checking for sys_siglist declaration in signal.h or unistd.h" >&5
++echo "configure:1658: checking for sys_siglist declaration in signal.h or unistd.h" >&5
+ if eval "test \"`echo '$''{'ac_cv_decl_sys_siglist'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1585 "configure"
++#line 1663 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <signal.h>
+@@ -1593,7 +1671,7 @@
+ char *msg = *(sys_siglist + 1);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1597: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:1675: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_decl_sys_siglist=yes
+ else
+@@ -1617,12 +1695,12 @@
+ for ac_func in strerror strtoul bsearch
+ do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+-echo "configure:1621: checking for $ac_func" >&5
++echo "configure:1699: 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 1626 "configure"
++#line 1704 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+@@ -1645,7 +1723,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1649: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
++if { (eval echo configure:1727: \"$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
+@@ -3368,6 +3446,30 @@
+ use_collect2=yes
+ fi
+ ;;
++ mips*el-*-linux-gnu*) # Little endian MIPS running Linux
++ xm_file=mips/xm-linux.h # with ELF format using glibc 2
++ xmake_file=x-linux # aka Linux C library 6
++ tm_file=mips/llinux.h
++ tmake_file=mips/t-linux
++ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
++ fixincludes=Makefile.in #On Linux, the headers are ok already.
++ gnu_ld=yes
++ if [ x$enable_threads = xyes ]; then
++ thread_file='posix'
++ fi
++ ;;
++ mips*-*-linux-gnu*) # Big endian MIPS running Linux
++ xm_file=mips/xm-linux.h # with ELF format using glibc 2
++ xmake_file=x-linux # aka Linux C library 6
++ tm_file=mips/linux.h
++ tmake_file=mips/t-linux
++ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
++ fixincludes=Makefile.in #On Linux, the headers are ok already.
++ gnu_ld=yes
++ if [ x$enable_threads = xyes ]; then
++ thread_file='posix'
++ fi
++ ;;
+ mips-*-riscos[56789]bsd*)
+ tm_file=mips/bsd-5.h # MIPS BSD 4.3, RISC-OS 5.0
+ if [ x$stabs = xyes ]; then
+@@ -4734,7 +4836,7 @@
+ # Ultrix sh set writes to stderr and can't be redirected directly,
+ # and sets the high bit in the cache file unless we assign to the vars.
+ (set) 2>&1 |
+- case `(ac_space=' '; set) 2>&1` in
++ case `(ac_space=' '; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote substitution
+ # turns \\\\ into \\, and sed turns \\ into \).
+@@ -4801,7 +4903,7 @@
+ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+- echo "$CONFIG_STATUS generated by autoconf version 2.12"
++ echo "$CONFIG_STATUS generated by autoconf version 2.13"
+ exit 0 ;;
+ -help | --help | --hel | --he | --h)
+ echo "\$ac_cs_usage"; exit 0 ;;
+@@ -4820,9 +4922,11 @@
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+ $ac_vpsub
+ $extrasub
++s%@SHELL@%$SHELL%g
+ s%@CFLAGS@%$CFLAGS%g
+ s%@CPPFLAGS@%$CPPFLAGS%g
+ s%@CXXFLAGS@%$CXXFLAGS%g
++s%@FFLAGS@%$FFLAGS%g
+ s%@DEFS@%$DEFS%g
+ s%@LDFLAGS@%$LDFLAGS%g
+ s%@LIBS@%$LIBS%g
+diff -urN egcs-1.0.3a.orig/gcc/configure.in egcs-1.0.3a/gcc/configure.in
+--- egcs-1.0.3a.orig/gcc/configure.in Wed Mar 4 22:02:13 1998
++++ egcs-1.0.3a/gcc/configure.in Tue Jul 4 03:22:17 2000
+@@ -1848,6 +1848,30 @@
+ use_collect2=yes
+ fi
+ ;;
++ mips*el-*-linux-gnu*) # Little endian MIPS running Linux
++ xm_file=mips/xm-linux.h # with ELF format using glibc 2
++ xmake_file=x-linux # aka Linux C library 6
++ tm_file=mips/llinux.h
++ tmake_file=mips/t-linux
++ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
++ fixincludes=Makefile.in #On Linux, the headers are ok already.
++ gnu_ld=yes
++ if [[ x$enable_threads = xyes ]]; then
++ thread_file='posix'
++ fi
++ ;;
++ mips*-*-linux-gnu*) # Big endian MIPS running Linux
++ xm_file=mips/xm-linux.h # with ELF format using glibc 2
++ xmake_file=x-linux # aka Linux C library 6
++ tm_file=mips/linux.h
++ tmake_file=mips/t-linux
++ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
++ fixincludes=Makefile.in #On Linux, the headers are ok already.
++ gnu_ld=yes
++ if [[ x$enable_threads = xyes ]]; then
++ thread_file='posix'
++ fi
++ ;;
+ mips-*-riscos[[56789]]bsd*)
+ tm_file=mips/bsd-5.h # MIPS BSD 4.3, RISC-OS 5.0
+ if [[ x$stabs = xyes ]]; then
diff --git a/devel/mipsel-linux-egcs/files/patch-bb-mips-softfloat-2 b/devel/mipsel-linux-egcs/files/patch-bb-mips-softfloat-2
new file mode 100644
index 000000000000..f57a95b93a7c
--- /dev/null
+++ b/devel/mipsel-linux-egcs/files/patch-bb-mips-softfloat-2
@@ -0,0 +1,54 @@
+diff -ruN egcs-1.0.3a.orig/gcc/config/mips/linux.h egcs-1.0.3a/gcc/config/mips/linux.h
+--- egcs-1.0.3a.orig/gcc/config/mips/linux.h Sun Oct 15 16:24:37 2000
++++ egcs-1.0.3a/gcc/config/mips/linux.h Sun Oct 15 16:27:35 2000
+@@ -82,7 +82,7 @@
+ %{!mabi*: -U__mips64} \
+ %{fno-PIC:-U__PIC__ -U__pic__} %{fno-pic:-U__PIC__ -U__pic__} \
+ %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \
+-%{-D__HAVE_FPU__ } \
++%{!msoft-float: -D__HAVE_FPU__ } \
+ %{posix:-D_POSIX_SOURCE} \
+ %{pthread:-D_REENTRANT}"
+
+@@ -763,3 +763,7 @@
+ not defined, the default value is `BIGGEST_ALIGNMENT'. */
+
+ #define MAX_OFILE_ALIGNMENT (32768*8)
++
++/* US Software GOFAST library support. */
++#include "gofast.h"
++#define INIT_TARGET_OPTABS INIT_GOFAST_OPTABS
+diff -ruN egcs-1.0.3a.orig/gcc/config/mips/t-linux egcs-1.0.3a/gcc/config/mips/t-linux
+--- egcs-1.0.3a.orig/gcc/config/mips/t-linux Sun Oct 15 16:24:37 2000
++++ egcs-1.0.3a/gcc/config/mips/t-linux Sun Oct 15 16:25:58 2000
+@@ -9,8 +9,28 @@
+ LIBGCC1 =
+ CROSS_LIBGCC1 =
+
+-MULTILIB_OPTIONS= EL/EB
+-MULTILIB_DIRNAMES= el eb
++# These are really part of libgcc1, but this will cause them to be
++# built correctly, so... [taken from t-sparclite]
++LIB2FUNCS_EXTRA = fp-bit.c dp-bit.c
++
++dp-bit.c: $(srcdir)/config/fp-bit.c
++ echo '#ifdef __MIPSEL__' > dp-bit.c
++ echo '#define FLOAT_BIT_ORDER_MISMATCH' >> dp-bit.c
++ echo '#endif' >> dp-bit.c
++ echo '#define US_SOFTWARE_GOFAST' >> dp-bit.c
++ cat $(srcdir)/config/fp-bit.c >> dp-bit.c
++
++fp-bit.c: $(srcdir)/config/fp-bit.c
++ echo '#define FLOAT' > fp-bit.c
++ echo '#ifdef __MIPSEL__' >> fp-bit.c
++ echo '#define FLOAT_BIT_ORDER_MISMATCH' >> fp-bit.c
++ echo '#endif' >> fp-bit.c
++ echo '#define US_SOFTWARE_GOFAST' >> fp-bit.c
++ cat $(srcdir)/config/fp-bit.c >> fp-bit.c
++
++
++MULTILIB_OPTIONS= EL/EB msoft-float
++MULTILIB_DIRNAMES= el eb soft-float
+ MULTILIB_MATCHES=
+ MULTILIB_EXCEPTIONS=
+
diff --git a/devel/mipsel-linux-egcs/files/patch-cc-sgidefs b/devel/mipsel-linux-egcs/files/patch-cc-sgidefs
new file mode 100644
index 000000000000..20186280985c
--- /dev/null
+++ b/devel/mipsel-linux-egcs/files/patch-cc-sgidefs
@@ -0,0 +1,142 @@
+diff -rudN egcs-1.0.3a.orig/gcc/configure egcs-1.0.3a/gcc/configure
+--- egcs-1.0.3a.orig/gcc/configure Sat Nov 4 20:57:37 2000
++++ egcs-1.0.3a/gcc/configure Sat Nov 4 20:56:14 2000
+@@ -3452,6 +3452,7 @@
+ tm_file=mips/llinux.h
+ tmake_file=mips/t-linux
+ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
++ extra_headers=sgidefs.h
+ fixincludes=Makefile.in #On Linux, the headers are ok already.
+ gnu_ld=yes
+ if [ x$enable_threads = xyes ]; then
+@@ -3464,6 +3465,7 @@
+ tm_file=mips/linux.h
+ tmake_file=mips/t-linux
+ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
++ extra_headers=sgidefs.h
+ fixincludes=Makefile.in #On Linux, the headers are ok already.
+ gnu_ld=yes
+ if [ x$enable_threads = xyes ]; then
+diff -rudN egcs-1.0.3a.orig/gcc/configure.in egcs-1.0.3a/gcc/configure.in
+--- egcs-1.0.3a.orig/gcc/configure.in Sat Nov 4 20:56:58 2000
++++ egcs-1.0.3a/gcc/configure.in Sat Nov 4 20:56:45 2000
+@@ -1854,6 +1854,7 @@
+ tm_file=mips/llinux.h
+ tmake_file=mips/t-linux
+ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
++ extra_headers=sgidefs.h
+ fixincludes=Makefile.in #On Linux, the headers are ok already.
+ gnu_ld=yes
+ if [[ x$enable_threads = xyes ]]; then
+@@ -1866,6 +1867,7 @@
+ tm_file=mips/linux.h
+ tmake_file=mips/t-linux
+ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
++ extra_headers=sgidefs.h
+ fixincludes=Makefile.in #On Linux, the headers are ok already.
+ gnu_ld=yes
+ if [[ x$enable_threads = xyes ]]; then
+diff -rudN egcs-1.0.3a.orig/gcc/ginclude/sgidefs.h egcs-1.0.3a/gcc/ginclude/sgidefs.h
+--- egcs-1.0.3a.orig/gcc/ginclude/sgidefs.h Wed Dec 31 16:00:00 1969
++++ egcs-1.0.3a/gcc/ginclude/sgidefs.h Sat Nov 4 08:57:04 2000
+@@ -0,0 +1,100 @@
++/*
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file "COPYING" in the main directory of this archive
++ * for more details.
++ *
++ * Copyright (C) 1996 by Ralf Baechle
++ *
++ * Definitions commonly used in SGI style code.
++ */
++#ifndef __ASM_SGIDEFS_H
++#define __ASM_SGIDEFS_H
++
++/*
++ * There are compilers out there that don't define _MIPS_ISA, _MIPS_SIM,
++ * _MIPS_SZINT, _MIPS_SZLONG, _MIPS_SZPTR. So we notify the user about this
++ * problem. The kernel sources are aware of this problem, so we don't warn
++ * when compiling the kernel.
++ */
++#if !defined(_MIPS_ISA) && !defined(__KERNEL__)
++#warning "Macro _MIPS_ISA has not been defined by specs file"
++#endif
++
++#if !defined(_MIPS_SIM) && !defined(__KERNEL__)
++#warning "Macro _MIPS_SIM has not been defined by specs file"
++#endif
++
++#if !defined(_MIPS_SZINT) && !defined(__KERNEL__)
++#warning "Macro _MIPS_SZINT has not been defined by specs file"
++#endif
++
++#if !defined(_MIPS_SZLONG) && !defined(__KERNEL__)
++#warning "Macro _MIPS_SZLONG has not been defined by specs file"
++#endif
++
++#if !defined(_MIPS_SZPTR) && !defined(__KERNEL__)
++#warning "Macro _MIPS_SZPTR has not been defined by specs file"
++#endif
++
++#if (!defined(_MIPS_ISA) || \
++ !defined(_MIPS_SIM) || \
++ !defined(_MIPS_SZINT) || \
++ !defined(_MIPS_SZLONG) || \
++ !defined(_MIPS_SZPTR)) && !defined(__KERNEL__)
++#warning "Please update your GCC to GCC 2.7.2-4 or newer"
++#endif
++
++/*
++ * Now let's try our best to supply some reasonable default values for
++ * whatever defines GCC didn't supply. This cannot be done correct for
++ * all possible combinations of options, so be careful with your options
++ * to GCC. Best bet is to keep your fingers off the a.out GCC and use
++ * ELF GCC 2.7.2-3 where possible.
++ */
++#ifndef _MIPS_ISA
++#if __mips == 1
++#define _MIPS_ISA _MIPS_ISA_MIPS1
++/* It is impossible to handle the -mips2 case correct. */
++#elif __mips == 3
++#define _MIPS_ISA _MIPS_ISA_MIPS3
++#elif __mips == 4
++#define _MIPS_ISA _MIPS_ISA_MIPS4
++#else /* __mips must be 5 */
++#define _MIPS_ISA _MIPS_ISA_MIPS5
++#endif
++#endif
++#ifndef _MIPS_SIM
++#define _MIPS_SIM _MIPS_SIM_ABI32
++#endif
++#ifndef _MIPS_SZINT
++#define _MIPS_SZINT 32
++#endif
++#ifndef _MIPS_SZLONG
++#define _MIPS_SZLONG 32
++#endif
++#ifndef _MIPS_SZPTR
++#define _MIPS_SZPTR 32
++#endif
++
++/*
++ * Definitions for the ISA level
++ */
++#define _MIPS_ISA_MIPS1 1
++#define _MIPS_ISA_MIPS2 2
++#define _MIPS_ISA_MIPS3 3
++#define _MIPS_ISA_MIPS4 4
++#define _MIPS_ISA_MIPS5 5
++
++/*
++ * Subprogram calling convention
++ *
++ * At the moment only _MIPS_SIM_ABI32 is in use. This will change rsn.
++ * Until GCC 2.8.0 is released don't rely on this definitions because the
++ * 64bit code is essentially using the 32bit interface model just with
++ * 64bit registers.
++ */
++#define _MIPS_SIM_ABI32 1
++#define _MIPS_SIM_NABI32 2
++#define _MIPS_SIM_ABI64 3
++
++#endif /* __ASM_SGIDEFS_H */
diff --git a/devel/mipsel-linux-egcs/files/specs b/devel/mipsel-linux-egcs/files/specs
new file mode 100644
index 000000000000..daf6b68a8726
--- /dev/null
+++ b/devel/mipsel-linux-egcs/files/specs
@@ -0,0 +1,100 @@
+*asm:
+%{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} %{mips4} %{mips16:%{!mno-mips16:-mips16}} %{mno-mips16:-no-mips16} %(subtarget_asm_optimizing_spec) %(subtarget_asm_debugging_spec) %{membedded-pic} %{mabi=32:-32}%{mabi=o32:-32}%{mabi=n32:-n32}%{mabi=64:-64}%{mabi=n64:-64} %(target_asm_spec) %(subtarget_asm_spec)
+
+*asm_final:
+%{mmips-as: %{!mno-mips-tfile:
+ mips-tfile %{v*: -v} %{K: -I %b.o~} %{!K: %{save-temps: -I %b.o~}} %{c:%W{o*}%{!o*:-o %b.o}}%{!c:-o %U.o} %{.s:%i} %{!.s:%g.s}}}
+
+*cpp:
+%{.cc: -D__LANGUAGE_C_PLUS_PLUS -D_LANGUAGE_C_PLUS_PLUS} %{.cxx: -D__LANGUAGE_C_PLUS_PLUS -D_LANGUAGE_C_PLUS_PLUS} %{.C: -D__LANGUAGE_C_PLUS_PLUS -D_LANGUAGE_C_PLUS_PLUS} %{.m: -D__LANGUAGE_OBJECTIVE_C -D_LANGUAGE_OBJECTIVE_C -D__LANGUAGE_C -D_LANGUAGE_C} %{.S: -D__LANGUAGE_ASSEMBLY -D_LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY}} %{.s: -D__LANGUAGE_ASSEMBLY -D_LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY}} %{!.S: %{!.s: %{!.cc: %{!.cxx: %{!.C: %{!.m: -D__LANGUAGE_C -D_LANGUAGE_C %{!ansi:-DLANGUAGE_C}}}}}}} %(subtarget_cpp_size_spec) %{mips3:-U__mips -D__mips=3 -D__mips64} %{mips4:-U__mips -D__mips=4 -D__mips64} %{mgp32:-U__mips64} %{mgp64:-D__mips64} %{msingle-float:%{!msoft-float:-D__mips_single_float}} %{m4650:%{!msoft-float:-D__mips_single_float}} %{msoft-float:-D__mips_soft_float} %{mabi=eabi:-D__mips_eabi} %{mips16:%{!mno-mips16:-D__mips16}} %{EB:-UMIPSEL -U_MIPSEL -U__MIPSEL -U__MIPSEL__ -D_MIPSEB -D__MIPSEB -D__MIPSEB__ %{!ansi:-DMIPSEB}} %{EL:-UMIPSEB -U_MIPSEB -U__MIPSEB -U__MIPSEB__ -D_MIPSEL -D__MIPSEL -D__MIPSEL__ %{!ansi:-DMIPSEL}} %(long_max_spec) %(subtarget_cpp_spec)
+
+*cc1:
+%{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} %{mips1:-mfp32 -mgp32} %{mips2:-mfp32 -mgp32}%{mips3:%{!msingle-float:%{!m4650:-mfp64}} -mgp64} %{mips4:%{!msingle-float:%{!m4650:-mfp64}} -mgp64} %{mfp64:%{msingle-float:%emay not use both -mfp64 and -msingle-float}} %{mfp64:%{m4650:%emay not use both -mfp64 and -m4650}} %{mint64|mlong64|mlong32:-mexplicit-type-size }%{m4650:-mcpu=r4650} %{m3900:-mips1 -mcpu=r3900 -mfp32 -mgp32} %{G*} %{EB:-meb} %{EL:-mel} %{EB:%{EL:%emay not use both -EB and -EL}} %{pic-none: -mno-half-pic} %{pic-lib: -mhalf-pic} %{pic-extern: -mhalf-pic} %{pic-calls: -mhalf-pic} %{save-temps: } %(subtarget_cc1_spec)
+
+*cc1plus:
+
+
+*endfile:
+%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s
+
+*link:
+%{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} %{mips4} %{bestGnum} %{shared} %{non_shared} %{call_shared} %{no_archive} %{exact_version} %{!shared: %{!static: %{rdynamic:-export-dynamic} %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} %{static:-static}}
+
+*lib:
+%{shared: -lc} %{!shared: %{mieee-fp:-lieee} %{pthread:-lpthread} %{profile:-lc_p} %{!profile: -lc}}
+
+*libgcc:
+-lgcc
+
+*startfile:
+%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:%{profile:gcrt1.o%s} %{!profile:crt1.o%s}}}} crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}
+
+*switches_need_spaces:
+
+
+*signed_char:
+%{funsigned-char:-D__CHAR_UNSIGNED__}
+
+*predefines:
+-D__ELF__ -D__PIC__ -D__pic__ -Dunix -Dmips -DR3000 -DMIPSEL -Dlinux -Asystem(linux) -Asystem(posix) -Acpu(mips) -Amachine(mips)
+
+*cross_compile:
+1
+
+*version:
+2.95.2
+
+*multilib:
+. !EL !EB !msoft-float;el EL !EB !msoft-float;eb !EL EB !msoft-float;soft-float !EL !EB msoft-float;el/soft-float EL !EB msoft-float;eb/soft-float !EL EB msoft-float;
+
+*multilib_defaults:
+EL
+
+*multilib_extra:
+
+
+*multilib_matches:
+EL EL;EB EB;msoft-float msoft-float;
+
+*linker:
+collect2
+
+*subtarget_cc1_spec:
+
+
+*subtarget_cpp_spec:
+%{!mfp32: %{!mfp64: -D_MIPS_FPSET=16}} %{mfp32: -D_MIPS_FPSET=16} %{mfp64: -D_MIPS_FPSET=32} %{mips1: -D_MIPS_ISA=_MIPS_ISA_MIPS1} %{mips2: -D_MIPS_ISA=_MIPS_ISA_MIPS2} %{mips3: -D_MIPS_ISA=_MIPS_ISA_MIPS3} %{mips4: -D_MIPS_ISA=_MIPS_ISA_MIPS4} %{!mips1: %{!mips2: %{!mips3: %{!mips4: -D_MIPS_ISA=_MIPS_ISA_MIPS1}}}} %{mabi=32: -D_MIPS_SIM=_MIPS_SIM_ABI32} %{mabi=n32: -D_ABIN32=2 -D_MIPS_SIM=_ABIN32} %{mabi=64: -D_ABI64=3 -D_MIPS_SIM=_ABI64} %{!mabi*: -D_MIPS_SIM=_MIPS_SIM_ABI32} %{mint64:-D_MIPS_SZINT=64 %{!mlong64:-D__SIZE_TYPE__=long\ unsigned\ int -D__SSIZE_TYPE__=long\ int -D__PTRDIFF_TYPE__=long\ int -D_MIPS_SZLONG=64 -D_MIPS_SZPTR=64}} %{!mint64:-D_MIPS_SZINT=32 %{!mlong64:-D__SIZE_TYPE__=unsigned\ int -D__SSIZE_TYPE__=int -D__PTRDIFF_TYPE__=int -D_MIPS_SZLONG=32 -D_MIPS_SZPTR=32}} %{mlong64:-D__SIZE_TYPE__=long\ unsigned\ int -D__SSIZE_TYPE__=long\ int -D__PTRDIFF_TYPE__=long\ int -D_MIPS_SZLONG=64 -D_MIPS_SZPTR=64} %{mabi=32: -D_MIPS_SZLONG=32} %{mabi=n32: -D_MIPS_SZLONG=32} %{mabi=64: -D_MIPS_SZLONG=64} %{!mabi*: -D_MIPS_SZLONG=32} %{mabi=32: -D_MIPS_SZPTR=32} %{mabi=n32: -D_MIPS_SZPTR=32} %{mabi=64: -D_MIPS_SZPTR=64} %{!mabi*: -D_MIPS_SZPTR=32} %{!mips*: -U__mips -D__mips} %{mabi=32: -U__mips64} %{mabi=n32: -D__mips64} %{mabi=64: -D__mips64} %{!mabi*: -U__mips64} %{fno-PIC:-U__PIC__ -U__pic__} %{fno-pic:-U__PIC__ -U__pic__} %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{!msoft-float: -D__HAVE_FPU__ } %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}
+
+*subtarget_cpp_size_spec:
+%{mlong64:%{!mips1:%{!mips2:-D__SIZE_TYPE__=long\ unsigned\ int -D__PTRDIFF_TYPE__=long\ int}}} %{!mlong64:-D__SIZE_TYPE__=unsigned\ int -D__PTRDIFF_TYPE__=int}
+
+*long_max_spec:
+%{mlong64:-D__SIZE_TYPE__=long\ unsigned\ int -D__PTRDIFF_TYPE__=long\ int -D__LONG_MAX__=9223372036854775807L} %{!mlong64:-D__SIZE_TYPE__=unsigned\ int -D__PTRDIFF_TYPE__=int}
+
+*mips_as_asm_spec:
+%{!.s:-nocpp} %{.s: %{cpp} %{nocpp}} %{pipe: %e-pipe is not supported.} %{K} %(subtarget_mips_as_asm_spec)
+
+*gas_asm_spec:
+%{mcpu=*} %{m4650} %{mmad:-m4650} %{m3900} %{v}
+
+*target_asm_spec:
+%{mmips-as: %(mips_as_asm_spec)} %{!mmips-as: %(gas_asm_spec)}
+
+*subtarget_mips_as_asm_spec:
+%{v}
+
+*subtarget_asm_optimizing_spec:
+%{noasmopt:-O0} %{!noasmopt:%{O:-O2} %{O1:-O2} %{O2:-O2} %{O3:-O3}}
+
+*subtarget_asm_debugging_spec:
+%{g} %{g0} %{g1} %{g2} %{g3} %{ggdb:-g} %{ggdb0:-g0} %{ggdb1:-g1} %{ggdb2:-g2} %{ggdb3:-g3} %{gstabs:-g} %{gstabs0:-g0} %{gstabs1:-g1} %{gstabs2:-g2} %{gstabs3:-g3} %{gstabs+:-g} %{gstabs+0:-g0} %{gstabs+1:-g1} %{gstabs+2:-g2} %{gstabs+3:-g3} %{gcoff:-g} %{gcoff0:-g0} %{gcoff1:-g1} %{gcoff2:-g2} %{gcoff3:-g3}
+
+*subtarget_asm_spec:
+%{!fno-PIC:%{!fno-pic:-KPIC}} %{fPIC:-KPIC} %{fpic:-KPIC} %{fno-PIC:-non_shared} %{fno-pic:-non_shared}
+
+*linker_endian_spec:
+%{!EB:%{!meb:-EL}}
+
+*link_command:
+%{!fsyntax-only: %{!c:%{!M:%{!MM:%{!E:%{!S:%(linker) %l %X %{o*} %{A} %{d} %{e*} %{m} %{N} %{n} %{r} %{s} %{t} %{u*} %{x} %{z} %{Z} %{!A:%{!nostdlib:%{!nostartfiles:%S}}} %{static:} %{L*} %D %o %{!nostdlib:%{!nodefaultlibs:%G %L %G}} %{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*}
+ }}}}}}