erlang-rebar: bump to version 2.6.4
[buildroot-gz.git] / arch / Config.in
blob3caca158eb258520a9729447db34b189cdaed45a
1 menu "Target options"
3 config BR2_ARCH_IS_64
4         bool
6 config BR2_KERNEL_64_USERLAND_32
7         bool
9 config BR2_SOFT_FLOAT
10         bool
12 config BR2_ARCH_HAS_MMU_MANDATORY
13         bool
15 config BR2_ARCH_HAS_MMU_OPTIONAL
16         bool
18 config BR2_ARCH_HAS_FDPIC_SUPPORT
19         bool
21 choice
22         prompt "Target Architecture"
23         default BR2_i386
24         help
25           Select the target architecture family to build for.
27 config BR2_arcle
28         bool "ARC (little endian)"
29         select BR2_ARCH_HAS_MMU_MANDATORY
30         help
31           Synopsys' DesignWare ARC Processor Cores are a family of 32-bit CPUs
32           that can be used from deeply embedded to high performance host
33           applications. Little endian.
35 config BR2_arceb
36         bool "ARC (big endian)"
37         select BR2_ARCH_HAS_MMU_MANDATORY
38         help
39           Synopsys' DesignWare ARC Processor Cores are a family of 32-bit CPUs
40           that can be used from deeply embedded to high performance host
41           applications. Big endian.
43 config BR2_arm
44         bool "ARM (little endian)"
45         # MMU support is set by the subarchitecture file, arch/Config.in.arm
46         help
47           ARM is a 32-bit reduced instruction set computer (RISC) instruction
48           set architecture (ISA) developed by ARM Holdings. Little endian.
49           http://www.arm.com/
50           http://en.wikipedia.org/wiki/ARM
52 config BR2_armeb
53         bool "ARM (big endian)"
54         # MMU support is set by the subarchitecture file, arch/Config.in.arm
55         help
56           ARM is a 32-bit reduced instruction set computer (RISC) instruction
57           set architecture (ISA) developed by ARM Holdings. Big endian.
58           http://www.arm.com/
59           http://en.wikipedia.org/wiki/ARM
61 config BR2_aarch64
62         bool "AArch64 (little endian)"
63         select BR2_ARCH_IS_64
64         select BR2_ARCH_HAS_MMU_MANDATORY
65         help
66           Aarch64 is a 64-bit architecture developed by ARM Holdings.
67           http://www.arm.com/products/processors/instruction-set-architectures/armv8-architecture.php
68           http://en.wikipedia.org/wiki/ARM
70 config BR2_aarch64_be
71         bool "AArch64 (big endian)"
72         select BR2_ARCH_IS_64
73         select BR2_ARCH_HAS_MMU_MANDATORY
74         help
75           Aarch64 is a 64-bit architecture developed by ARM Holdings.
76           http://www.arm.com/products/processors/instruction-set-architectures/armv8-architecture.php
77           http://en.wikipedia.org/wiki/ARM
79 config BR2_bfin
80         bool "Blackfin"
81         select BR2_ARCH_HAS_FDPIC_SUPPORT
82         help
83           The Blackfin is a family of 16 or 32-bit microprocessors developed,
84           manufactured and marketed by Analog Devices.
85           http://www.analog.com/
86           http://en.wikipedia.org/wiki/Blackfin
88 config BR2_i386
89         bool "i386"
90         select BR2_ARCH_HAS_MMU_MANDATORY
91         help
92           Intel i386 architecture compatible microprocessor
93           http://en.wikipedia.org/wiki/I386
95 config BR2_m68k
96         bool "m68k"
97         # MMU support is set by the subarchitecture file, arch/Config.in.m68k
98         help
99           Motorola 68000 family microprocessor
100           http://en.wikipedia.org/wiki/M68k
102 config BR2_microblazeel
103         bool "Microblaze AXI (little endian)"
104         select BR2_ARCH_HAS_MMU_MANDATORY
105         help
106           Soft processor core designed for Xilinx FPGAs from Xilinx. AXI bus
107           based architecture (little endian)
108           http://www.xilinx.com
109           http://en.wikipedia.org/wiki/Microblaze
111 config BR2_microblazebe
112         bool "Microblaze non-AXI (big endian)"
113         select BR2_ARCH_HAS_MMU_MANDATORY
114         help
115           Soft processor core designed for Xilinx FPGAs from Xilinx. PLB bus
116           based architecture (non-AXI, big endian)
117           http://www.xilinx.com
118           http://en.wikipedia.org/wiki/Microblaze
120 config BR2_mips
121         bool "MIPS (big endian)"
122         select BR2_ARCH_HAS_MMU_MANDATORY
123         help
124           MIPS is a RISC microprocessor from MIPS Technologies. Big endian.
125           http://www.mips.com/
126           http://en.wikipedia.org/wiki/MIPS_Technologies
128 config BR2_mipsel
129         bool "MIPS (little endian)"
130         select BR2_ARCH_HAS_MMU_MANDATORY
131         help
132           MIPS is a RISC microprocessor from MIPS Technologies. Little endian.
133           http://www.mips.com/
134           http://en.wikipedia.org/wiki/MIPS_Technologies
136 config BR2_mips64
137         bool "MIPS64 (big endian)"
138         select BR2_ARCH_IS_64
139         select BR2_ARCH_HAS_MMU_MANDATORY
140         help
141           MIPS is a RISC microprocessor from MIPS Technologies. Big endian.
142           http://www.mips.com/
143           http://en.wikipedia.org/wiki/MIPS_Technologies
145 config BR2_mips64el
146         bool "MIPS64 (little endian)"
147         select BR2_ARCH_IS_64
148         select BR2_ARCH_HAS_MMU_MANDATORY
149         help
150           MIPS is a RISC microprocessor from MIPS Technologies. Little endian.
151           http://www.mips.com/
152           http://en.wikipedia.org/wiki/MIPS_Technologies
154 config BR2_nios2
155         bool "Nios II"
156         select BR2_ARCH_HAS_MMU_MANDATORY
157         help
158           Nios II is a soft core processor from Altera Corporation.
159           http://www.altera.com/
160           http://en.wikipedia.org/wiki/Nios_II
162 config BR2_powerpc
163         bool "PowerPC"
164         select BR2_ARCH_HAS_MMU_MANDATORY
165         help
166           PowerPC is a RISC architecture created by Apple-IBM-Motorola alliance.
167           Big endian.
168           http://www.power.org/
169           http://en.wikipedia.org/wiki/Powerpc
171 config BR2_powerpc64
172         bool "PowerPC64 (big endian)"
173         select BR2_ARCH_IS_64
174         select BR2_ARCH_HAS_MMU_MANDATORY
175         help
176           PowerPC is a RISC architecture created by Apple-IBM-Motorola alliance.
177           Big endian.
178           http://www.power.org/
179           http://en.wikipedia.org/wiki/Powerpc
181 config BR2_powerpc64le
182         bool "PowerPC64 (little endian)"
183         select BR2_ARCH_IS_64
184         select BR2_ARCH_HAS_MMU_MANDATORY
185         help
186           PowerPC is a RISC architecture created by Apple-IBM-Motorola alliance.
187           Little endian.
188           http://www.power.org/
189           http://en.wikipedia.org/wiki/Powerpc
191 config BR2_sh
192         bool "SuperH"
193         select BR2_ARCH_HAS_MMU_OPTIONAL
194         help
195           SuperH (or SH) is a 32-bit reduced instruction set computer (RISC)
196           instruction set architecture (ISA) developed by Hitachi.
197           http://www.hitachi.com/
198           http://en.wikipedia.org/wiki/SuperH
200 config BR2_sh64
201         bool "SuperH64"
202         depends on BR2_DEPRECATED_SINCE_2015_05
203         select BR2_ARCH_HAS_MMU_MANDATORY
204         help
205           SuperH64 (or SH) is a 64-bit reduced instruction set computer (RISC)
206           instruction set architecture (ISA) developed by Hitachi.
207           http://www.hitachi.com/
208           http://en.wikipedia.org/wiki/SuperH
210 config BR2_sparc
211         bool "SPARC"
212         select BR2_ARCH_HAS_MMU_MANDATORY
213         help
214           SPARC (from Scalable Processor Architecture) is a RISC instruction
215           set architecture (ISA) developed by Sun Microsystems.
216           http://www.oracle.com/sun
217           http://en.wikipedia.org/wiki/Sparc
219 config BR2_sparc64
220         bool "SPARC64"
221         select BR2_ARCH_IS_64
222         select BR2_ARCH_HAS_MMU_MANDATORY
223         help
224           SPARC (from Scalable Processor Architecture) is a RISC instruction
225           set architecture (ISA) developed by Sun Microsystems.
226           http://www.oracle.com/sun
227           http://en.wikipedia.org/wiki/Sparc
229 config BR2_x86_64
230         bool "x86_64"
231         select BR2_ARCH_IS_64
232         select BR2_ARCH_HAS_MMU_MANDATORY
233         help
234           x86-64 is an extension of the x86 instruction set (Intel i386
235           architecture compatible microprocessor).
236           http://en.wikipedia.org/wiki/X86_64
238 config BR2_xtensa
239         bool "Xtensa"
240         # MMU support is set by the subarchitecture file, arch/Config.in.xtensa
241         help
242           Xtensa is a Tensilica processor IP architecture.
243           http://en.wikipedia.org/wiki/Xtensa
244           http://www.tensilica.com/
246 endchoice
248 # The following string values are defined by the individual
249 # Config.in.$ARCH files
250 config BR2_ARCH
251         string
253 config BR2_ENDIAN
254         string
256 config BR2_GCC_TARGET_ARCH
257         string
259 config BR2_GCC_TARGET_ABI
260         string
262 config BR2_GCC_TARGET_CPU
263         string
265 config BR2_GCC_TARGET_CPU_REVISION
266         string
268 # The value of this option will be passed as --with-fpu=<value> when
269 # building gcc (internal backend) or -mfpu=<value> in the toolchain
270 # wrapper (external toolchain)
271 config BR2_GCC_TARGET_FPU
272         string
274 # The value of this option will be passed as --with-float=<value> when
275 # building gcc (internal backend) or -mfloat-abi=<value> in the toolchain
276 # wrapper (external toolchain)
277 config BR2_GCC_TARGET_FLOAT_ABI
278         string
280 # The value of this option will be passed as --with-mode=<value> when
281 # building gcc (internal backend) or -m<value> in the toolchain
282 # wrapper (external toolchain)
283 config BR2_GCC_TARGET_MODE
284         string
286 # Must be selected by binary formats that support shared libraries.
287 config BR2_BINFMT_SUPPORTS_SHARED
288         bool
290 # Set up target binary format
291 choice
292         prompt "Target Binary Format"
293         default BR2_BINFMT_ELF if BR2_USE_MMU
294         default BR2_BINFMT_FDPIC if BR2_ARCH_HAS_FDPIC_SUPPORT
295         default BR2_BINFMT_FLAT
297 config BR2_BINFMT_ELF
298         bool "ELF"
299         depends on BR2_USE_MMU
300         select BR2_BINFMT_SUPPORTS_SHARED
301         help
302           ELF (Executable and Linkable Format) is a format for libraries and
303           executables used across different architectures and operating
304           systems.
306 config BR2_BINFMT_FDPIC
307         bool "FDPIC"
308         depends on BR2_ARCH_HAS_FDPIC_SUPPORT
309         select BR2_BINFMT_SUPPORTS_SHARED
310         help
311           ELF FDPIC binaries are based on ELF, but allow the individual load
312           segments of a binary to be located in memory independently of each
313           other. This makes this format ideal for use in environments where no
314           MMU is available.
316 config BR2_BINFMT_FLAT
317         bool "FLAT"
318         depends on !BR2_USE_MMU
319         help
320           FLAT binary is a relatively simple and lightweight executable format
321           based on the original a.out format. It is widely used in environment
322           where no MMU is available.
324 endchoice
326 # Set up flat binary type
327 choice
328         prompt "FLAT Binary type"
329         depends on BR2_BINFMT_FLAT
330         default BR2_BINFMT_FLAT_ONE
332 config BR2_BINFMT_FLAT_ONE
333         bool "One memory region"
334         help
335           All segments are linked into one memory region.
337 config BR2_BINFMT_FLAT_SEP_DATA
338         bool "Separate data and code region"
339         # this FLAT binary type technically exists on m68k, but fails
340         # to build numerous packages: due to architecture limitation,
341         # big functions cannot be built in this mode. They cause build
342         # failures such as "Tried to convert PC relative branch to
343         # absolute jump" or "error: value -yyyyy out of range".
344         depends on BR2_bfin
345         help
346           Allow for the data and text segments to be separated and placed in
347           different regions of memory.
349 config BR2_BINFMT_FLAT_SHARED
350         bool "Shared binary"
351         depends on BR2_m68k || BR2_bfin
352         # Even though this really generates shared binaries, there is no libdl
353         # and dlopen() cannot be used. So packages that require shared
354         # libraries cannot be built. Therefore, we don't select
355         # BR2_BINFMT_SUPPORTS_SHARED and therefore force BR2_STATIC_LIBS.
356         # Although this adds -static to the compilation, that's not a problem
357         # because the -mid-shared-library option overrides it.
358         help
359           Allow to load and link indiviual FLAT binaries at run time.
361 endchoice
363 if BR2_arcle || BR2_arceb
364 source "arch/Config.in.arc"
365 endif
367 if BR2_arm || BR2_armeb
368 source "arch/Config.in.arm"
369 endif
371 if BR2_aarch64 || BR2_aarch64_be
372 source "arch/Config.in.aarch64"
373 endif
375 if BR2_bfin
376 source "arch/Config.in.bfin"
377 endif
379 if BR2_m68k
380 source "arch/Config.in.m68k"
381 endif
383 if BR2_microblazeel || BR2_microblazebe
384 source "arch/Config.in.microblaze"
385 endif
387 if BR2_mips || BR2_mips64 || BR2_mipsel || BR2_mips64el
388 source "arch/Config.in.mips"
389 endif
391 if BR2_nios2
392 source "arch/Config.in.nios2"
393 endif
395 if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
396 source "arch/Config.in.powerpc"
397 endif
399 if BR2_sh || BR2_sh64
400 source "arch/Config.in.sh"
401 endif
403 if BR2_sparc || BR2_sparc64
404 source "arch/Config.in.sparc"
405 endif
407 if BR2_i386 || BR2_x86_64
408 source "arch/Config.in.x86"
409 endif
411 if BR2_xtensa
412 source "arch/Config.in.xtensa"
413 endif
415 endmenu # Target options