]> gcc.gnu.org Git - gcc.git/blame - gcc/config/arm/symbian.h
bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
[gcc.git] / gcc / config / arm / symbian.h
CommitLineData
336bd6ac
MM
1/* Configuration file for Symbian OS on ARM processors.
2 Copyright (C) 2004
3 Free Software Foundation, Inc.
4 Contributed by CodeSourcery, LLC
5
6 This file is part of GCC.
7
8 GCC is free software; you can redistribute it and/or modify it
9 under the terms of the GNU General Public License as published
10 by the Free Software Foundation; either version 2, or (at your
11 option) any later version.
12
13 GCC is distributed in the hope that it will be useful, but WITHOUT
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
16 License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with GCC; 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
336bd6ac
MM
23/* Do not expand builtin functions (unless explicitly prefixed with
24 "__builtin"). Symbian OS code relies on properties of the standard
25 library that go beyond those guaranteed by the ANSI/ISO standard.
26 For example, "memcpy" works even with overlapping memory, like
27 "memmove". We cannot simply set flag_no_builtin in arm.c because
28 (a) flag_no_builtin is not declared in language-independent code,
29 and (b) that would prevent users from explicitly overriding the
63c5b495 30 default with -fbuiltin, which may sometimes be useful.
336bd6ac
MM
31
32 Make all symbols hidden by default. Symbian OS expects that all
33 exported symbols will be explicitly marked with
2ed9e527
MM
34 "__declspec(dllexport)".
35
36 Enumeration types use 4 bytes, even if the enumerals are small,
37 unless explicitly overridden.
38
39 The wchar_t type is a 2-byte type, unless explicitly
40 overridden. */
41#define CC1_SPEC \
42 "%{!fbuiltin:%{!fno-builtin:-fno-builtin}} " \
43 "%{!fvisibility=*:-fvisibility=hidden} " \
44 "%{!fshort-enums:%{!fno-short-enums:-fno-short-enums}} " \
45 "%{!fshort-wchar:%{!fno-short-wchar:-fshort-wchar}} "
866cf037 46#define CC1PLUS_SPEC CC1_SPEC
336bd6ac
MM
47
48/* Symbian OS does not use crt0.o, unlike the generic unknown-elf
49 configuration. */
50#undef STARTFILE_SPEC
51#define STARTFILE_SPEC "crti%O%s crtbegin%O%s"
52
19dc705e
MM
53/* Do not link with any libraries by default. On Symbian OS, the user
54 must supply all required libraries on the command line. */
55#undef LIB_SPEC
56#define LIB_SPEC ""
57
63c5b495
MM
58/* Support the "dllimport" attribute. */
59#define TARGET_DLLIMPORT_DECL_ATTRIBUTES 1
87c2399d
MM
60
61/* Symbian OS assumes ARM V5 or above. Since -march=armv5 is
62 equivalent to making the ARM 10TDMI core the default, we can set
63 SUBTARGET_CPU_DEFAULT and get an equivalent effect. */
64#undef SUBTARGET_CPU_DEFAULT
65#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi
66
e4dc702c 67/* The assembler should assume VFP FPU format, and armv5t. */
87c2399d
MM
68#undef SUBTARGET_ASM_FLOAT_SPEC
69#define SUBTARGET_ASM_FLOAT_SPEC \
e4dc702c 70 "%{!mfpu=*:-mfpu=vfp} %{!mcpu=*:%{!march=*:-march=armv5t}}"
87c2399d 71
f9a02408
MM
72/* SymbianOS provides the BPABI routines in a separate library.
73 Therefore, we do not need to define any of them in libgcc. */
74#undef RENAME_LIBRARY
75#define RENAME_LIBRARY(GCC_NAME, AEABI_NAME) /* empty */
76
77/* Define the __symbian__ macro. */
40a1c5cb 78#undef TARGET_OS_CPP_BUILTINS
f9a02408 79#define TARGET_OS_CPP_BUILTINS() \
40a1c5cb 80 do \
f9a02408 81 { \
40a1c5cb
MM
82 /* Include the default BPABI stuff. */ \
83 TARGET_BPABI_CPP_BUILTINS (); \
f9a02408 84 builtin_define ("__symbian__"); \
40a1c5cb 85 } \
f9a02408 86 while (false)
This page took 0.084141 seconds and 5 git commands to generate.