semi.h revision 117395
1243789Sdim/* Definitions of target machine for GNU compiler.  ARM on semi-hosted platform
2243789Sdim   Copyright (C) 1994, 1995, 1996, 1997, 2001 Free Software Foundation, Inc.
3243789Sdim   Contributed by Richard Earnshaw (richard.earnshaw@arm.com)
4243789Sdim
5243789SdimThis file is part of GNU CC.
6243789Sdim
7243789SdimGNU CC is free software; you can redistribute it and/or modify
8243789Sdimit under the terms of the GNU General Public License as published by
9243789Sdimthe Free Software Foundation; either version 2, or (at your option)
10243789Sdimany later version.
11249423Sdim
12249423SdimGNU CC is distributed in the hope that it will be useful,
13249423Sdimbut WITHOUT ANY WARRANTY; without even the implied warranty of
14249423SdimMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15249423SdimGNU General Public License for more details.
16249423Sdim
17243789SdimYou should have received a copy of the GNU General Public License
18243789Sdimalong with GNU CC; see the file COPYING.  If not, write to
19243789Sdimthe Free Software Foundation, 59 Temple Place - Suite 330,
20243789SdimBoston, MA 02111-1307, USA.  */
21243789Sdim
22263508Sdim#define STARTFILE_SPEC  "crt0.o%s"
23243789Sdim
24249423Sdim#ifndef LIB_SPEC
25249423Sdim#define LIB_SPEC "-lc"
26249423Sdim#endif
27249423Sdim
28249423Sdim#ifndef SUBTARGET_CPP_SPEC
29243789Sdim#define SUBTARGET_CPP_SPEC "-D__semi__"
30263508Sdim#endif
31243789Sdim
32243789Sdim#ifndef LINK_SPEC
33243789Sdim#define LINK_SPEC "%{mbig-endian:-EB} -X"
34243789Sdim#endif
35263508Sdim
36263508Sdim#ifndef TARGET_VERSION
37263508Sdim#define TARGET_VERSION fputs (" (ARM/semi-hosted)", stderr);
38263508Sdim#endif
39243789Sdim
40243789Sdim#ifndef TARGET_DEFAULT
41243789Sdim#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_APCS_FRAME)
42243789Sdim#endif
43243789Sdim
44249423Sdim#ifndef SUBTARGET_EXTRA_SPECS
45243789Sdim#define SUBTARGET_EXTRA_SPECS \
46243789Sdim  { "subtarget_extra_asm_spec",	SUBTARGET_EXTRA_ASM_SPEC },
47243789Sdim#endif
48243789Sdim
49243789Sdim#ifndef SUBTARGET_EXTRA_ASM_SPEC
50243789Sdim#define SUBTARGET_EXTRA_ASM_SPEC ""
51243789Sdim#endif
52243789Sdim
53249423Sdim/* The compiler supports PIC code generation, even though the binutils
54243789Sdim   may not.  If we are asked to compile position independent code, we
55243789Sdim   always pass -k to the assembler.  If it doesn't recognize it, then
56243789Sdim   it will barf, which probably means that it doesn't know how to
57243789Sdim   assemble PIC code.  This is what we want, since otherwise tools
58243789Sdim   may incorrectly assume we support PIC compilation even if the
59243789Sdim   binutils can't.  */
60243789Sdim#ifndef ASM_SPEC
61243789Sdim#define ASM_SPEC "\
62249423Sdim%{fpic: -k} %{fPIC: -k} \
63249423Sdim%{mbig-endian:-EB} \
64243789Sdim%{mcpu=*:-mcpu=%*} \
65243789Sdim%{march=*:-march=%*} \
66243789Sdim%{mapcs-float:-mfloat} \
67243789Sdim%{msoft-float:-mno-fpu} \
68243789Sdim%{mthumb-interwork:-mthumb-interwork} \
69243789Sdim%(subtarget_extra_asm_spec)"
70243789Sdim#endif
71243789Sdim
72243789Sdim#undef  CPP_APCS_PC_DEFAULT_SPEC
73243789Sdim#define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
74243789Sdim