Annotation of gcc/config/m68k/dpx2g.h, revision 1.1.1.3

1.1       root        1: /*
                      2:  * dpx2g.h - Bull DPX/2 200 and 300 systems (m68k, SysVr3) with gas
                      3:  */
                      4: 
                      5: #define USE_GAS
                      6: #include "m68k/dpx2.h"
                      7: 
1.1.1.3 ! root        8: #if 0 /* #ifndef USE_COLLECT2 */
        !             9: 
1.1       root       10: /* We use set vectors for the constructors/destructors. */ 
                     11: 
                     12: #undef ASM_OUTPUT_CONSTRUCTOR
                     13: #undef ASM_OUTPUT_DESTRUCTOR
                     14: 
                     15: /* Although the gas we use can create .ctor and .dtor sections from N_SETT
                     16:    stabs, it does not support section directives, so we need to have the loader
                     17:    define the lists.
                     18:  */
                     19: #define CTOR_LISTS_DEFINED_EXTERNALLY
                     20: 
                     21: /* similar to default, but allows for the table defined by ld with gcc.ifile. 
                     22:    nptrs is always 0.  So we need to instead check that __DTOR_LIST__[1] != 0.
                     23:    The old check is left in so that the same macro can be used if and when  
                     24:    a future version of gas does support section directives. */
                     25: 
                     26: #define DO_GLOBAL_DTORS_BODY {int nptrs = *(int *)__DTOR_LIST__; int i; \
                     27:   if (nptrs == -1 || (__DTOR_LIST__[0] == 0 && __DTOR_LIST__[1] != 0))  \
                     28:     for (nptrs = 0; __DTOR_LIST__[nptrs + 1] != 0; nptrs++);           \
                     29:   for (i = nptrs; i >= 1; i--)                                         \
                     30:     __DTOR_LIST__[i] (); }
                     31: 
                     32: #undef STARTFILE_SPEC
                     33: #define STARTFILE_SPEC \
                     34:   "%{!r:gcc.ifile%s}\
                     35:    %{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}\
                     36:   huge.o%s"
                     37: 
1.1.1.3 ! root       38: #endif /* !USE_COLLECT2 */
1.1       root       39: 
                     40: #undef STARTFILE_SPEC
                     41: #define STARTFILE_SPEC \
                     42:   "%{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}\
                     43:   huge.o%s"
                     44: 
                     45: 
                     46: /*
                     47:  * we are using GAS
                     48:  */
                     49: #undef EXTRA_SECTION_FUNCTIONS
                     50: #undef EXTRA_SECTIONS
                     51: /* Gas understands dollars in labels. */
                     52: #undef NO_DOLLAR_IN_LABEL
                     53: /* GAS does not understand .ident so don't output anything for #ident.  */
                     54: #undef ASM_OUTPUT_IDENT
                     55: 
1.1.1.2   root       56: #undef ASM_LONG
                     57: #define ASM_LONG "\t.long"
                     58: 
1.1       root       59: /*
                     60:  * put const's in the text section
                     61:  */
                     62: #define const_section()  text_section()
                     63: #define fini_section() while (0)
                     64:                               
                     65: #undef CTORS_SECTION_ASM_OP
                     66: #define CTORS_SECTION_ASM_OP "\t.data"
                     67: #undef DTORS_SECTION_ASM_OP
                     68: #define DTORS_SECTION_ASM_OP "\t.data"
                     69: #undef INIT_SECTION_ASM_OP
                     70: 
                     71: /* end of dpx2g.h */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.