OSDN Git Service

* config/s390/2064.md ("z_int", "z_agen"): Ensure the condition
[pf3gnuchains/gcc-fork.git] / gcc / config / s390 / linux.h
1 /* Definitions for Linux for S/390.
2    Copyright (C) 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
3    Contributed by Hartmut Penner (hpenner@de.ibm.com) and
4                   Ulrich Weigand (uweigand@de.ibm.com).
5
6 This file is part of GCC.
7
8 GCC is free software; you can redistribute it and/or modify it under
9 the terms of the GNU General Public License as published by the Free
10 Software Foundation; either version 2, or (at your option) any later
11 version.
12
13 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
14 WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
16 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 the Free
20 Software Foundation, 59 Temple Place - Suite 330, Boston, MA
21 02111-1307, USA.  */
22
23 #ifndef _LINUX_H
24 #define _LINUX_H
25
26 /* Target specific version string.  */
27
28 #ifdef DEFAULT_TARGET_64BIT
29 #undef  TARGET_VERSION
30 #define TARGET_VERSION fprintf (stderr, " (Linux for zSeries)");
31 #else
32 #undef  TARGET_VERSION
33 #define TARGET_VERSION fprintf (stderr, " (Linux for S/390)");
34 #endif
35
36
37 /* Target specific type definitions.  */
38
39 /* ??? Do we really want long as size_t on 31-bit?  */
40 #undef  SIZE_TYPE
41 #define SIZE_TYPE (TARGET_64BIT ? "long unsigned int" : "long unsigned int")
42 #undef  PTRDIFF_TYPE
43 #define PTRDIFF_TYPE (TARGET_64BIT ? "long int" : "int")
44
45 #undef  WCHAR_TYPE
46 #define WCHAR_TYPE "int"
47 #undef  WCHAR_TYPE_SIZE
48 #define WCHAR_TYPE_SIZE 32
49
50
51 /* Target specific preprocessor settings.  */
52
53 #define TARGET_OS_CPP_BUILTINS()                \
54   do                                            \
55     {                                           \
56       LINUX_TARGET_OS_CPP_BUILTINS();           \
57       if (flag_pic)                             \
58         {                                       \
59           builtin_define ("__PIC__");           \
60           builtin_define ("__pic__");           \
61         }                                       \
62     }                                           \
63   while (0)
64
65
66 /* Target specific assembler settings.  */
67
68 #undef  ASM_SPEC
69 #define ASM_SPEC "%{m31&m64}%{mesa&mzarch}%{march=*}"
70
71
72 /* Target specific linker settings.  */
73
74 #ifdef DEFAULT_TARGET_64BIT
75 #define MULTILIB_DEFAULTS { "m64" }
76 #else
77 #define MULTILIB_DEFAULTS { "m31" }
78 #endif
79
80 #undef  LINK_SPEC
81 #define LINK_SPEC \
82   "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
83    %{shared:-shared} \
84    %{!shared: \
85       %{static:-static} \
86       %{!static: \
87         %{rdynamic:-export-dynamic} \
88         %{!dynamic-linker: \
89           %{m31:-dynamic-linker /lib/ld.so.1} \
90           %{m64:-dynamic-linker /lib/ld64.so.1}}}}"
91
92
93 #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
94
95 #define MD_UNWIND_SUPPORT "config/s390/linux-unwind.h"
96
97 #endif