9579932670826408f9df35bf26ffc6a9dcee1ccb
[openwrt.git] / toolchain / uClibc / patches-0.9.32 / 910-thumb_blind_options.patch
1 Add 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
12 Also, remove leading space in Rules.mak.
13
14 Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
15 Cc: Khem Raj <raj.khem@gmail.com>
16 Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
17 Cc: 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.