* config.gcc: Add sh-*-symbianelf target.
[official-gcc.git] / gcc / config / sh / symbian-pre.h
blobaa23535bda1bf7fd69276fd4c6d5e54126b3f7b0
1 /* Definitions for the Symbian OS running on an SH part.
2 This file is included before any other target specific headers.
4 Copyright (C) 2004 Free Software Foundation, Inc.
5 Contributed by Red Hat.
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,
22 Boston, MA 02111-1307, USA. */
24 /* Enable Symbian specific code. */
25 #define SYMBIAN 1
27 /* Default to using the Renesas ABI. */
28 #define TARGET_ABI_DEFAULT RENESAS_BIT
30 /* Support the __declspec keyword by turning them into attributes.
31 We currently only support: naked, dllimport, and dllexport.
32 Note that the current way we do this may result in a collision with
33 predefined attributes later on. This can be solved by using one attribute,
34 say __declspec__, and passing args to it. The problem with that approach
35 is that args are not accumulated: each new appearance would clobber any
36 existing args. */
37 #define SUBTARGET_CPP_SPEC "-D__declspec(x)=__attribute__((x))"
39 /* Get tree.c to declare merge_dllimport_decl_attributes(). */
40 #define TARGET_DLLIMPORT_DECL_ATTRIBUTES
42 /* The Symbian OS currently does not support exception handling. */
43 #define SUBTARGET_CC1PLUS_SPEC "-fno-exceptions"
45 /* Create constructor/destructor sections without the writable flag.
46 Symbian puts them into the text segment and munges them later on. */
47 #define CTORS_SECTION_ASM_OP "\t.section\t.ctors,\"ax\",@progbits"
48 #define DTORS_SECTION_ASM_OP "\t.section\t.dtors,\"ax\",@progbits"