aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/uclibc/uclibc-0.9.32/select-force-thumb.patch
blob: b19408f1b26c67496202550a3d92ae739cfe41ec (plain)
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
170
171
172
Delivered-To: raj.khem@gmail.com
Received: by 10.90.86.4 with SMTP id j4cs313301agb;
        Sat, 8 Jan 2011 16:45:17 -0800 (PST)
Received: by 10.216.186.82 with SMTP id v60mr20017574wem.56.1294533916559;
        Sat, 08 Jan 2011 16:45:16 -0800 (PST)
Return-Path: <yann.morin.1998@anciens.enib.fr>
Received: from smtp.smtpout.orange.fr (smtp01.smtpout.orange.fr [80.12.242.123])
        by mx.google.com with ESMTP id o13si33755824wee.56.2011.01.08.16.45.16;
        Sat, 08 Jan 2011 16:45:16 -0800 (PST)
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;
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
Received: from roazhon.bzh.lan ([90.32.245.227])
	by mwinf5d24 with ME
	id tClC1f0024v5z3u03ClFDL; Sun, 09 Jan 2011 01:45:16 +0100
From: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
To: uclibc@uclibc.org
Cc: Khem Raj <raj.khem@gmail.com>,
	Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>,
	Carmelo AMOROSO <carmelo.amoroso@st.com>
Subject: [PATCH 2/7] ARM: introduce blind options to select & force THUMB mode
Date: Sun,  9 Jan 2011 01:45:05 +0100
Message-Id: <1294533910-19305-3-git-send-email-yann.morin.1998@anciens.enib.fr>
X-Mailer: git-send-email 1.7.1
In-Reply-To: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>
References: <1294533910-19305-1-git-send-email-yann.morin.1998@anciens.enib.fr>

Add three new blind options to set use of Thumb mode:
- COMPILE_IN_THUMB_MODE
  - if set, CFLAGS will contain -mthumb
  - if unset, the compiler's default is used
- HAS_THUMB
  - CPUS with Thumb instruction set can select this
  - use of BX depends on this
- FORCE_THUMB
  - CPUs that are Thumb-only must select this
  - this selects: HAS_THUMB, COMPILE_IN_THUMB_MODE and USE_BX

Also, remove leading space in Rules.mak.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Cc: Khem Raj <raj.khem@gmail.com>
Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Cc: Carmelo AMOROSO <carmelo.amoroso@st.com>
---
 Rules.mak                |    7 ++++---
 extra/Configs/Config.arm |   31 ++++++++++++++++++++++++++++---
 2 files changed, 32 insertions(+), 6 deletions(-)

diff --git a/Rules.mak b/Rules.mak
index eecdc64..2a16908 100644
--- a/Rules.mak
+++ b/Rules.mak
@@ -348,9 +348,10 @@ ifeq ($(TARGET_ARCH),arm)
 	CPU_CFLAGS-$(CONFIG_ARM_SA1100)+=-mtune=strongarm1100 -march=armv4
 	CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=$(call check_gcc,-mtune=xscale,-mtune=strongarm110)
 	CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=-march=armv5te -Wa,-mcpu=xscale
- 	CPU_CFLAGS-$(CONFIG_ARM_IWMMXT)+=-march=iwmmxt -Wa,-mcpu=iwmmxt -mabi=iwmmxt
- 	CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M3)+=-mcpu=cortex-m3 -mthumb
- 	CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M1)+=-mcpu=cortex-m1 -mthumb
+	CPU_CFLAGS-$(CONFIG_ARM_IWMMXT)+=-march=iwmmxt -Wa,-mcpu=iwmmxt -mabi=iwmmxt
+	CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M3)+=-mcpu=cortex-m3
+	CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M1)+=-mcpu=cortex-m1
+	CPU_CFLAGS-$(COMPILE_IN_THUMB_MODE)+=-mthumb
 endif
 
 ifeq ($(TARGET_ARCH),mips)
diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm
index 3b90e67..c9c40d4 100644
--- a/extra/Configs/Config.arm
+++ b/extra/Configs/Config.arm
@@ -64,70 +64,95 @@ config CONFIG_ARM710
 config CONFIG_ARM7TDMI
 	bool "Arm 7TDMI"
 	select ARCH_HAS_NO_MMU
+	select HAS_THUMB
 
 config CONFIG_ARM720T
 	bool "Arm 720T"
 	select ARCH_HAS_MMU
+	select HAS_THUMB
 
 config CONFIG_ARM920T
 	bool "Arm 920T"
 	select ARCH_HAS_MMU
+	select HAS_THUMB
 
 config CONFIG_ARM922T
 	bool "Arm 922T"
 	select ARCH_HAS_MMU
+	select HAS_THUMB
 
 config CONFIG_ARM926T
 	bool "Arm 926T"
 	select ARCH_HAS_MMU
+	select HAS_THUMB
 
 config CONFIG_ARM10T
 	bool "Arm 10T"
 	select ARCH_HAS_MMU
+	select HAS_THUMB
 
 config CONFIG_ARM1136JF_S
 	bool "Arm 1136JF-S"
 	select ARCH_HAS_MMU
+	select HAS_THUMB
 
 config CONFIG_ARM1176JZ_S
 	bool "Arm 1176JZ-S"
 	select ARCH_HAS_MMU
+	select HAS_THUMB
 
 config CONFIG_ARM1176JZF_S
 	bool "Arm 1176JZF-S"
 	select ARCH_HAS_MMU
+	select HAS_THUMB
 
 config CONFIG_ARM_CORTEX_M3
 	bool "Arm Cortex-M3"
 	select ARCH_HAS_NO_MMU
-	select USE_BX
+	select FORCE_THUMB
 
 config CONFIG_ARM_CORTEX_M1
 	bool "Arm Cortex-M1"
 	select ARCH_HAS_NO_MMU
-	select USE_BX
+	select FORCE_THUMB
 
 config CONFIG_ARM_SA110
 	bool "Intel StrongArm SA-110"
 	select ARCH_HAS_MMU
+	select HAS_THUMB
 
 config CONFIG_ARM_SA1100
 	bool "Intel StrongArm SA-1100"
 	select ARCH_HAS_MMU
+	select HAS_THUMB
 
 config CONFIG_ARM_XSCALE
 	bool "Intel Xscale"
 	select ARCH_HAS_MMU
+	select HAS_THUMB
 
 config CONFIG_ARM_IWMMXT
 	bool "Intel Xscale With WMMX PXA27x"
 	select ARCH_HAS_MMU
+	select HAS_THUMB
 
 endchoice
 
+config HAS_THUMB
+	bool
+
+config FORCE_THUMB
+	bool
+	select HAS_THUMB
+	select COMPILE_IN_THUMB_MODE
+	select USE_BX
+
+config COMPILE_IN_THUMB_MODE
+	bool
+
 config USE_BX
 	bool "Use BX in function return"
 	default y
-	depends on !CONFIG_GENERIC_ARM && !CONFIG_ARM610 && !CONFIG_ARM710
+	depends on HAS_THUMB
 	help
 	  Use BX instruction for THUMB aware architectures.
-- 
1.7.1