Wed Apr 14 10:48:03 1999 Catherine Moore <clm@cygnus.com>
authorCatherine Moore <clm@cygnus.com>
Wed, 14 Apr 1999 10:46:50 +0000 (10:46 +0000)
committerCatherine Moore <clm@gcc.gnu.org>
Wed, 14 Apr 1999 10:46:50 +0000 (06:46 -0400)
        * config/mips/elf.h, config/mips/elf64.h
        (CTORS_SECTION_ASM_OP): Define.
        (DTORS_SECTION_ASM_OP): Define.
        (EXTRA_SECTIONS): Define.
        (INVOKE__main): Define.
        (NAME__MAIN): Define.
        (SYMBOL__MAIN): Define.
        (EXTRA_SECTIONS_FUNCTIONS): Define.
        (SECTION_FUNCTION_TEMPLATE): Define.
        (ASM_OUTPUT_CONSTRUCTOR): Define.
        (ASM_OUTPUT_DESTRUCTOR): Define.
        (CTOR_LIST_BEGIN): Define.
        (CTOR_LIST_END): Define.
        (DTOR_LIST_BEGIN): Define.
        (DTOR_LIST_END): Define.
        (LIB_SPEC): Define.
        (STARTFILE_SPEC): Define.
        (ENDFILE_SPEC): Define.
        * config/mips/linux.h:  Undefine all of the above.
        * config/mips/rtems64.h: Likewise.
        * config/mips/t-r3900: Likewise.
        * config/mips/t-elf: New file.
        * config/mips/vxworks.h: New file.
        * configure.in (mips-wrs-vxworks): Use mips/vxworks.h.
        (mips*-*-*elf*):  Use t-elf instead of t-ecoff.
        * configure: Regenerate.

From-SVN: r26446

gcc/ChangeLog
gcc/config/mips/elf.h
gcc/config/mips/elf64.h
gcc/config/mips/linux.h
gcc/config/mips/rtems64.h
gcc/config/mips/t-elf [new file with mode: 0644]
gcc/config/mips/t-r3900
gcc/config/mips/vxworks.h [new file with mode: 0644]
gcc/configure
gcc/configure.in

index 7c87db75add81710be9cf9c596b5bb11a720c413..0e971bc18f4a443901df310aca7cf7480859733d 100644 (file)
@@ -1,3 +1,32 @@
+Wed Apr 14 10:48:03 1999  Catherine Moore  <clm@cygnus.com>
+        * config/mips/elf.h, config/mips/elf64.h
+        (CTORS_SECTION_ASM_OP): Define.
+        (DTORS_SECTION_ASM_OP): Define.
+        (EXTRA_SECTIONS): Define.
+        (INVOKE__main): Define.
+        (NAME__MAIN): Define.
+        (SYMBOL__MAIN): Define.
+        (EXTRA_SECTIONS_FUNCTIONS): Define.
+        (SECTION_FUNCTION_TEMPLATE): Define.
+        (ASM_OUTPUT_CONSTRUCTOR): Define.
+        (ASM_OUTPUT_DESTRUCTOR): Define.
+        (CTOR_LIST_BEGIN): Define.
+        (CTOR_LIST_END): Define.
+        (DTOR_LIST_BEGIN): Define.
+        (DTOR_LIST_END): Define.
+        (LIB_SPEC): Define.
+        (STARTFILE_SPEC): Define.
+        (ENDFILE_SPEC): Define.
+        * config/mips/linux.h:  Undefine all of the above.
+        * config/mips/rtems64.h: Likewise.
+        * config/mips/t-r3900: Likewise.
+        * config/mips/t-elf: New file.
+        * config/mips/vxworks.h: New file.
+        * configure.in (mips-wrs-vxworks): Use mips/vxworks.h.
+        (mips*-*-*elf*):  Use t-elf instead of t-ecoff.
+        * configure: Regenerate.
+
 Wed Apr 14 09:59:38 1999  Richard Henderson  <rth@cygnus.com>
 
        * reload1.c (emit_reload_insns): Also find equivalent mems
