Root/toolchain/uClibc/patches-0.9.32/910-thumb_blind_options.patch

1Add three new blind options to set use of Thumb mode:
2- COMPILE_IN_THUMB_MODE
3  - if set, CFLAGS will contain -mthumb
4  - if unset, the compiler's default is used
5- HAS_THUMB
6  - CPUS with Thumb instruction set can select this
7  - use of BX depends on this
8- FORCE_THUMB
9  - CPUs that are Thumb-only must select this
10  - this selects: HAS_THUMB, COMPILE_IN_THUMB_MODE and USE_BX
11
12Also, remove leading space in Rules.mak.
13
14Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
15Cc: Khem Raj <raj.khem@gmail.com>
16Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
17Cc: Carmelo AMOROSO <carmelo.amoroso@st.com>
18---
19 Rules.mak | 7 ++++---
20 extra/Configs/Config.arm | 31 ++++++++++++++++++++++++++++---
21 2 files changed, 32 insertions(+), 6 deletions(-)
22
23--- a/Rules.mak
24+++ b/Rules.mak
25@@ -351,9 +351,10 @@ ifeq ($(TARGET_ARCH),arm)
26     CPU_CFLAGS-$(CONFIG_ARM_SA1100)+=-mtune=strongarm1100 -march=armv4
27     CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=$(call check_gcc,-mtune=xscale,-mtune=strongarm110)
28     CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=-march=armv5te -Wa,-mcpu=xscale
29- CPU_CFLAGS-$(CONFIG_ARM_IWMMXT)+=-march=iwmmxt -Wa,-mcpu=iwmmxt -mabi=iwmmxt
30- CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M3)+=-mcpu=cortex-m3 -mthumb
31- CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M1)+=-mcpu=cortex-m1 -mthumb
32+ CPU_CFLAGS-$(CONFIG_ARM_IWMMXT)+=-march=iwmmxt -Wa,-mcpu=iwmmxt -mabi=iwmmxt
33+ CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M3)+=-mcpu=cortex-m3
34+ CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M1)+=-mcpu=cortex-m1
35+ CPU_CFLAGS-$(COMPILE_IN_THUMB_MODE)+=-mthumb
36 endif
37 
38 ifeq ($(TARGET_ARCH),mips)
39--- a/extra/Configs/Config.arm
40+++ b/extra/Configs/Config.arm
41@@ -64,70 +64,95 @@ config CONFIG_ARM710
42 config CONFIG_ARM7TDMI
43     bool "Arm 7TDMI"
44     select ARCH_HAS_NO_MMU
45+ select HAS_THUMB
46 
47 config CONFIG_ARM720T
48     bool "Arm 720T"
49     select ARCH_HAS_MMU
50+ select HAS_THUMB
51 
52 config CONFIG_ARM920T
53     bool "Arm 920T"
54     select ARCH_HAS_MMU
55+ select HAS_THUMB
56 
57 config CONFIG_ARM922T
58     bool "Arm 922T"
59     select ARCH_HAS_MMU
60+ select HAS_THUMB
61 
62 config CONFIG_ARM926T
63     bool "Arm 926T"
64     select ARCH_HAS_MMU
65+ select HAS_THUMB
66 
67 config CONFIG_ARM10T
68     bool "Arm 10T"
69     select ARCH_HAS_MMU
70+ select HAS_THUMB
71 
72 config CONFIG_ARM1136JF_S
73     bool "Arm 1136JF-S"
74     select ARCH_HAS_MMU
75+ select HAS_THUMB
76 
77 config CONFIG_ARM1176JZ_S
78     bool "Arm 1176JZ-S"
79     select ARCH_HAS_MMU
80+ select HAS_THUMB
81 
82 config CONFIG_ARM1176JZF_S
83     bool "Arm 1176JZF-S"
84     select ARCH_HAS_MMU
85+ select HAS_THUMB
86 
87 config CONFIG_ARM_CORTEX_M3
88     bool "Arm Cortex-M3"
89     select ARCH_HAS_NO_MMU
90- select USE_BX
91+ select FORCE_THUMB
92 
93 config CONFIG_ARM_CORTEX_M1
94     bool "Arm Cortex-M1"
95     select ARCH_HAS_NO_MMU
96- select USE_BX
97+ select FORCE_THUMB
98 
99 config CONFIG_ARM_SA110
100     bool "Intel StrongArm SA-110"
101     select ARCH_HAS_MMU
102+ select HAS_THUMB
103 
104 config CONFIG_ARM_SA1100
105     bool "Intel StrongArm SA-1100"
106     select ARCH_HAS_MMU
107+ select HAS_THUMB
108 
109 config CONFIG_ARM_XSCALE
110     bool "Intel Xscale"
111     select ARCH_HAS_MMU
112+ select HAS_THUMB
113 
114 config CONFIG_ARM_IWMMXT
115     bool "Intel Xscale With WMMX PXA27x"
116     select ARCH_HAS_MMU
117+ select HAS_THUMB
118 
119 endchoice
120 
121+config HAS_THUMB
122+ bool
123+
124+config FORCE_THUMB
125+ bool
126+ select HAS_THUMB
127+ select COMPILE_IN_THUMB_MODE
128+ select USE_BX
129+
130+config COMPILE_IN_THUMB_MODE
131+ bool
132+
133 config USE_BX
134     bool "Use BX in function return"
135     default y
136- depends on !CONFIG_GENERIC_ARM && !CONFIG_ARM610 && !CONFIG_ARM710
137+ depends on HAS_THUMB
138     help
139       Use BX instruction for THUMB aware architectures.
140

Archive Download this file



interactive