diff options
author | dinoex <dinoex@FreeBSD.org> | 2001-06-30 19:53:23 +0800 |
---|---|---|
committer | dinoex <dinoex@FreeBSD.org> | 2001-06-30 19:53:23 +0800 |
commit | bf0e41d95092e690d93b7a605dd555870d37f10e (patch) | |
tree | f031dcbee61029b0614926aaae2cc584f8d275b9 /devel/mipsel-linux-egcs/files | |
parent | 256454b6695275e9d915887df5f3a52ce6d8821b (diff) | |
download | freebsd-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-mips | 1748 | ||||
-rw-r--r-- | devel/mipsel-linux-egcs/files/patch-bb-mips-softfloat-2 | 54 | ||||
-rw-r--r-- | devel/mipsel-linux-egcs/files/patch-cc-sgidefs | 142 | ||||
-rw-r--r-- | devel/mipsel-linux-egcs/files/specs | 100 |
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*} + }}}}}} |