|
|
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 -Asystem(unix) -Asystem(aix) -Acpu(i386) -Amachine(i386)" ! 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"); \ ! 61: output_quoted_string (FILE, dump_base_name); \ ! 62: fprintf (FILE, "\n"); \ ! 63: if (optimize) \ ! 64: ASM_FILE_START_1 (FILE); \ ! 65: else \ ! 66: fprintf (FILE, "\t.noopt\n"); \ ! 67: } while (0) ! 68: ! 69: /* This was suggested, but it shouldn't be right for DBX output. -- RMS ! 70: #define ASM_OUTPUT_SOURCE_FILENAME(FILE, NAME) */ ! 71: ! 72: /* Writing `int' for a bitfield forces int alignment for the structure. */ ! 73: ! 74: #define PCC_BITFIELD_TYPE_MATTERS 1 ! 75: ! 76: #ifndef USE_GAS ! 77: /* Don't write a `.optim' pseudo; this assembler ! 78: is said to have a bug when .optim is used. */ ! 79: ! 80: #undef ASM_FILE_START_1 ! 81: #define ASM_FILE_START_1(FILE) fprintf (FILE, "\t.noopt\n") ! 82: #endif ! 83: ! 84: /* Output assembler code to FILE to increment profiler label # LABELNO ! 85: for profiling a function entry. */ ! 86: ! 87: #undef FUNCTION_PROFILER ! 88: #define FUNCTION_PROFILER(FILE, LABELNO) \ ! 89: fprintf (FILE, "\tleal %sP%d,%%eax\n\tcall mcount\n", LPREFIX, (LABELNO)); ! 90: ! 91: /* Note that using bss_section here caused errors ! 92: in building shared libraries on system V.3. ! 93: but AIX 1.2 does not have yet shareable libraries on PS2 */ ! 94: #undef ASM_OUTPUT_LOCAL ! 95: #define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \ ! 96: (bss_section (), \ ! 97: ASM_OUTPUT_LABEL ((FILE), (NAME)), \ ! 98: fprintf ((FILE), "\t.set .,.+%u\n", (ROUNDED))) ! 99: ! 100: ! 101: /* Undef all the .init and .fini section stuff if we are not using gas and ! 102: * gnu ld so that we can use collect because the standard /bin/as and /bin/ld ! 103: * cannot handle those. ! 104: */ ! 105: #ifndef USE_GAS ! 106: # undef INIT_SECTION_ASM_OP ! 107: # undef FINI_SECTION_ASM_OP ! 108: # undef CTORS_SECTION_ASM_OP ! 109: # undef DTORS_SECTION_ASM_OP ! 110: # undef ASM_OUTPUT_CONSTRUCTOR ! 111: # undef ASM_OUTPUT_DESTRUCTOR ! 112: # undef DO_GLOBAL_CTORS_BODY ! 113: ! 114: # undef CTOR_LIST_BEGIN ! 115: # define CTOR_LIST_BEGIN ! 116: # undef CTOR_LIST_END ! 117: # define CTOR_LIST_END ! 118: # undef DTOR_LIST_BEGIN ! 119: # define DTOR_LIST_BEGIN ! 120: # undef DTOR_LIST_END ! 121: # define DTOR_LIST_END ! 122: ! 123: # undef CONST_SECTION_FUNCTION ! 124: # define CONST_SECTION_FUNCTION \ ! 125: void \ ! 126: const_section () \ ! 127: { \ ! 128: extern void text_section(); \ ! 129: text_section(); \ ! 130: } ! 131: ! 132: # undef EXTRA_SECTION_FUNCTIONS ! 133: # define EXTRA_SECTION_FUNCTIONS \ ! 134: CONST_SECTION_FUNCTION \ ! 135: BSS_SECTION_FUNCTION ! 136: ! 137: /* for collect2 */ ! 138: # define OBJECT_FORMAT_COFF ! 139: # define MY_ISCOFF(magic) \ ! 140: ((magic) == I386MAGIC || (magic) == I386SVMAGIC) ! 141: ! 142: #endif /* !USE_GAS */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.