index 1364e2a049d17a9dc11480e0984c05150f786568..c6ec87179e5a3f7e4e4f8adc159212c979910713 100644 (file)
@@ -1,6 +1,6 @@
 /* Definitions of target machine for GNU compiler.  MIPS R3000 version with
    GOFAST floating point library.
-   Copyright (C) 1994, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1994, 1997, 1999 Free Software Foundation, Inc.
 
 This file is part of GNU CC.
 
@@ -232,3 +232,97 @@ do {                                                                          \
                                                                           \
   DECL_SECTION_NAME (DECL) = build_string (len, string);                  \
 } while (0)
+
+/* Support the ctors/dtors and other sections.  */
+/* Define the pseudo-ops used to switch to the .ctors and .dtors sections.
+   Note that we want to give these sections the SHF_WRITE attribute
+   because these sections will actually contain data (i.e. tables of
+   addresses of functions in the current root executable or shared library
+   file) and, in the case of a shared library, the relocatable addresses
+   will have to be properly resolved/relocated (and then written into) by
+   the dynamic linker when it actually attaches the given shared library
+   to the executing process.  (Note that on SVR4, you may wish to use the
+   `-z text' option to the ELF linker, when building a shared library, as
+   an additional check that you are doing everything right.  But if you do
+   use the `-z text' option when building a shared library, you will get
+   errors unless the .ctors and .dtors sections are marked as writable
+   via the SHF_WRITE attribute.)  */
+
+#define CTORS_SECTION_ASM_OP    "\t.section\t.ctors,\"aw\""
+#define DTORS_SECTION_ASM_OP    "\t.section\t.dtors,\"aw\""
+/* A list of other sections which the compiler might be "in" at any
+   given time.  */
+#undef EXTRA_SECTIONS
+#define EXTRA_SECTIONS in_sdata, in_rdata, in_ctors, in_dtors
+#define INVOKE__main
+#define NAME__MAIN "__gccmain"
+#define SYMBOL__MAIN __gccmain
+
+#undef EXTRA_SECTION_FUNCTIONS
+#define EXTRA_SECTION_FUNCTIONS                                         \
+  SECTION_FUNCTION_TEMPLATE(sdata_section, in_sdata, SDATA_SECTION_ASM_OP) \
+  SECTION_FUNCTION_TEMPLATE(rdata_section, in_rdata, RDATA_SECTION_ASM_OP) \
+  SECTION_FUNCTION_TEMPLATE(ctors_section, in_ctors, CTORS_SECTION_ASM_OP) \
+  SECTION_FUNCTION_TEMPLATE(dtors_section, in_dtors, DTORS_SECTION_ASM_OP)
+
+#define SECTION_FUNCTION_TEMPLATE(FN, ENUM, OP)                               \
+void FN ()                                                            \
+{                                                                     \
+  if (in_section != ENUM)                                             \
+    {                                                                 \
+      fprintf (asm_out_file, "%s\n", OP);                             \
+      in_section = ENUM;                                              \
+    }                                                                 \
+}
+
+
+/* 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", TARGET_LONG64 ? ".dword" : ".word");     \
+    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", TARGET_LONG64 ? ".dword" : ".word");     \
+    assemble_name (FILE, NAME);                                       \
+    fprintf (FILE, "\n");                                             \
+  } while (0)
+
+#define CTOR_LIST_BEGIN                                 \
+asm (CTORS_SECTION_ASM_OP);                             \
+func_ptr __CTOR_LIST__[1] = { (func_ptr) (-1) }
+#define CTOR_LIST_END                                   \
+asm (CTORS_SECTION_ASM_OP);                             \
+func_ptr __CTOR_END__[1] = { (func_ptr) 0 };
+#define DTOR_LIST_BEGIN                                 \
+asm (DTORS_SECTION_ASM_OP);                             \
+func_ptr __DTOR_LIST__[1] = { (func_ptr) (-1) }
+
+#define DTOR_LIST_END                                   \
+asm (DTORS_SECTION_ASM_OP);                             \
+func_ptr __DTOR_END__[1] = { (func_ptr) 0 };
+
+/* Don't set the target flags, this is done by the linker script */
+#undef LIB_SPEC
+#define LIB_SPEC ""
+
+#undef  STARTFILE_SPEC
+#define STARTFILE_SPEC "crtbegin%O%s crt0%O%s"
+
+#undef  ENDFILE_SPEC
+#define ENDFILE_SPEC "crtend%O%s"
index b6cf3721c777f63b1400a843246cfeaa5a5f4ada..cb02f9c365f5b893134f9d75dd755bbc88e37d47 100644 (file)
@@ -1,6 +1,6 @@
 /* Definitions of target machine for GNU compiler.  MIPS R4000 version with
    GOFAST floating point library.
-   Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1994, 1995, 1996, 1997, 1999 Free Software Foundation, Inc.
 
 This file is part of GNU CC.
 
@@ -256,3 +256,97 @@ do {                                                                          \
                                                                           \
   DECL_SECTION_NAME (DECL) = build_string (len, string);                  \
 } while (0)
+
+/* Support the ctors/dtors and other sections.  */
+/* Define the pseudo-ops used to switch to the .ctors and .dtors sections.
+   Note that we want to give these sections the SHF_WRITE attribute
+   because these sections will actually contain data (i.e. tables of
+   addresses of functions in the current root executable or shared library
+   file) and, in the case of a shared library, the relocatable addresses
+   will have to be properly resolved/relocated (and then written into) by
+   the dynamic linker when it actually attaches the given shared library
+   to the executing process.  (Note that on SVR4, you may wish to use the
+   `-z text' option to the ELF linker, when building a shared library, as
+   an additional check that you are doing everything right.  But if you do
+   use the `-z text' option when building a shared library, you will get
+   errors unless the .ctors and .dtors sections are marked as writable
+   via the SHF_WRITE attribute.)  */
+
+#define CTORS_SECTION_ASM_OP    "\t.section\t.ctors,\"aw\""
+#define DTORS_SECTION_ASM_OP    "\t.section\t.dtors,\"aw\""
+/* A list of other sections which the compiler might be "in" at any
+   given time.  */
+#undef EXTRA_SECTIONS
+#define EXTRA_SECTIONS in_sdata, in_rdata, in_ctors, in_dtors
+#define INVOKE__main
+#define NAME__MAIN "__gccmain"
+#define SYMBOL__MAIN __gccmain
+
+#undef EXTRA_SECTION_FUNCTIONS
+#define EXTRA_SECTION_FUNCTIONS                                         \
+  SECTION_FUNCTION_TEMPLATE(sdata_section, in_sdata, SDATA_SECTION_ASM_OP) \
+  SECTION_FUNCTION_TEMPLATE(rdata_section, in_rdata, RDATA_SECTION_ASM_OP) \
+  SECTION_FUNCTION_TEMPLATE(ctors_section, in_ctors, CTORS_SECTION_ASM_OP) \
+  SECTION_FUNCTION_TEMPLATE(dtors_section, in_dtors, DTORS_SECTION_ASM_OP)
+
+#define SECTION_FUNCTION_TEMPLATE(FN, ENUM, OP)                               \
+void FN ()                                                            \
+{                                                                     \
+  if (in_section != ENUM)                                             \
+    {                                                                 \
+      fprintf (asm_out_file, "%s\n", OP);                             \
+      in_section = ENUM;                                              \
+    }                                                                 \
+}
+
+
+/* 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", TARGET_LONG64 ? ".dword" : ".word");     \
+    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", TARGET_LONG64 ? ".dword" : ".word");     \
+    assemble_name (FILE, NAME);                                       \
+    fprintf (FILE, "\n");                                             \
+  } while (0)
+
+#define CTOR_LIST_BEGIN                                 \
+asm (CTORS_SECTION_ASM_OP);                             \
+func_ptr __CTOR_LIST__[1] = { (func_ptr) (-1) }
+#define CTOR_LIST_END                                   \
+asm (CTORS_SECTION_ASM_OP);                             \
+func_ptr __CTOR_END__[1] = { (func_ptr) 0 };
+#define DTOR_LIST_BEGIN                                 \
+asm (DTORS_SECTION_ASM_OP);                             \
+func_ptr __DTOR_LIST__[1] = { (func_ptr) (-1) }
+
+#define DTOR_LIST_END                                   \
+asm (DTORS_SECTION_ASM_OP);                             \
+func_ptr __DTOR_END__[1] = { (func_ptr) 0 };
+
+/* Don't set the target flags, this is done by the linker script */
+#undef LIB_SPEC
+#define LIB_SPEC ""
+
+#undef  STARTFILE_SPEC
+#define STARTFILE_SPEC "crtbegin%O%s crt0%O%s"
+
+#undef  ENDFILE_SPEC
+#define ENDFILE_SPEC "crtend%O%s"
index e780a4bb3b8a5492bb5195aa989b261357e1911d..f4ed424a60564a6d3667227d5b711f1b06129537 100644 (file)
@@ -68,3 +68,32 @@ Boston, MA 02111-1307, USA.  */
 
 #undef SUBTARGET_ASM_SPEC
 #define SUBTARGET_ASM_SPEC "-KPIC"
