|
|
1.1 ! root 1: /* Definitions of target machine for GNU compiler, ! 2: for IBM RS/6000 POWER running AIX version 3.x with the fixed assembler. ! 3: Copyright (C) 1995 Free Software Foundation, Inc. ! 4: Contributed by Jason Merrill ([email protected]). ! 5: ! 6: This file is part of GNU CC. ! 7: ! 8: GNU CC is free software; you can redistribute it and/or modify ! 9: it under the terms of the GNU General Public License as published by ! 10: the Free Software Foundation; either version 2, or (at your option) ! 11: any later version. ! 12: ! 13: GNU CC is distributed in the hope that it will be useful, ! 14: but WITHOUT ANY WARRANTY; without even the implied warranty of ! 15: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! 16: GNU General Public License for more details. ! 17: ! 18: You should have received a copy of the GNU General Public License ! 19: along with GNU CC; see the file COPYING. If not, write to ! 20: the Free Software Foundation, 59 Temple Place - Suite 330, ! 21: Boston, MA 02111-1307, USA. */ ! 22: ! 23: ! 24: #include "rs6000/rs6000.h" ! 25: ! 26: /* Tell the assembler to assume that all undefined names are external. */ ! 27: ! 28: #undef ASM_SPEC ! 29: #define ASM_SPEC "-u \ ! 30: %{!mcpu*: \ ! 31: %{mpower: %{!mpowerpc*: %{!mpower2: -mpwr}}} \ ! 32: %{mpower2: -mpwrx} \ ! 33: %{mno-power: %{mpowerpc*: -mppc}} \ ! 34: %{mno-power: %{!mpowerpc*: -mcom}} \ ! 35: %{!mno-power: %{mpowerpc*: -m601}} \ ! 36: %{!mno-power: %{!mpowerpc*: %{!mpower2: -mpwr}}}} \ ! 37: %{mcpu=common: -mcom} \ ! 38: %{mcpu=power: -mpwr} \ ! 39: %{mcpu=powerpc: -mppc} \ ! 40: %{mcpu=rios: -mpwr} \ ! 41: %{mcpu=rios1: -mpwr} \ ! 42: %{mcpu=rios2: -mpwrx} \ ! 43: %{mcpu=rsc: -mpwr} \ ! 44: %{mcpu=rsc1: -mpwr} \ ! 45: %{mcpu=403: -mppc} \ ! 46: %{mcpu=601: -m601} \ ! 47: %{mcpu=603: -mppc} \ ! 48: %{mcpu=604: -mppc}" ! 49: ! 50: /* Define the options for the binder: Start text at 512, align all segments ! 51: to 512 bytes, and warn if there is text relocation. ! 52: ! 53: The -bhalt:4 option supposedly changes the level at which ld will abort, ! 54: but it also suppresses warnings about multiply defined symbols and is ! 55: used by the AIX cc command. So we use it here. ! 56: ! 57: -bnodelcsect undoes a poor choice of default relating to multiply-defined ! 58: csects. See AIX documentation for more information about this. ! 59: ! 60: -bM:SRE tells the linker that the output file is Shared REusable. Note ! 61: that to actually build a shared library you will also need to specify an ! 62: export list with the -Wl,-bE option. ! 63: ! 64: If -mcpu=common, export the architecture dependent multiply/divide routines ! 65: as per README.RS6000. */ ! 66: ! 67: #undef LINK_SPEC ! 68: #define LINK_SPEC "-T512 -H512 %{!r:-btextro} -bhalt:4 -bnodelcsect\ ! 69: %{static:-bnso -bI:/lib/syscalls.exp} \ ! 70: %{mcpu=common: milli.exp%s} \ ! 71: %{!shared:%{g*:-bexport:/usr/lib/libg.exp}} %{shared:-bM:SRE}" ! 72: ! 73: /* These are not necessary when we pass -u to the assembler, and undefining ! 74: them saves a great deal of space in object files. */ ! 75: ! 76: #undef ASM_OUTPUT_EXTERNAL ! 77: #undef ASM_OUTPUT_EXTERNAL_LIBCALL ! 78: #define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \ ! 79: { rtx _symref = XEXP (DECL_RTL (DECL), 0); \ ! 80: if ((TREE_CODE (DECL) == VAR_DECL \ ! 81: || TREE_CODE (DECL) == FUNCTION_DECL) \ ! 82: && (NAME)[0] != '*' \ ! 83: && (NAME)[strlen (NAME) - 1] != ']') \ ! 84: { \ ! 85: char *_name = (char *) permalloc (strlen (XSTR (_symref, 0)) + 5); \ ! 86: strcpy (_name, XSTR (_symref, 0)); \ ! 87: strcat (_name, TREE_CODE (DECL) == FUNCTION_DECL ? "[DS]" : "[RW]"); \ ! 88: XSTR (_symref, 0) = _name; \ ! 89: } \ ! 90: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.