Blame view

buildroot/buildroot-2016.08.1/package/gcc/4.9.4/874-xtensa-add-uclinux-support.patch 5.46 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
  From 70c2cb98fb129b4766b5da0f945dc41fd568c77a Mon Sep 17 00:00:00 2001
  From: Max Filippov <jcmvbkbc@gmail.com>
  Date: Sat, 22 Aug 2015 08:44:26 +0300
  Subject: [PATCH] xtensa: add uclinux support
  
  2015-10-03  Max Filippov  <jcmvbkbc@gmail.com>
  gcc/
  	* config.gcc (xtensa*-*-uclinux*): New configuration.
  	* config/xtensa/uclinux.h: New file.
  	* config/xtensa/uclinux.opt: New file.
  
  libgcc/
  	* config.host (xtensa*-*-uclinux*): New configuration.
  
  Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
  ---
  Backported from: r228450
  
   gcc/config.gcc                |  5 ++++
   gcc/config/xtensa/uclinux.h   | 69 +++++++++++++++++++++++++++++++++++++++++++
   gcc/config/xtensa/uclinux.opt | 32 ++++++++++++++++++++
   libgcc/config.host            |  5 ++++
   4 files changed, 111 insertions(+)
   create mode 100644 gcc/config/xtensa/uclinux.h
   create mode 100644 gcc/config/xtensa/uclinux.opt
  
  Index: b/gcc/config.gcc
  ===================================================================
  --- a/gcc/config.gcc
  +++ b/gcc/config.gcc
  @@ -2871,6 +2871,11 @@
   	tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
   	tmake_file="${tmake_file} xtensa/t-xtensa"
   	;;
  +xtensa*-*-uclinux*)
  +	tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
  +	tmake_file="${tmake_file} xtensa/t-xtensa"
  +	extra_options="${extra_options} xtensa/uclinux.opt"
  +	;;
   am33_2.0-*-linux*)
   	tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
   	gas=yes gnu_ld=yes
  Index: b/gcc/config/xtensa/uclinux.h
  ===================================================================
  --- /dev/null
  +++ b/gcc/config/xtensa/uclinux.h
  @@ -0,0 +1,69 @@
  +/* Xtensa uClinux configuration.
  +   Derived from the configuration for GCC for Intel i386 running Linux.
  +   Copyright (C) 2001-2015 Free Software Foundation, Inc.
  +
  +This file is part of GCC.
  +
  +GCC is free software; you can redistribute it and/or modify it under
  +the terms of the GNU General Public License as published by the Free
  +Software Foundation; either version 3, or (at your option) any later
  +version.
  +
  +GCC is distributed in the hope that it will be useful, but WITHOUT ANY
  +WARRANTY; without even the implied warranty of MERCHANTABILITY or
  +FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  +for more details.
  +
  +You should have received a copy of the GNU General Public License
  +along with GCC; see the file COPYING3.  If not see
  +<http://www.gnu.org/licenses/>.  */
  +
  +#undef TARGET_OS_CPP_BUILTINS
  +#define TARGET_OS_CPP_BUILTINS()				\
  +  do								\
  +    {								\
  +      GNU_USER_TARGET_OS_CPP_BUILTINS ();			\
  +      builtin_define ("__uClinux__");				\
  +    }								\
  +  while (0)
  +
  +#undef SUBTARGET_CPP_SPEC
  +#define SUBTARGET_CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
  +
  +#undef SIZE_TYPE
  +#define SIZE_TYPE "unsigned int"
  +
  +#undef PTRDIFF_TYPE
  +#define PTRDIFF_TYPE "int"
  +
  +#undef WCHAR_TYPE
  +#define WCHAR_TYPE "long int"
  +
  +#undef WCHAR_TYPE_SIZE
  +#define WCHAR_TYPE_SIZE 32
  +
  +#undef ASM_SPEC
  +#define ASM_SPEC \
  + "%{mtext-section-literals:--text-section-literals} \
  +  %{mno-text-section-literals:--no-text-section-literals} \
  +  %{mtarget-align:--target-align} \
  +  %{mno-target-align:--no-target-align} \
  +  %{mlongcalls:--longcalls} \
  +  %{mno-longcalls:--no-longcalls} \
  +  %{mauto-litpools:--auto-litpools} \
  +  %{mno-auto-litpools:--no-auto-litpools}"
  +
  +#undef LINK_SPEC
  +#define LINK_SPEC "%{!no-elf2flt:%{!elf2flt*:-elf2flt}}"
  +
  +#undef LOCAL_LABEL_PREFIX
  +#define LOCAL_LABEL_PREFIX	"."
  +
  +/* Always enable "-fpic" for Xtensa Linux.  */
  +#define XTENSA_ALWAYS_PIC 1
  +
  +#undef TARGET_LIBC_HAS_FUNCTION
  +#define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function
  +
  +#undef DBX_REGISTER_NUMBER
  +
  Index: b/gcc/config/xtensa/uclinux.opt
  ===================================================================
  --- /dev/null
  +++ b/gcc/config/xtensa/uclinux.opt
  @@ -0,0 +1,32 @@
  +; Xtensa uClinux options.
  +
  +; Copyright (C) 2015 Free Software Foundation, Inc.
  +;
  +; This file is part of GCC.
  +;
  +; GCC is free software; you can redistribute it and/or modify it under
  +; the terms of the GNU General Public License as published by the Free
  +; Software Foundation; either version 3, or (at your option) any later
  +; version.
  +;
  +; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
  +; WARRANTY; without even the implied warranty of MERCHANTABILITY or
  +; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  +; for more details.
  +;
  +; You should have received a copy of the GNU General Public License
  +; along with GCC; see the file COPYING3.  If not see
  +; <http://www.gnu.org/licenses/>.
  +
  +; See the GCC internals manual (options.texi) for a description of
  +; this file's format.
  +
  +; Please try to keep this file in ASCII collating order.
  +
  +elf2flt
  +Driver
  +
  +elf2flt=
  +Driver JoinedOrMissing
  +
  +; This comment is to ensure we retain the blank line above.
  Index: b/libgcc/config.host
  ===================================================================
  --- a/libgcc/config.host
  +++ b/libgcc/config.host
  @@ -1213,6 +1213,11 @@
   	tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-linux t-slibgcc-libgcc"
   	md_unwind_header=xtensa/linux-unwind.h
   	;;
  +xtensa*-*-uclinux*)
  +	tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-linux t-slibgcc-libgcc"
  +	md_unwind_header=xtensa/linux-unwind.h
  +	extra_parts="$extra_parts crtbeginS.o crtbeginT.o crtendS.o"
  +	;;
   am33_2.0-*-linux*)
   	# Don't need crtbeginT.o from *-*-linux* default.
   	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"