blob: cbac108cd0c65202157bcbaf8cebeab43603e13a (
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
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
|
#
menuconfig EXTERNAL_TOOLCHAIN
bool
prompt "Use external toolchain" if DEVEL
help
If enabled, OpenWrt will compile using an existing toolchain instead of compiling one
config NATIVE_TOOLCHAIN
bool
prompt "Use host's toolchain" if DEVEL
depends EXTERNAL_TOOLCHAIN
select NO_STRIP
help
If enabled, OpenWrt will compile using the native toolchain for your host instead of compiling one
config TARGET_NAME
string
prompt "Target name" if DEVEL
depends EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
default "arm-unknown-linux-gnu" if arm
default "armeb-unknown-linux-gnu" if armeb
default "i486-unknown-linux-gnu" if i386
default "mips-unknown-linux-gnu" if mips
default "mipsel-unknown-linux-gnu" if mipsel
default "powerpc-unknown-linux-gnu" if powerpc
default "x86_64-unknown-linux-gnu" if x86_64
config TOOLCHAIN_PREFIX
string
prompt "Toolchain prefix" if DEVEL
depends EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
default "arm-unknown-linux-gnu-" if arm
default "armeb-unknown-linux-gnu-" if armeb
default "i486-unknown-linux-gnu-" if i386
default "mips-unknown-linux-gnu-" if mips
default "mipsel-unknown-linux-gnu-" if mipsel
default "powerpc-unknown-linux-gnu-" if powerpc
default "x86_64-unknown-linux-gnu-" if x86_64
config TOOLCHAIN_ROOT
string
prompt "Toolchain root" if DEVEL
depends EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
default "/opt/cross/arm-unknown-linux-gnu" if arm
default "/opt/cross/armeb-unknown-linux-gnu" if armeb
default "/opt/cross/i486-unknown-linux-gnu" if i386
default "/opt/cross/mips-unknown-linux-gnu" if mips
default "/opt/cross/mipsel-unknown-linux-gnu" if mipsel
default "/opt/cross/powerpc-unknown-linux-gnu" if powerpc
default "/opt/cross/x86_64-unknown-linux-gnu" if x86_64
config TOOLCHAIN_LIBC
string
prompt "Toolchain libc" if DEVEL
depends EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
default "uclibc"
help
Specify the libc type used by the external toolchain. The given value us passed as -m
flag to all gcc and g++ invocations. This is mainly intended for multilib toolchains
which support glibc and uclibc at the same time. If no value is specified, no -m flag
is passed.
config TOOLCHAIN_BIN_PATH
string
prompt "Toolchain program path" if DEVEL
depends EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
default "./usr/bin ./bin"
help
Specify additional directories searched for toolchain binaries (override PATH)
Use ./DIR for directories relative to the root above
config TOOLCHAIN_INC_PATH
string
prompt "Toolchain include path" if DEVEL
depends EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
default "./usr/include ./include"
help
Specify additional directories searched for header files (override CPPFLAGS)
Use ./DIR for directories relative to the root above
config TOOLCHAIN_LIB_PATH
string
prompt "Toolchain library path" if DEVEL
depends EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
default "./usr/lib ./lib"
help
Specify additional directories searched for libraries (override LDFLAGS)
Use ./DIR for directories relative to the root above
config NEED_TOOLCHAIN
bool
depends DEVEL
default y if !EXTERNAL_TOOLCHAIN
menuconfig TOOLCHAINOPTS
bool "Toolchain Options" if DEVEL
depends NEED_TOOLCHAIN
menuconfig EXTRA_TARGET_ARCH
bool
prompt "Enable an extra toolchain target architecture" if TOOLCHAINOPTS
depends !sparc
default y if powerpc64
default n
help
Some builds may require a 'biarch' toolchain. This option
allows you to specify an additional target arch.
Most people will answer N here.
config EXTRA_TARGET_ARCH_NAME
string
default "powerpc64" if powerpc64
prompt "Extra architecture name" if EXTRA_TARGET_ARCH
help
Specify the cpu name (eg powerpc64 or x86_64) of the
additional target architecture.
config EXTRA_TARGET_ARCH_OPTS
string
default "-m64" if powerpc64
prompt "Extra architecture compiler options" if EXTRA_TARGET_ARCH
help
If you're specifying an addition target architecture,
you'll probably need to also provide options to make
the compiler use this alternate arch.
For example, if you're building a compiler that can build
both powerpc and powerpc64 binaries, you'll need to
specify -m64 here.
choice
prompt "MIPS64 user-land ABI" if TOOLCHAINOPTS && (mips64 || mips64el)
default MIPS64_ABI_N64
help
MIPS64 supports 3 different user-land ABIs: o32 (legacy),
n32 and n64.
config MIPS64_ABI_N64
bool "n64"
config MIPS64_ABI_N32
bool "n32"
config MIPS64_ABI_O32
bool "o32"
endchoice
comment "Binary tools"
depends TOOLCHAINOPTS
source "toolchain/binutils/Config.in"
comment "Compiler"
depends TOOLCHAINOPTS
source "toolchain/gcc/Config.in"
comment "C Library"
depends TOOLCHAINOPTS
choice
prompt "C Library implementation" if TOOLCHAINOPTS
default USE_UCLIBC
help
Select the C library implementation.
config USE_EGLIBC
bool "Use eglibc"
depends !avr32
config USE_UCLIBC
bool "Use uClibc"
config USE_MUSL
bool "Use musl"
depends !(mips64 || mips64el)
endchoice
source "toolchain/eglibc/Config.in"
source "toolchain/uClibc/Config.in"
source "toolchain/musl/Config.in"
comment "Debuggers"
depends TOOLCHAINOPTS
config GDB
bool
depends !avr32
prompt "Build gdb" if TOOLCHAINOPTS
default y
help
Enable if you want to build the gdb
config INSIGHT
bool
prompt "Build insight-gdb" if TOOLCHAINOPTS
select GDB
default n
help
Enable if you want to build insight-gdb
config USE_UCLIBC
bool
default y if !TOOLCHAINOPTS && !EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN
config USE_EXTERNAL_LIBC
bool
default y if EXTERNAL_TOOLCHAIN || NATIVE_TOOLCHAIN
source "toolchain/gcc/Config.version"
source "toolchain/eglibc/Config.version"
source "toolchain/uClibc/Config.version"
source "toolchain/musl/Config.version"
config LIBC
string
default "eglibc" if USE_EGLIBC
default "uClibc" if USE_UCLIBC
default "musl" if USE_MUSL
config LIBC_VERSION
string
default EGLIBC_VERSION if USE_EGLIBC
default UCLIBC_VERSION if USE_UCLIBC
default MUSL_VERSION if USE_MUSL
config TARGET_SUFFIX
string
default "gnueabi" if USE_EGLIBC && (arm || armeb)
default "gnu" if USE_EGLIBC && !(arm || armeb)
default "uclibcgnueabi" if USE_UCLIBC && (arm || armeb)
default "uclibc" if USE_UCLIBC && !(arm || armeb)
default "muslgnueabi" if USE_MUSL && (arm || armeb)
default "musl" if USE_MUSL && !(arm || armeb)
config MIPS64_ABI
depends mips64 || mips64el
string
default "64" if MIPS64_ABI_N64
default "n32" if MIPS64_ABI_N32
default "32" if MIPS64_ABI_O32
default "64"
|