|
|
1.1 ! root 1: /* Definitions for IBM PS2 running AIX/386. ! 2: From: Minh Tran-Le <[email protected]> ! 3: Copyright (C) 1988 Free Software Foundation, Inc. ! 4: ! 5: This file is part of GNU CC. ! 6: ! 7: GNU CC is free software; you can redistribute it and/or modify ! 8: it under the terms of the GNU General Public License as published by ! 9: the Free Software Foundation; either version 2, or (at your option) ! 10: any later version. ! 11: ! 12: GNU CC is distributed in the hope that it will be useful, ! 13: but WITHOUT ANY WARRANTY; without even the implied warranty of ! 14: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! 15: GNU General Public License for more details. ! 16: ! 17: You should have received a copy of the GNU General Public License ! 18: along with GNU CC; see the file COPYING. If not, write to ! 19: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ! 20: ! 21: ! 22: #include "i386/i386.h" ! 23: ! 24: /* Get the generic definitions for system V.3. */ ! 25: ! 26: #include "svr3.h" ! 27: ! 28: /* Use the ATT assembler syntax. ! 29: This overrides at least one macro (ASM_OUTPUT_LABELREF) from svr3.h. */ ! 30: ! 31: #include "i386/att.h" ! 32: ! 33: /* Use crt1.o as a startup file and crtn.o as a closing file. */ ! 34: ! 35: #define STARTFILE_SPEC "%{pg:gcrt0.o%s}%{!pg:%{p:mcrt1.o%s}%{!p:crt1.o%s}}" ! 36: #define ENDFILE_SPEC "crtn.o%s" ! 37: ! 38: #define LIB_SPEC "%{shlib:-lc_s} -lc" ! 39: ! 40: /* Special flags for the linker. I don't know what they do. */ ! 41: ! 42: #define LINK_SPEC "%{K} %{!K:-K} %{T*} %{z:-lm}" ! 43: ! 44: /* Specify predefined symbols in preprocessor. */ ! 45: ! 46: #define CPP_PREDEFINES "-Dps2 -Dunix -Di386" ! 47: ! 48: #define CPP_SPEC \ ! 49: "%{posix:-D_POSIX_SOURCE}%{!posix:-DAIX} -D_I386 -D_AIX -D_MBCS" ! 50: ! 51: /* special flags for the aix assembler to generate the short form for all ! 52: qualifying forward reference */ ! 53: /* The buggy /bin/as of aix ps/2 1.2.x cannot always handle it. */ ! 54: #if 0 ! 55: #define ASM_SPEC "-s2" ! 56: #endif /* 0 */ ! 57: ! 58: #undef ASM_FILE_START ! 59: #define ASM_FILE_START(FILE) \ ! 60: do { fprintf (FILE, "\t.file\t\"%s\"\n", dump_base_name); \ ! 61: if (optimize) \ ! 62: ASM_FILE_START_1 (FILE); \ ! 63: else \ ! 64: fprintf (FILE, "\t.noopt\n"); \ ! 65: } while (0) ! 66: ! 67: /* This was suggested, but it shouldn't be right for DBX output. -- RMS ! 68: #define ASM_OUTPUT_SOURCE_FILENAME(FILE, NAME) */ ! 69: ! 70: /* Writing `int' for a bitfield forces int alignment for the structure. */ ! 71: ! 72: #define PCC_BITFIELD_TYPE_MATTERS 1 ! 73: ! 74: #ifndef USE_GAS ! 75: /* Don't write a `.optim' pseudo; this assembler ! 76: is said to have a bug when .optim is used. */ ! 77: ! 78: #undef ASM_FILE_START_1 ! 79: #define ASM_FILE_START_1(FILE) fprintf (FILE, "\t.noopt\n") ! 80: #endif ! 81: ! 82: /* Output assembler code to FILE to increment profiler label # LABELNO ! 83: for profiling a function entry. */ ! 84: ! 85: #undef FUNCTION_PROFILER ! 86: #define FUNCTION_PROFILER(FILE, LABELNO) \ ! 87: fprintf (FILE, "\tleal %sP%d,%%eax\n\tcall mcount\n", LPREFIX, (LABELNO)); ! 88: ! 89: /* Note that using bss_section here caused errors ! 90: in building shared libraries on system V.3. ! 91: but AIX 1.2 does not have yet shareable libraries on PS2 */ ! 92: #undef ASM_OUTPUT_LOCAL ! 93: #define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \ ! 94: (bss_section (), \ ! 95: ASM_OUTPUT_LABEL ((FILE), (NAME)), \ ! 96: fprintf ((FILE), "\t.set .,.+%u\n", (ROUNDED))) ! 97: ! 98: ! 99: /* Undef all the .init and .fini section stuff if we are not using gas and ! 100: * gnu ld so that we can use collect because the standard /bin/as and /bin/ld ! 101: * cannot handle those. ! 102: */ ! 103: #ifndef USE_GAS ! 104: # undef INIT_SECTION_ASM_OP ! 105: # undef FINI_SECTION_ASM_OP ! 106: # undef CTORS_SECTION_ASM_OP ! 107: # undef DTORS_SECTION_ASM_OP ! 108: # undef ASM_OUTPUT_CONSTRUCTOR ! 109: # undef ASM_OUTPUT_DESTRUCTOR ! 110: # undef DO_GLOBAL_CTORS_BODY ! 111: ! 112: # undef CTOR_LIST_BEGIN ! 113: # define CTOR_LIST_BEGIN ! 114: # undef CTOR_LIST_END ! 115: # define CTOR_LIST_END ! 116: # undef DTOR_LIST_BEGIN ! 117: # define DTOR_LIST_BEGIN ! 118: # undef DTOR_LIST_END ! 119: # define DTOR_LIST_END ! 120: ! 121: # undef CONST_SECTION_FUNCTION ! 122: # define CONST_SECTION_FUNCTION \ ! 123: void \ ! 124: const_section () \ ! 125: { \ ! 126: extern void text_section(); \ ! 127: text_section(); \ ! 128: } ! 129: ! 130: # undef EXTRA_SECTION_FUNCTIONS ! 131: # define EXTRA_SECTION_FUNCTIONS \ ! 132: CONST_SECTION_FUNCTION \ ! 133: BSS_SECTION_FUNCTION ! 134: ! 135: /* for collect2 */ ! 136: # define OBJECT_FORMAT_COFF ! 137: # define MY_ISCOFF(magic) \ ! 138: ((magic) == I386MAGIC || (magic) == I386SVMAGIC) ! 139: ! 140: #endif /* !USE_GAS */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.