diff options
Diffstat (limited to 'meta/recipes-core/uclibc/uclibc-0.9.32/remove-sub-arch-variants.patch')
-rw-r--r-- | meta/recipes-core/uclibc/uclibc-0.9.32/remove-sub-arch-variants.patch | 430 |
1 files changed, 215 insertions, 215 deletions
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.32/remove-sub-arch-variants.patch b/meta/recipes-core/uclibc/uclibc-0.9.32/remove-sub-arch-variants.patch index 16f3f41c30..920a66900d 100644 --- a/meta/recipes-core/uclibc/uclibc-0.9.32/remove-sub-arch-variants.patch +++ b/meta/recipes-core/uclibc/uclibc-0.9.32/remove-sub-arch-variants.patch | |||
@@ -1,215 +1,215 @@ | |||
1 | Delivered-To: raj.khem@gmail.com | 1 | Delivered-To: raj.khem@gmail.com |
2 | Received: by 10.90.86.4 with SMTP id j4cs313303agb; | 2 | Received: by 10.90.86.4 with SMTP id j4cs313303agb; |
3 | Sat, 8 Jan 2011 16:45:18 -0800 (PST) | 3 | Sat, 8 Jan 2011 16:45:18 -0800 (PST) |
4 | Received: by 10.227.98.158 with SMTP id q30mr1255804wbn.151.1294533917314; | 4 | Received: by 10.227.98.158 with SMTP id q30mr1255804wbn.151.1294533917314; |
5 | Sat, 08 Jan 2011 16:45:17 -0800 (PST) | 5 | Sat, 08 Jan 2011 16:45:17 -0800 (PST) |
6 | Return-Path: <yann.morin.1998@anciens.enib.fr> | 6 | Return-Path: <yann.morin.1998@anciens.enib.fr> |
7 | Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr [80.12.242.123]) | 7 | Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr [80.12.242.123]) |
8 | by mx.google.com with ESMTP id r3si33749838wbr.54.2011.01.08.16.45.16; | 8 | by mx.google.com with ESMTP id r3si33749838wbr.54.2011.01.08.16.45.16; |
9 | Sat, 08 Jan 2011 16:45:17 -0800 (PST) | 9 | Sat, 08 Jan 2011 16:45:17 -0800 (PST) |
10 | Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) client-ip=80.12.242.123; | 10 | Received-SPF: neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) client-ip=80.12.242.123; |
11 | Authentication-Results: mx.google.com; spf=neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) smtp.mail=yann.morin.1998@anciens.enib.fr | 11 | Authentication-Results: mx.google.com; spf=neutral (google.com: 80.12.242.123 is neither permitted nor denied by best guess record for domain of yann.morin.1998@anciens.enib.fr) smtp.mail=yann.morin.1998@anciens.enib.fr |
12 | Received: from roazhon.bzh.lan ([90.32.245.227]) | 12 | Received: from roazhon.bzh.lan ([90.32.245.227]) |
13 | by mwinf5d24 with ME | 13 | by mwinf5d24 with ME |
14 | id tClC1f0024v5z3u03ClGDS; Sun, 09 Jan 2011 01:45:16 +0100 | 14 | id tClC1f0024v5z3u03ClGDS; Sun, 09 Jan 2011 01:45:16 +0100 |
15 | From: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 15 | From: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> |
16 | To: uclibc@uclibc.org | 16 | To: uclibc@uclibc.org |
17 | Cc: Khem Raj <raj.khem@gmail.com>, | 17 | Cc: Khem Raj <raj.khem@gmail.com>, |
18 | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>, | 18 | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>, |
19 | Carmelo AMOROSO <carmelo.amoroso@st.com> | 19 | Carmelo AMOROSO <carmelo.amoroso@st.com> |
20 | Subject: [PATCH 3/7] ARM: remove sub-arch/variants selection from menuconfig | 20 | Subject: [PATCH 3/7] ARM: remove sub-arch/variants selection from menuconfig |
21 | Date: Sun, 9 Jan 2011 01:45:06 +0100 | 21 | Date: Sun, 9 Jan 2011 01:45:06 +0100 |
22 | Message-Id: <1294533910-19305-4-git-send-email-yann.morin.1998@anciens.enib.fr> | 22 | Message-Id: <1294533910-19305-4-git-send-email-yann.morin.1998@anciens.enib.fr> |
23 | X-Mailer: git-send-email 1.7.1 | 23 | X-Mailer: git-send-email 1.7.1 |
24 | In-Reply-To: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr> | 24 | In-Reply-To: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr> |
25 | References: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr> | 25 | References: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr> |
26 | 26 | ||
27 | Rely on the compiler to be correctly set up to generate | 27 | Rely on the compiler to be correctly set up to generate |
28 | appropriate code for the target variant. | 28 | appropriate code for the target variant. |
29 | 29 | ||
30 | This exposes the Thumb option, as it is no longer auto-selected. | 30 | This exposes the Thumb option, as it is no longer auto-selected. |
31 | The "Use BX" no longer depends on supported CPU to be selected, | 31 | The "Use BX" no longer depends on supported CPU to be selected, |
32 | so it now defaults to 'n' as it shall work by default on CPUs | 32 | so it now defaults to 'n' as it shall work by default on CPUs |
33 | that do not have BX. | 33 | that do not have BX. |
34 | 34 | ||
35 | Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 35 | Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> |
36 | Cc: Khem Raj <raj.khem@gmail.com> | 36 | Cc: Khem Raj <raj.khem@gmail.com> |
37 | Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 37 | Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> |
38 | Cc: Carmelo AMOROSO <carmelo.amoroso@st.com> | 38 | Cc: Carmelo AMOROSO <carmelo.amoroso@st.com> |
39 | --- | 39 | --- |
40 | Rules.mak | 19 ------- | 40 | Rules.mak | 19 ------- |
41 | extra/Configs/Config.arm | 125 ++-------------------------------------------- | 41 | extra/Configs/Config.arm | 125 ++-------------------------------------------- |
42 | 2 files changed, 5 insertions(+), 139 deletions(-) | 42 | 2 files changed, 5 insertions(+), 139 deletions(-) |
43 | 43 | ||
44 | diff --git a/Rules.mak b/Rules.mak | 44 | diff --git a/Rules.mak b/Rules.mak |
45 | index 2a16908..09741a6 100644 | 45 | index 2a16908..09741a6 100644 |
46 | --- a/Rules.mak | 46 | --- a/Rules.mak |
47 | +++ b/Rules.mak | 47 | +++ b/Rules.mak |
48 | @@ -332,25 +332,6 @@ ifeq ($(TARGET_ARCH),arm) | 48 | @@ -332,25 +332,6 @@ ifeq ($(TARGET_ARCH),arm) |
49 | OPTIMIZATION+=-fstrict-aliasing | 49 | OPTIMIZATION+=-fstrict-aliasing |
50 | CPU_CFLAGS-$(ARCH_LITTLE_ENDIAN)+=-mlittle-endian | 50 | CPU_CFLAGS-$(ARCH_LITTLE_ENDIAN)+=-mlittle-endian |
51 | CPU_CFLAGS-$(ARCH_BIG_ENDIAN)+=-mbig-endian | 51 | CPU_CFLAGS-$(ARCH_BIG_ENDIAN)+=-mbig-endian |
52 | - CPU_CFLAGS-$(CONFIG_GENERIC_ARM)+= | 52 | - CPU_CFLAGS-$(CONFIG_GENERIC_ARM)+= |
53 | - CPU_CFLAGS-$(CONFIG_ARM610)+=-mtune=arm610 -march=armv3 | 53 | - CPU_CFLAGS-$(CONFIG_ARM610)+=-mtune=arm610 -march=armv3 |
54 | - CPU_CFLAGS-$(CONFIG_ARM710)+=-mtune=arm710 -march=armv3 | 54 | - CPU_CFLAGS-$(CONFIG_ARM710)+=-mtune=arm710 -march=armv3 |
55 | - CPU_CFLAGS-$(CONFIG_ARM7TDMI)+=-mtune=arm7tdmi -march=armv4t | 55 | - CPU_CFLAGS-$(CONFIG_ARM7TDMI)+=-mtune=arm7tdmi -march=armv4t |
56 | - CPU_CFLAGS-$(CONFIG_ARM720T)+=-mtune=arm7tdmi -march=armv4t | 56 | - CPU_CFLAGS-$(CONFIG_ARM720T)+=-mtune=arm7tdmi -march=armv4t |
57 | - CPU_CFLAGS-$(CONFIG_ARM920T)+=-mtune=arm9tdmi -march=armv4t | 57 | - CPU_CFLAGS-$(CONFIG_ARM920T)+=-mtune=arm9tdmi -march=armv4t |
58 | - CPU_CFLAGS-$(CONFIG_ARM922T)+=-mtune=arm9tdmi -march=armv4t | 58 | - CPU_CFLAGS-$(CONFIG_ARM922T)+=-mtune=arm9tdmi -march=armv4t |
59 | - CPU_CFLAGS-$(CONFIG_ARM926T)+=-mtune=arm9e -march=armv5te | 59 | - CPU_CFLAGS-$(CONFIG_ARM926T)+=-mtune=arm9e -march=armv5te |
60 | - CPU_CFLAGS-$(CONFIG_ARM10T)+=-mtune=arm10tdmi -march=armv5t | 60 | - CPU_CFLAGS-$(CONFIG_ARM10T)+=-mtune=arm10tdmi -march=armv5t |
61 | - CPU_CFLAGS-$(CONFIG_ARM1136JF_S)+=-mtune=arm1136jf-s -march=armv6 | 61 | - CPU_CFLAGS-$(CONFIG_ARM1136JF_S)+=-mtune=arm1136jf-s -march=armv6 |
62 | - CPU_CFLAGS-$(CONFIG_ARM1176JZ_S)+=-mtune=arm1176jz-s -march=armv6 | 62 | - CPU_CFLAGS-$(CONFIG_ARM1176JZ_S)+=-mtune=arm1176jz-s -march=armv6 |
63 | - CPU_CFLAGS-$(CONFIG_ARM1176JZF_S)+=-mtune=arm1176jzf-s -march=armv6 | 63 | - CPU_CFLAGS-$(CONFIG_ARM1176JZF_S)+=-mtune=arm1176jzf-s -march=armv6 |
64 | - CPU_CFLAGS-$(CONFIG_ARM_SA110)+=-mtune=strongarm110 -march=armv4 | 64 | - CPU_CFLAGS-$(CONFIG_ARM_SA110)+=-mtune=strongarm110 -march=armv4 |
65 | - CPU_CFLAGS-$(CONFIG_ARM_SA1100)+=-mtune=strongarm1100 -march=armv4 | 65 | - CPU_CFLAGS-$(CONFIG_ARM_SA1100)+=-mtune=strongarm1100 -march=armv4 |
66 | - CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=$(call check_gcc,-mtune=xscale,-mtune=strongarm110) | 66 | - CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=$(call check_gcc,-mtune=xscale,-mtune=strongarm110) |
67 | - CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=-march=armv5te -Wa,-mcpu=xscale | 67 | - CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=-march=armv5te -Wa,-mcpu=xscale |
68 | - CPU_CFLAGS-$(CONFIG_ARM_IWMMXT)+=-march=iwmmxt -Wa,-mcpu=iwmmxt -mabi=iwmmxt | 68 | - CPU_CFLAGS-$(CONFIG_ARM_IWMMXT)+=-march=iwmmxt -Wa,-mcpu=iwmmxt -mabi=iwmmxt |
69 | - CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M3)+=-mcpu=cortex-m3 | 69 | - CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M3)+=-mcpu=cortex-m3 |
70 | - CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M1)+=-mcpu=cortex-m1 | 70 | - CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M1)+=-mcpu=cortex-m1 |
71 | CPU_CFLAGS-$(COMPILE_IN_THUMB_MODE)+=-mthumb | 71 | CPU_CFLAGS-$(COMPILE_IN_THUMB_MODE)+=-mthumb |
72 | endif | 72 | endif |
73 | 73 | ||
74 | diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm | 74 | diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm |
75 | index c9c40d4..6c75a00 100644 | 75 | index c9c40d4..6c75a00 100644 |
76 | --- a/extra/Configs/Config.arm | 76 | --- a/extra/Configs/Config.arm |
77 | +++ b/extra/Configs/Config.arm | 77 | +++ b/extra/Configs/Config.arm |
78 | @@ -30,129 +30,14 @@ config CONFIG_ARM_EABI | 78 | @@ -30,129 +30,14 @@ config CONFIG_ARM_EABI |
79 | 79 | ||
80 | endchoice | 80 | endchoice |
81 | 81 | ||
82 | -choice | 82 | -choice |
83 | - prompt "Target Processor Type" | 83 | - prompt "Target Processor Type" |
84 | - default CONFIG_GENERIC_ARM | 84 | - default CONFIG_GENERIC_ARM |
85 | - help | 85 | - help |
86 | - This is the processor type of your CPU. This information is used for | 86 | - This is the processor type of your CPU. This information is used for |
87 | - optimizing purposes. To build a library that will run on all ARMCPU | 87 | - optimizing purposes. To build a library that will run on all ARMCPU |
88 | - types (albeit not optimally fast), you can specify "Generic Arm" here. | 88 | - types (albeit not optimally fast), you can specify "Generic Arm" here. |
89 | - If you pick anything other than "Generic Arm", there is no guarantee | 89 | - If you pick anything other than "Generic Arm", there is no guarantee |
90 | - that uClibc will even run on anything other than the selected | 90 | - that uClibc will even run on anything other than the selected |
91 | - processor type. | 91 | - processor type. |
92 | - | 92 | - |
93 | - Here are the settings recommended for greatest speed: | 93 | - Here are the settings recommended for greatest speed: |
94 | - - "Generic Arm" select this if your compiler is already setup to | 94 | - - "Generic Arm" select this if your compiler is already setup to |
95 | - optimize things properly, or if you want to run on pretty much | 95 | - optimize things properly, or if you want to run on pretty much |
96 | - everything, or you just don't much care. | 96 | - everything, or you just don't much care. |
97 | - - For anything else, pick the ARM core type that best matches the | 97 | - - For anything else, pick the ARM core type that best matches the |
98 | - cpu you will be using on your device. | 98 | - cpu you will be using on your device. |
99 | - | 99 | - |
100 | - If you don't know what to do, choose "Generic Arm". | 100 | - If you don't know what to do, choose "Generic Arm". |
101 | - | 101 | - |
102 | -config CONFIG_GENERIC_ARM | 102 | -config CONFIG_GENERIC_ARM |
103 | - bool "Generic Arm" | 103 | - bool "Generic Arm" |
104 | - | 104 | - |
105 | -config CONFIG_ARM610 | 105 | -config CONFIG_ARM610 |
106 | - bool "Arm 610" | 106 | - bool "Arm 610" |
107 | - select ARCH_HAS_MMU | 107 | - select ARCH_HAS_MMU |
108 | - | 108 | - |
109 | -config CONFIG_ARM710 | 109 | -config CONFIG_ARM710 |
110 | - bool "Arm 710" | 110 | - bool "Arm 710" |
111 | - select ARCH_HAS_MMU | 111 | - select ARCH_HAS_MMU |
112 | - | 112 | - |
113 | -config CONFIG_ARM7TDMI | 113 | -config CONFIG_ARM7TDMI |
114 | - bool "Arm 7TDMI" | 114 | - bool "Arm 7TDMI" |
115 | - select ARCH_HAS_NO_MMU | 115 | - select ARCH_HAS_NO_MMU |
116 | - select HAS_THUMB | 116 | - select HAS_THUMB |
117 | - | 117 | - |
118 | -config CONFIG_ARM720T | 118 | -config CONFIG_ARM720T |
119 | - bool "Arm 720T" | 119 | - bool "Arm 720T" |
120 | - select ARCH_HAS_MMU | 120 | - select ARCH_HAS_MMU |
121 | - select HAS_THUMB | 121 | - select HAS_THUMB |
122 | - | 122 | - |
123 | -config CONFIG_ARM920T | 123 | -config CONFIG_ARM920T |
124 | - bool "Arm 920T" | 124 | - bool "Arm 920T" |
125 | - select ARCH_HAS_MMU | 125 | - select ARCH_HAS_MMU |
126 | - select HAS_THUMB | 126 | - select HAS_THUMB |
127 | - | 127 | - |
128 | -config CONFIG_ARM922T | 128 | -config CONFIG_ARM922T |
129 | - bool "Arm 922T" | 129 | - bool "Arm 922T" |
130 | - select ARCH_HAS_MMU | 130 | - select ARCH_HAS_MMU |
131 | - select HAS_THUMB | 131 | - select HAS_THUMB |
132 | - | 132 | - |
133 | -config CONFIG_ARM926T | 133 | -config CONFIG_ARM926T |
134 | - bool "Arm 926T" | 134 | - bool "Arm 926T" |
135 | - select ARCH_HAS_MMU | 135 | - select ARCH_HAS_MMU |
136 | - select HAS_THUMB | 136 | - select HAS_THUMB |
137 | - | 137 | - |
138 | -config CONFIG_ARM10T | 138 | -config CONFIG_ARM10T |
139 | - bool "Arm 10T" | 139 | - bool "Arm 10T" |
140 | - select ARCH_HAS_MMU | 140 | - select ARCH_HAS_MMU |
141 | - select HAS_THUMB | 141 | - select HAS_THUMB |
142 | - | 142 | - |
143 | -config CONFIG_ARM1136JF_S | 143 | -config CONFIG_ARM1136JF_S |
144 | - bool "Arm 1136JF-S" | 144 | - bool "Arm 1136JF-S" |
145 | - select ARCH_HAS_MMU | 145 | - select ARCH_HAS_MMU |
146 | - select HAS_THUMB | 146 | - select HAS_THUMB |
147 | - | 147 | - |
148 | -config CONFIG_ARM1176JZ_S | 148 | -config CONFIG_ARM1176JZ_S |
149 | - bool "Arm 1176JZ-S" | 149 | - bool "Arm 1176JZ-S" |
150 | - select ARCH_HAS_MMU | 150 | - select ARCH_HAS_MMU |
151 | - select HAS_THUMB | 151 | - select HAS_THUMB |
152 | - | 152 | - |
153 | -config CONFIG_ARM1176JZF_S | 153 | -config CONFIG_ARM1176JZF_S |
154 | - bool "Arm 1176JZF-S" | 154 | - bool "Arm 1176JZF-S" |
155 | - select ARCH_HAS_MMU | 155 | - select ARCH_HAS_MMU |
156 | - select HAS_THUMB | 156 | - select HAS_THUMB |
157 | - | 157 | - |
158 | -config CONFIG_ARM_CORTEX_M3 | 158 | -config CONFIG_ARM_CORTEX_M3 |
159 | - bool "Arm Cortex-M3" | 159 | - bool "Arm Cortex-M3" |
160 | - select ARCH_HAS_NO_MMU | 160 | - select ARCH_HAS_NO_MMU |
161 | - select FORCE_THUMB | 161 | - select FORCE_THUMB |
162 | - | 162 | - |
163 | -config CONFIG_ARM_CORTEX_M1 | 163 | -config CONFIG_ARM_CORTEX_M1 |
164 | - bool "Arm Cortex-M1" | 164 | - bool "Arm Cortex-M1" |
165 | - select ARCH_HAS_NO_MMU | 165 | - select ARCH_HAS_NO_MMU |
166 | - select FORCE_THUMB | 166 | - select FORCE_THUMB |
167 | - | 167 | - |
168 | -config CONFIG_ARM_SA110 | 168 | -config CONFIG_ARM_SA110 |
169 | - bool "Intel StrongArm SA-110" | 169 | - bool "Intel StrongArm SA-110" |
170 | - select ARCH_HAS_MMU | 170 | - select ARCH_HAS_MMU |
171 | - select HAS_THUMB | 171 | - select HAS_THUMB |
172 | - | 172 | - |
173 | -config CONFIG_ARM_SA1100 | 173 | -config CONFIG_ARM_SA1100 |
174 | - bool "Intel StrongArm SA-1100" | 174 | - bool "Intel StrongArm SA-1100" |
175 | - select ARCH_HAS_MMU | 175 | - select ARCH_HAS_MMU |
176 | - select HAS_THUMB | 176 | - select HAS_THUMB |
177 | - | 177 | - |
178 | -config CONFIG_ARM_XSCALE | 178 | -config CONFIG_ARM_XSCALE |
179 | - bool "Intel Xscale" | 179 | - bool "Intel Xscale" |
180 | - select ARCH_HAS_MMU | 180 | - select ARCH_HAS_MMU |
181 | - select HAS_THUMB | 181 | - select HAS_THUMB |
182 | - | 182 | - |
183 | -config CONFIG_ARM_IWMMXT | 183 | -config CONFIG_ARM_IWMMXT |
184 | - bool "Intel Xscale With WMMX PXA27x" | 184 | - bool "Intel Xscale With WMMX PXA27x" |
185 | - select ARCH_HAS_MMU | 185 | - select ARCH_HAS_MMU |
186 | - select HAS_THUMB | 186 | - select HAS_THUMB |
187 | - | 187 | - |
188 | -endchoice | 188 | -endchoice |
189 | - | 189 | - |
190 | -config HAS_THUMB | 190 | -config HAS_THUMB |
191 | - bool | 191 | - bool |
192 | - | 192 | - |
193 | -config FORCE_THUMB | 193 | -config FORCE_THUMB |
194 | - bool | 194 | - bool |
195 | - select HAS_THUMB | 195 | - select HAS_THUMB |
196 | - select COMPILE_IN_THUMB_MODE | 196 | - select COMPILE_IN_THUMB_MODE |
197 | - select USE_BX | 197 | - select USE_BX |
198 | - | 198 | - |
199 | config COMPILE_IN_THUMB_MODE | 199 | config COMPILE_IN_THUMB_MODE |
200 | - bool | 200 | - bool |
201 | + bool "Build using Thumb mode" | 201 | + bool "Build using Thumb mode" |
202 | + select USE_BX | 202 | + select USE_BX |
203 | + help | 203 | + help |
204 | + Say 'y' here to force building uClibc in thumb mode. | 204 | + Say 'y' here to force building uClibc in thumb mode. |
205 | + Say 'n' to use your compiler's default mode. | 205 | + Say 'n' to use your compiler's default mode. |
206 | 206 | ||
207 | config USE_BX | 207 | config USE_BX |
208 | bool "Use BX in function return" | 208 | bool "Use BX in function return" |
209 | - default y | 209 | - default y |
210 | - depends on HAS_THUMB | 210 | - depends on HAS_THUMB |
211 | help | 211 | help |
212 | Use BX instruction for THUMB aware architectures. | 212 | Use BX instruction for THUMB aware architectures. |
213 | -- | 213 | -- |
214 | 1.7.1 | 214 | 1.7.1 |
215 | 215 | ||