]>
git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/config/rs6000/lynx.h
1 /* Definitions for Rs6000 running LynxOS.
2 Copyright (C) 1995, 1996, 2000, 2002, 2003, 2004
3 Free Software Foundation, Inc.
4 Contributed by David Henkel-Wallace, Cygnus Support (gumby@cygnus.com)
5 Rewritten by Adam Nemet, LynuxWorks Inc.
7 This file is part of GCC.
9 GCC is free software; you can redistribute it and/or modify it
10 under the terms of the GNU General Public License as published
11 by the Free Software Foundation; either version 2, or (at your
12 option) any later version.
14 GCC is distributed in the hope that it will be useful, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
17 License for more details.
19 You should have received a copy of the GNU General Public License
20 along with GCC; see the file COPYING. If not, write to the
21 Free Software Foundation, 59 Temple Place - Suite 330, Boston,
22 MA 02111-1307, USA. */
24 /* Override the definition in sysv4.h. */
27 #define TARGET_VERSION fputs (" (PowerPC/LynxOS)", stderr);
29 /* Undefine the definition to enable the LynxOS default from the
32 #undef SUBTARGET_EXTRA_SPECS
34 /* Get rid off the spec definitions from rs6000/sysv4.h. */
38 "%{msoft-float: -D_SOFT_FLOAT} \
42 /* LynxOS only supports big-endian on PPC so we override the
43 definition from sysv4.h. Since the LynxOS 4.0 compiler was set to
44 return every structure in memory regardless of their size we have
45 to emulate the same behavior here with disabling the SVR4 structure
50 "%{G*} %{mno-sdata:-msdata=none} \
51 %{maltivec:-mabi=altivec} \
52 -mno-svr4-struct-return"
57 %{.s: %{mregnames} %{mno-regnames}} \
58 %{.S: %{mregnames} %{mno-regnames}}"
65 "%{!msdata=none:%{G*}} %{msdata=none:-G0} \
68 /* Override the definition from sysv4.h. */
70 #undef TARGET_OS_CPP_BUILTINS
71 #define TARGET_OS_CPP_BUILTINS() \
74 builtin_define ("__BIG_ENDIAN__"); \
75 builtin_define ("__powerpc__"); \
76 builtin_assert ("cpu=powerpc"); \
77 builtin_assert ("machine=powerpc"); \
78 builtin_define ("__PPC__"); \
82 /* Override the rs6000.h definition. */
85 #define ASM_APP_ON "#APP\n"
87 /* Override the rs6000.h definition. */
90 #define ASM_APP_OFF "#NO_APP\n"
92 #undef EXTRA_SUBTARGET_SWITCHES
93 #define EXTRA_SUBTARGET_SWITCHES SUBTARGET_OS_LYNX_SWITCHES
95 /* LynxOS does not do anything with .fixup plus let's not create
96 writable section for linkonce.r and linkonce.t. */
98 #undef RELOCATABLE_NEEDS_FIXUP
100 /* Override these from rs6000.h with the generic definition. */
103 #undef ASM_OUTPUT_ALIGN
104 #undef PREFERRED_DEBUGGING_TYPE
106 /* The file rs6000.c defines TARGET_HAVE_TLS unconditionally to the
107 value of HAVE_AS_TLS. HAVE_AS_TLS is true as gas support for TLS
108 is detected by configure. Override the definition to false. */
111 #define HAVE_AS_TLS 0