+
+/* Undefine the following which were defined in elf.h.  This will cause the linux
+   port to continue to use collect2 for constructors/destructors.  These may be removed
+   when .ctor/.dtor section support is desired. */
+
+#undef CTORS_SECTION_ASM_OP
+#undef DTORS_SECTION_ASM_OP
+
+#undef EXTRA_SECTIONS
+#define EXTRA_SECTIONS in_sdata, in_rdata
+
+#undef INVOKE__main
+#undef NAME__MAIN
+#undef SYMBOL__MAIN
+
+#undef EXTRA_SECTION_FUNCTIONS
+#define EXTRA_SECTION_FUNCTIONS                                         \
+  SECTION_FUNCTION_TEMPLATE(sdata_section, in_sdata, SDATA_SECTION_ASM_OP) \
+  SECTION_FUNCTION_TEMPLATE(rdata_section, in_rdata, RDATA_SECTION_ASM_OP)
+
+#undef ASM_OUTPUT_CONSTRUCTOR
+#undef ASM_OUTPUT_DESTRUCTOR
+
+#undef CTOR_LIST_BEGIN
+#undef CTOR_LIST_END
+#undef DTOR_LIST_BEGIN
+#undef DTOR_LIST_END
+
+/*  End of undefines to turn off .ctor/.dtor section support */
index 42c7a65cb40f9ea3604035e5884a478da7ca0909..cd799708638517125761a721ef8984c2608d9123 100644 (file)
@@ -1,5 +1,5 @@
 /* Definitions for rtems targeting a MIPS ORION using ecoff.
-   Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
    Contributed by Joel Sherrill (joel@OARcorp.com).
 
 This file is part of GNU CC.
@@ -29,3 +29,35 @@ Boston, MA 02111-1307, USA.  */
 #ifndef TARGET_MEM_FUNCTIONS
 #define TARGET_MEM_FUNCTIONS
 #endif
