[toolchain/uClibc/git]: autodetect ARM variant/ABI setup based on the compiler settings
[openwrt/svn-archive/archive.git] / toolchain / uClibc / patches-0.9.32 / 920-remove_sub-arch_variants.patch
1 Rely on the compiler to be correctly set up to generate
2 appropriate code for the target variant.
3
4 This exposes the Thumb option, as it is no longer auto-selected.
5 The "Use BX" no longer depends on supported CPU to be selected,
6 so it now defaults to 'n' as it shall work by default on CPUs
7 that do not have BX.
8
9 Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
10 Cc: Khem Raj <raj.khem@gmail.com>
11 Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
12 Cc: Carmelo AMOROSO <carmelo.amoroso@st.com>
13 ---
14 Rules.mak | 19 -------
15 extra/Configs/Config.arm | 125 ++--------------------------------------------
16 2 files changed, 5 insertions(+), 139 deletions(-)
17
18 diff --git a/Rules.mak b/Rules.mak
19 index 2a16908..09741a6 100644
20 --- a/Rules.mak
21 +++ b/Rules.mak
22 @@ -332,25 +332,6 @@ ifeq ($(TARGET_ARCH),arm)
23 OPTIMIZATION+=-fstrict-aliasing
24 CPU_CFLAGS-$(ARCH_LITTLE_ENDIAN)+=-mlittle-endian
25 CPU_CFLAGS-$(ARCH_BIG_ENDIAN)+=-mbig-endian
26 - CPU_CFLAGS-$(CONFIG_GENERIC_ARM)+=
27 - CPU_CFLAGS-$(CONFIG_ARM610)+=-mtune=arm610 -march=armv3
28 - CPU_CFLAGS-$(CONFIG_ARM710)+=-mtune=arm710 -march=armv3
29 - CPU_CFLAGS-$(CONFIG_ARM7TDMI)+=-mtune=arm7tdmi -march=armv4t
30 - CPU_CFLAGS-$(CONFIG_ARM720T)+=-mtune=arm7tdmi -march=armv4t
31 - CPU_CFLAGS-$(CONFIG_ARM920T)+=-mtune=arm9tdmi -march=armv4t
32 - CPU_CFLAGS-$(CONFIG_ARM922T)+=-mtune=arm9tdmi -march=armv4t
33 - CPU_CFLAGS-$(CONFIG_ARM926T)+=-mtune=arm9e -march=armv5te
34 - CPU_CFLAGS-$(CONFIG_ARM10T)+=-mtune=arm10tdmi -march=armv5t
35 - CPU_CFLAGS-$(CONFIG_ARM1136JF_S)+=-mtune=arm1136jf-s -march=armv6
36 - CPU_CFLAGS-$(CONFIG_ARM1176JZ_S)+=-mtune=arm1176jz-s -march=armv6
37 - CPU_CFLAGS-$(CONFIG_ARM1176JZF_S)+=-mtune=arm1176jzf-s -march=armv6
38 - CPU_CFLAGS-$(CONFIG_ARM_SA110)+=-mtune=strongarm110 -march=armv4
39 - CPU_CFLAGS-$(CONFIG_ARM_SA1100)+=-mtune=strongarm1100 -march=armv4
40 - CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=$(call check_gcc,-mtune=xscale,-mtune=strongarm110)
41 - CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=-march=armv5te -Wa,-mcpu=xscale
42 - CPU_CFLAGS-$(CONFIG_ARM_IWMMXT)+=-march=iwmmxt -Wa,-mcpu=iwmmxt -mabi=iwmmxt
43 - CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M3)+=-mcpu=cortex-m3
44 - CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M1)+=-mcpu=cortex-m1
45 CPU_CFLAGS-$(COMPILE_IN_THUMB_MODE)+=-mthumb
46 endif
47
48 diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm
49 index c9c40d4..6c75a00 100644
50 --- a/extra/Configs/Config.arm
51 +++ b/extra/Configs/Config.arm
52 @@ -30,129 +30,14 @@ config CONFIG_ARM_EABI
53
54 endchoice
55
56 -choice
57 - prompt "Target Processor Type"
58 - default CONFIG_GENERIC_ARM
59 - help
60 - This is the processor type of your CPU. This information is used for
61 - optimizing purposes. To build a library that will run on all ARMCPU
62 - types (albeit not optimally fast), you can specify "Generic Arm" here.
63 - If you pick anything other than "Generic Arm", there is no guarantee
64 - that uClibc will even run on anything other than the selected
65 - processor type.
66 -
67 - Here are the settings recommended for greatest speed:
68 - - "Generic Arm" select this if your compiler is already setup to
69 - optimize things properly, or if you want to run on pretty much
70 - everything, or you just don't much care.
71 - - For anything else, pick the ARM core type that best matches the
72 - cpu you will be using on your device.
73 -
74 - If you don't know what to do, choose "Generic Arm".
75 -
76 -config CONFIG_GENERIC_ARM
77 - bool "Generic Arm"
78 -
79 -config CONFIG_ARM610
80 - bool "Arm 610"
81 - select ARCH_HAS_MMU
82 -
83 -config CONFIG_ARM710
84 - bool "Arm 710"
85 - select ARCH_HAS_MMU
86 -
87 -config CONFIG_ARM7TDMI
88 - bool "Arm 7TDMI"
89 - select ARCH_HAS_NO_MMU
90 - select HAS_THUMB
91 -
92 -config CONFIG_ARM720T
93 - bool "Arm 720T"
94 - select ARCH_HAS_MMU
95 - select HAS_THUMB
96 -
97 -config CONFIG_ARM920T
98 - bool "Arm 920T"
99 - select ARCH_HAS_MMU
100 - select HAS_THUMB
101 -
102 -config CONFIG_ARM922T
103 - bool "Arm 922T"
104 - select ARCH_HAS_MMU
105 - select HAS_THUMB
106 -
107 -config CONFIG_ARM926T
108 - bool "Arm 926T"
109 - select ARCH_HAS_MMU
110 - select HAS_THUMB
111 -
112 -config CONFIG_ARM10T
113 - bool "Arm 10T"
114 - select ARCH_HAS_MMU
115 - select HAS_THUMB
116 -
117 -config CONFIG_ARM1136JF_S
118 - bool "Arm 1136JF-S"
119 - select ARCH_HAS_MMU
120 - select HAS_THUMB
121 -
122 -config CONFIG_ARM1176JZ_S
123 - bool "Arm 1176JZ-S"
124 - select ARCH_HAS_MMU
125 - select HAS_THUMB
126 -
127 -config CONFIG_ARM1176JZF_S
128 - bool "Arm 1176JZF-S"
129 - select ARCH_HAS_MMU
130 - select HAS_THUMB
131 -
132 -config CONFIG_ARM_CORTEX_M3
133 - bool "Arm Cortex-M3"
134 - select ARCH_HAS_NO_MMU
135 - select FORCE_THUMB
136 -
137 -config CONFIG_ARM_CORTEX_M1
138 - bool "Arm Cortex-M1"
139 - select ARCH_HAS_NO_MMU
140 - select FORCE_THUMB
141 -
142 -config CONFIG_ARM_SA110
143 - bool "Intel StrongArm SA-110"
144 - select ARCH_HAS_MMU
145 - select HAS_THUMB
146 -
147 -config CONFIG_ARM_SA1100
148 - bool "Intel StrongArm SA-1100"
149 - select ARCH_HAS_MMU
150 - select HAS_THUMB
151 -
152 -config CONFIG_ARM_XSCALE
153 - bool "Intel Xscale"
154 - select ARCH_HAS_MMU
155 - select HAS_THUMB
156 -
157 -config CONFIG_ARM_IWMMXT
158 - bool "Intel Xscale With WMMX PXA27x"
159 - select ARCH_HAS_MMU
160 - select HAS_THUMB
161 -
162 -endchoice
163 -
164 -config HAS_THUMB
165 - bool
166 -
167 -config FORCE_THUMB
168 - bool
169 - select HAS_THUMB
170 - select COMPILE_IN_THUMB_MODE
171 - select USE_BX
172 -
173 config COMPILE_IN_THUMB_MODE
174 - bool
175 + bool "Build using Thumb mode"
176 + select USE_BX
177 + help
178 + Say 'y' here to force building uClibc in thumb mode.
179 + Say 'n' to use your compiler's default mode.
180
181 config USE_BX
182 bool "Use BX in function return"
183 - default y
184 - depends on HAS_THUMB
185 help
186 Use BX instruction for THUMB aware architectures.
187 --
188 1.7.1
189