00e501d1bc
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
1749 lines
62 KiB
Plaintext
1749 lines
62 KiB
Plaintext
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
|