+
+/* Undefine the following which were defined in elf64.h.  This will cause the rtems64
+   port to continue to use collect2 for constructors/destructors.  These may be removed
+   when .ctor/.dtor section support is desired. */
+
+#undef CTORS_SECTION_ASM_OP
+#undef DTORS_SECTION_ASM_OP
+
+#undef EXTRA_SECTIONS
+#define EXTRA_SECTIONS in_sdata, in_rdata
+
+#undef INVOKE__main
+#undef NAME__MAIN
+#undef SYMBOL__MAIN
+
+#undef EXTRA_SECTION_FUNCTIONS
+#define EXTRA_SECTION_FUNCTIONS                                         \
+  SECTION_FUNCTION_TEMPLATE(sdata_section, in_sdata, SDATA_SECTION_ASM_OP) \
+  SECTION_FUNCTION_TEMPLATE(rdata_section, in_rdata, RDATA_SECTION_ASM_OP)
+
+#undef ASM_OUTPUT_CONSTRUCTOR
+#undef ASM_OUTPUT_DESTRUCTOR
+
+#undef CTOR_LIST_BEGIN
+#undef CTOR_LIST_END
+#undef DTOR_LIST_BEGIN
+#undef DTOR_LIST_END
+
+#undef STARTFILE_SPEC
+#undef ENDFILE_SPEC
+
+/*  End of undefines to turn off .ctor/.dtor section support */
diff --git a/gcc/config/mips/t-elf b/gcc/config/mips/t-elf
new file mode 100644 (file)
index 0000000..dd01b7f
--- /dev/null
@@ -0,0 +1,96 @@
+CONFIG2_H      = $(srcdir)/config/mips/ecoff.h
+
+# We have a premade insn-attrtab.c to save the hour it takes to run genattrtab.
+# PREMADE_ATTRTAB = $(srcdir)/config/mips/mips-at.c
+# PREMADE_ATTRTAB_MD = $(srcdir)/config/mips/mips-at.md
+
+# Suppress building libgcc1.a, since the MIPS compiler port is complete
+# and does not need anything from libgcc1.a.
+LIBGCC1 =
+
+EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o
+# Don't let CTOR_LIST end up in sdata section.
+CRTSTUFF_T_CFLAGS = -G 0
+
+# When building a cross compiler, put the mips16 support functions in
+# libgcc1.a.
+CROSS_LIBGCC1 = libgcc1-asm.a
+LIB1ASMSRC = mips/mips16.S
+LIB1ASMFUNCS = _m16addsf3 _m16subsf3 _m16mulsf3 _m16divsf3 \
+       _m16eqsf2 _m16nesf2 _m16gtsf2 _m16gesf2 _m16lesf2 _m16ltsf2 \
+       _m16fltsisf _m16fixsfsi \
+       _m16adddf3 _m16subdf3 _m16muldf3 _m16divdf3 \
+       _m16extsfdf2 _m16trdfsf2 \
+       _m16eqdf2 _m16nedf2 _m16gtdf2 _m16gedf2 _m16ledf2 _m16ltdf2 \
+       _m16fltsidf _m16fixdfsi \
+       _m16retsf _m16retdf \
+       _m16stub1 _m16stub2 _m16stub5 _m16stub6 _m16stub9 _m16stub10 \
+       _m16stubsf0 _m16stubsf1 _m16stubsf2 _m16stubsf5 _m16stubsf6 \
+       _m16stubsf9 _m16stubsf10 \
+       _m16stubdf0 _m16stubdf1 _m16stubdf2 _m16stubdf5 _m16stubdf6 \
+       _m16stubdf9 _m16stubdf10
+
+# We must build libgcc2.a with -G 0, in case the user wants to link
+# without the $gp register.
+TARGET_LIBGCC2_CFLAGS = -G 0
+
+# fp-bit and dp-bit 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
+
+# Build the libraries for both hard and soft floating point
+
+MULTILIB_OPTIONS = msoft-float/msingle-float EL/EB mips1/mips3
+MULTILIB_DIRNAMES = soft-float single el eb mips1 mips3
+MULTILIB_MATCHES = msingle-float=m4650
+
+LIBGCC = stmp-multilib
+INSTALL_LIBGCC = install-multilib
+
+# Add additional dependencies to recompile selected modules whenever the
+# tm.h file changes.  The files compiled are:
+#
+#      gcc.c           (*_SPEC changes)
+#      toplev.c        (new switches + assembly output changes)
+#      sdbout.c        (debug format changes)
+#      dbxout.c        (debug format changes)
+#      dwarfout.c      (debug format changes)
+#      final.c         (assembly output changes)
+#      varasm.c        (assembly output changes)
+#      cse.c           (cost functions)
+#      insn-output.c   (possible ifdef changes in tm.h)
+#      regclass.c      (fixed/call used register changes)
+#      cccp.c          (new preprocessor macros, -v version #)
+#      explow.c        (GO_IF_LEGITIMATE_ADDRESS)
+#      recog.c         (GO_IF_LEGITIMATE_ADDRESS)
+#      reload.c        (GO_IF_LEGITIMATE_ADDRESS)
+
+gcc.o: $(CONFIG2_H)
+toplev.o: $(CONFIG2_H)
+sdbout.o: $(CONFIG2_H)
+dbxout.o: $(CONFIG2_H)
+dwarfout.o: $(CONFIG2_H)
+final.o: $(CONFIG2_H)
+varasm.o: $(CONFIG2_H)
+cse.o: $(CONFIG2_H)
+insn-output.o: $(CONFIG2_H)
+regclass.o: $(CONFIG2_H)
+cccp.o: $(CONFIG2_H)
+explow.o: $(CONFIG2_H)
+recog.o: $(CONFIG2_H)
+reload.o: $(CONFIG2_H)
index 40da3354258d6872baafc34d605f43e6db343574..055143ff05c781a11122d9e21c366d095126f7de 100644 (file)
@@ -49,6 +49,10 @@ fp-bit.c: $(srcdir)/config/fp-bit.c
        echo '#define US_SOFTWARE_GOFAST' >> fp-bit.c
        cat $(srcdir)/config/fp-bit.c >> fp-bit.c
 
+EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o
+# Don't let CTOR_LIST end up in sdata section.
+CRTSTUFF_T_CFLAGS = -G 0
+
 # Build the libraries for both hard and soft floating point
 
 MULTILIB_OPTIONS = msoft-float/msingle-float EL/EB
diff --git a/gcc/config/mips/vxworks.h b/gcc/config/mips/vxworks.h
new file mode 100644 (file)
index 0000000..0856c37
--- /dev/null
@@ -0,0 +1,50 @@
+/* Copyright (C) 1999 Free Software Foundation, Inc. */
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+/* Undefine the following which were defined in elf.h.  Thise will cause the mips-vxworks
+   port to continue to use collect2 for constructors/destructors.  This entire file may
+   be removed when .ctor/.dtor section support is desired. */
+
+#undef CTORS_SECTION_ASM_OP
+#undef DTORS_SECTION_ASM_OP
+
+#undef EXTRA_SECTIONS
+#define EXTRA_SECTIONS in_sdata, in_rdata
+
+#undef INVOKE__main
+#undef NAME__MAIN
+#undef SYMBOL__MAIN
+
+#undef EXTRA_SECTION_FUNCTIONS
+#define EXTRA_SECTION_FUNCTIONS                                         \
+  SECTION_FUNCTION_TEMPLATE(sdata_section, in_sdata, SDATA_SECTION_ASM_OP) \
+  SECTION_FUNCTION_TEMPLATE(rdata_section, in_rdata, RDATA_SECTION_ASM_OP)
+
+#undef ASM_OUTPUT_CONSTRUCTOR
+#undef ASM_OUTPUT_DESTRUCTOR
+
+#undef CTOR_LIST_BEGIN
+#undef CTOR_LIST_END
+#undef DTOR_LIST_BEGIN
+#undef DTOR_LIST_END
+
+#undef STARTFILE_SPEC
+#undef ENDFILE_SPEC
+
+/*  End of undefines to turn off .ctor/.dtor section support */
index 53e28e6ad98171d91e0b535c4f3b08f0e9abbe5c..8c3a82a3a9504fc9f6e655c8399639c7ab999a51 100755 (executable)
@@ -4434,7 +4434,7 @@ for machine in $build $host $target; do
 #              fi
                ;;
        mips-wrs-vxworks)
