(NO_DOLLAR_IN_LABEL): Undef because gas understands dollars in labels and gdb expects...
authorRichard Stallman <rms@gnu.org>
Tue, 6 Oct 1992 00:26:09 +0000 (00:26 +0000)
committerRichard Stallman <rms@gnu.org>
Tue, 6 Oct 1992 00:26:09 +0000 (00:26 +0000)
(NO_DOLLAR_IN_LABEL): Undef because gas understands dollars
in labels and gdb expects them if configured for gas.
(STARTFILE_SPEC): Include huge.o to be compatible with native cc.
(ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
(CTOR_LISTS_DEFINED_EXTERNALLY, DO_GLOBAL_DTORS_BODY):
(STARTFILE_SPEC): Conditionally redefine for a collectless version
of gcc if USE_COLLECT2 is not defined.

From-SVN: r2335

gcc/config/m68k/dpx2g.h

index 40bc58ed6f91afba1287dfd5867f9441b9c0b142..5e801245660ea946697163e28374568cbdf3ea8a 100644 (file)
@@ -5,6 +5,44 @@
 #define USE_GAS
 #include "dpx2.h"
 
+#ifndef USE_COLLECT2
+/* We use set vectors for the constructors/destructors. */ 
+
+#undef ASM_OUTPUT_CONSTRUCTOR
+#undef ASM_OUTPUT_DESTRUCTOR
+
+/* Although the gas we use can create .ctor and .dtor sections from N_SETT
+   stabs, it does not support section directives, so we need to have the loader
+   define the lists.
+ */
+#define CTOR_LISTS_DEFINED_EXTERNALLY
+
+/* similar to default, but allows for the table defined by ld with gcc.ifile. 
+   nptrs is always 0.  So we need to instead check that __DTOR_LIST__[1] != 0.
+   The old check is left in so that the same macro can be used if and when  
+   a future version of gas does support section directives. */
+
+#define DO_GLOBAL_DTORS_BODY {int nptrs = *(int *)__DTOR_LIST__; int i; \
+  if (nptrs == -1 || (__DTOR_LIST__[0] == 0 && __DTOR_LIST__[1] != 0))  \
+    for (nptrs = 0; __DTOR_LIST__[nptrs + 1] != 0; nptrs++);           \
+  for (i = nptrs; i >= 1; i--)                                         \
+    __DTOR_LIST__[i] (); }
+
+#undef STARTFILE_SPEC
+#define STARTFILE_SPEC \
+  "%{!r:gcc.ifile%s}\
+   %{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}\
+  huge.o%s"
+
+#else /* !USE_COLLECT2 */
+
+#undef STARTFILE_SPEC
+#define STARTFILE_SPEC \
+  "%{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}\
+  huge.o%s"
+
+#endif /* !USE_COLLECT2 */
+
 
 /* GAS want's DBX debugging information.  */
 #undef SDB_DEBUGGING_INFO
  */
 #undef EXTRA_SECTION_FUNCTIONS
 #undef EXTRA_SECTIONS
-
+/* Gas understands dollars in labels. */
+#undef NO_DOLLAR_IN_LABEL
 /* GAS does not understand .ident so don't output anything for #ident.  */
 #undef ASM_OUTPUT_IDENT
 
-/* Put const's in the text section.  */
+/*
+ * put const's in the text section
+ */
 #define const_section()  text_section()
 #define fini_section() while (0)