1*c87b03e5Sespie /* Definitions for Rs6000 running LynxOS. 2*c87b03e5Sespie Copyright (C) 1995, 1996, 2000, 2002 Free Software Foundation, Inc. 3*c87b03e5Sespie Contributed by David Henkel-Wallace, Cygnus Support (gumby@cygnus.com) 4*c87b03e5Sespie 5*c87b03e5Sespie This file is part of GNU CC. 6*c87b03e5Sespie 7*c87b03e5Sespie GNU CC is free software; you can redistribute it and/or modify 8*c87b03e5Sespie it under the terms of the GNU General Public License as published by 9*c87b03e5Sespie the Free Software Foundation; either version 2, or (at your option) 10*c87b03e5Sespie any later version. 11*c87b03e5Sespie 12*c87b03e5Sespie GNU CC is distributed in the hope that it will be useful, 13*c87b03e5Sespie but WITHOUT ANY WARRANTY; without even the implied warranty of 14*c87b03e5Sespie MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15*c87b03e5Sespie GNU General Public License for more details. 16*c87b03e5Sespie 17*c87b03e5Sespie You should have received a copy of the GNU General Public License 18*c87b03e5Sespie along with GNU CC; see the file COPYING. If not, write to 19*c87b03e5Sespie the Free Software Foundation, 59 Temple Place - Suite 330, 20*c87b03e5Sespie Boston, MA 02111-1307, USA. */ 21*c87b03e5Sespie 22*c87b03e5Sespie /* Definitions we want to override with those from rs6000.h: */ 23*c87b03e5Sespie #undef LIB_SPEC 24*c87b03e5Sespie #undef PTRDIFF_TYPE 25*c87b03e5Sespie #undef WCHAR_TYPE 26*c87b03e5Sespie #undef WCHAR_TYPE_SIZE 27*c87b03e5Sespie #undef ASM_FILE_START 28*c87b03e5Sespie #undef EXTRA_SECTIONS 29*c87b03e5Sespie #undef READONLY_DATA_SECTION 30*c87b03e5Sespie #undef READONLY_DATA_SECTION_ASM_OP 31*c87b03e5Sespie #undef EXTRA_SECTION_FUNCTIONS 32*c87b03e5Sespie #undef TARGET_ASM_SELECT_RTX_SECTION 33*c87b03e5Sespie #undef TARGET_ASM_SELECT_SECTION 34*c87b03e5Sespie #undef USER_LABEL_PREFIX 35*c87b03e5Sespie #undef ASM_OUTPUT_LABELREF 36*c87b03e5Sespie #undef ASM_OUTPUT_INTERNAL_LABEL 37*c87b03e5Sespie #undef ASM_GENERATE_INTERNAL_LABEL 38*c87b03e5Sespie #undef ASM_OUTPUT_COMMON 39*c87b03e5Sespie #undef ASM_OUTPUT_LOCAL 40*c87b03e5Sespie 41*c87b03e5Sespie #undef SDB_DEBUGGING_INFO 42*c87b03e5Sespie #undef DBX_DEBUGGING_INFO 43*c87b03e5Sespie #undef PREFERRED_DEBUGGING_TYPE 44*c87b03e5Sespie 45*c87b03e5Sespie #undef FUNCTION_PROFILER 46*c87b03e5Sespie 47*c87b03e5Sespie #include <rs6000/rs6000.h> 48*c87b03e5Sespie 49*c87b03e5Sespie /* Print subsidiary information on the compiler version in use. */ 50*c87b03e5Sespie #define TARGET_VERSION fprintf (stderr, " (LynxOS-RS/6000)"); 51*c87b03e5Sespie 52*c87b03e5Sespie /* LynxOS has signed chars, regardless of what most R/S 6000 systems do */ 53*c87b03e5Sespie #undef DEFAULT_SIGNED_CHAR 54*c87b03e5Sespie #define DEFAULT_SIGNED_CHAR 1 55*c87b03e5Sespie 56*c87b03e5Sespie #undef TARGET_OS_CPP_BUILTINS 57*c87b03e5Sespie #define TARGET_OS_CPP_BUILTINS() \ 58*c87b03e5Sespie do \ 59*c87b03e5Sespie { \ 60*c87b03e5Sespie builtin_assert ("cpu=rs6000"); \ 61*c87b03e5Sespie builtin_assert ("machine=rs6000"); \ 62*c87b03e5Sespie builtin_assert ("system=lynx"); \ 63*c87b03e5Sespie builtin_assert ("system=unix"); \ 64*c87b03e5Sespie builtin_define_std ("Lynx"); \ 65*c87b03e5Sespie builtin_define ("_IBMR2"); \ 66*c87b03e5Sespie builtin_define_std ("unix"); \ 67*c87b03e5Sespie builtin_define_std ("rs6000"); \ 68*c87b03e5Sespie builtin_define_std ("lynx"); \ 69*c87b03e5Sespie builtin_define_std ("LYNX"); \ 70*c87b03e5Sespie } \ 71*c87b03e5Sespie while (0) 72*c87b03e5Sespie 73*c87b03e5Sespie #undef LINK_SPEC 74*c87b03e5Sespie #define LINK_SPEC "-T0x10001000 -H0x1000 -D0x20000000 -btextro -bhalt:4 -bnodelcsect -bnso -bro -bnoglink %{v} %{b*}" 75*c87b03e5Sespie 76*c87b03e5Sespie #undef LIB_SPEC 77*c87b03e5Sespie #define LIB_SPEC "%{mthreads:-L/lib/thread/} \ 78*c87b03e5Sespie %{msystem-v:-lc_v -lm.v} \ 79*c87b03e5Sespie %{!msystem-v:%{mposix:-lc_p} -lc -lm}" 80*c87b03e5Sespie 81*c87b03e5Sespie #undef STARTFILE_SPEC 82*c87b03e5Sespie #define STARTFILE_SPEC "%{p:%{mthreads:thread/pinit.o%s}%{!mthreads:pinit.o%s}}%{!p:%{msystem-v:vinit.o%s -e_start}%{!msystem-v:%{mthreads:thread/init.o%s}%{!mthreads:init.o%s}}}" 83*c87b03e5Sespie 84*c87b03e5Sespie #undef ENDFILE_SPEC 85*c87b03e5Sespie 86*c87b03e5Sespie /* This can become more refined as we have more powerpc options. */ 87*c87b03e5Sespie #undef ASM_SPEC 88*c87b03e5Sespie #define ASM_SPEC "-u %(asm_cpu)" 89*c87b03e5Sespie 90*c87b03e5Sespie #undef SUBTARGET_SWITCHES 91*c87b03e5Sespie #define SUBTARGET_SWITCHES \ 92*c87b03e5Sespie {"threads", MASK_THREADS}, \ 93*c87b03e5Sespie {"posix", MASK_POSIX}, \ 94*c87b03e5Sespie {"system-v", MASK_SYSTEM_V}, 95*c87b03e5Sespie 96*c87b03e5Sespie #undef SUBTARGET_OVERRIDE_OPTIONS 97*c87b03e5Sespie #define SUBTARGET_OVERRIDE_OPTIONS \ 98*c87b03e5Sespie do { \ 99*c87b03e5Sespie if (TARGET_SYSTEM_V && profile_flag) \ 100*c87b03e5Sespie warning ("-msystem-v and -p are incompatible"); \ 101*c87b03e5Sespie if (TARGET_SYSTEM_V && TARGET_THREADS) \ 102*c87b03e5Sespie warning ("-msystem-v and -mthreads are incompatible"); \ 103*c87b03e5Sespie } while (0) 104*c87b03e5Sespie 105*c87b03e5Sespie /* For collect2 */ 106*c87b03e5Sespie #define OBJECT_FORMAT_NONE 107*c87b03e5Sespie #undef OBJECT_FORMAT_COFF 108*c87b03e5Sespie #undef OBJECT_FORMAT_ROSE 109*c87b03e5Sespie #undef MD_EXEC_PREFIX 110*c87b03e5Sespie #undef REAL_LD_FILE_NAME 111*c87b03e5Sespie #undef REAL_STRIP_FILE_NAME 112*c87b03e5Sespie 113*c87b03e5Sespie /* LynxOS doesn't have mcount. */ 114*c87b03e5Sespie #undef FUNCTION_PROFILER 115*c87b03e5Sespie #define FUNCTION_PROFILER(file, profile_label_no) 116