-               tm_file="mips/elf.h libgloss.h"
+               tm_file="mips/elf.h libgloss.h mips/vxworks.h"
                tmake_file=mips/t-ecoff
                gas=yes
                gnu_ld=yes
@@ -4841,38 +4841,38 @@ for machine in $build $host $target; do
                ;;
        mipsel-*-elf*)
                tm_file="mips/elfl.h libgloss.h"
-               tmake_file=mips/t-ecoff
+               tmake_file=mips/t-elf
                ;;
        mips-*-elf*)
-               tm_file="mips/elf.h libgloss.h"
-               tmake_file=mips/t-ecoff
+               tm_file="mips/elf.h"
+               tmake_file=mips/t-elf
                ;;
        mips64el-*-elf*)
-               tm_file="mips/elfl64.h libgloss.h"
-               tmake_file=mips/t-ecoff
+               tm_file="mips/elfl64.h"
+               tmake_file=mips/t-elf
                ;;
        mips64orionel-*-elf*)
                tm_file="mips/elforion.h mips/elfl64.h libgloss.h"
-               tmake_file=mips/t-ecoff
+               tmake_file=mips/t-elf
                ;;
        mips64-*-elf*)
-               tm_file="mips/elf64.h libgloss.h"
-               tmake_file=mips/t-ecoff
+               tm_file="mips/elf64.h"
+               tmake_file=mips/t-elf
                ;;
        mips64orion-*-elf*)
                tm_file="mips/elforion.h mips/elf64.h libgloss.h"
-               tmake_file=mips/t-ecoff
+               tmake_file=mips/t-elf
                ;;
        mips64orion-*-rtems*)
                tm_file="mips/elforion.h mips/elf64.h mips/rtems64.h"
                tmake_file="mips/t-ecoff t-rtems"
                ;;
        mipstx39el-*-elf*)
-               tm_file="mips/r3900.h mips/elfl.h mips/abi64.h libgloss.h"
+               tm_file="mips/r3900.h mips/elfl.h mips/abi64.h"
                tmake_file=mips/t-r3900
                ;;
        mipstx39-*-elf*)
-               tm_file="mips/r3900.h mips/elf.h mips/abi64.h libgloss.h"
+               tm_file="mips/r3900.h mips/elf.h mips/abi64.h"
                tmake_file=mips/t-r3900
                # FIXME mips-elf should be fixed to use crtstuff.
                use_collect2=yes
index 834d8d2e84c08f5c7efbc8412c70a73bb5985863..464e89568921fc5533ecc9b94d9e813aee41c57f 100644 (file)
@@ -2166,7 +2166,7 @@ changequote([,])dnl
 #              fi
                ;;
        mips-wrs-vxworks)
-               tm_file="mips/elf.h libgloss.h"
+               tm_file="mips/elf.h libgloss.h mips/vxworks.h"
                tmake_file=mips/t-ecoff
                gas=yes
                gnu_ld=yes
@@ -2585,41 +2585,39 @@ changequote([,])dnl
                ;;
        mipsel-*-elf*)
                tm_file="mips/elfl.h libgloss.h"
-               tmake_file=mips/t-ecoff
+               tmake_file=mips/t-elf
                ;;
        mips-*-elf*)
-               tm_file="mips/elf.h libgloss.h"
-               tmake_file=mips/t-ecoff
+               tm_file="mips/elf.h"
+               tmake_file=mips/t-elf
                ;;
        mips64el-*-elf*)
-               tm_file="mips/elfl64.h libgloss.h"
-               tmake_file=mips/t-ecoff
+               tm_file="mips/elfl64.h"
+               tmake_file=mips/t-elf
                ;;
        mips64orionel-*-elf*)
                tm_file="mips/elforion.h mips/elfl64.h libgloss.h"
-               tmake_file=mips/t-ecoff
+               tmake_file=mips/t-elf
                ;;
        mips64-*-elf*)
-               tm_file="mips/elf64.h libgloss.h"
-               tmake_file=mips/t-ecoff
+               tm_file="mips/elf64.h"
+               tmake_file=mips/t-elf
                ;;
        mips64orion-*-elf*)
                tm_file="mips/elforion.h mips/elf64.h libgloss.h"
-               tmake_file=mips/t-ecoff
+               tmake_file=mips/t-elf
                ;;
        mips64orion-*-rtems*)
                tm_file="mips/elforion.h mips/elf64.h mips/rtems64.h"
                tmake_file="mips/t-ecoff t-rtems"
                ;;
        mipstx39el-*-elf*)
-               tm_file="mips/r3900.h mips/elfl.h mips/abi64.h libgloss.h"
+               tm_file="mips/r3900.h mips/elfl.h mips/abi64.h"
                tmake_file=mips/t-r3900
                ;;
        mipstx39-*-elf*)
-               tm_file="mips/r3900.h mips/elf.h mips/abi64.h libgloss.h"
+               tm_file="mips/r3900.h mips/elf.h mips/abi64.h"
                tmake_file=mips/t-r3900
-               # FIXME mips-elf should be fixed to use crtstuff.
-               use_collect2=yes
                ;;
        mips-*-*)                               # Default MIPS RISC-OS 4.0.
                if test x$stabs = xyes; then