package/gcc: fix fortran support
[buildroot-gz.git] / arch / Config.in
blobbe37481ac2b29fdf1da187f354446b934ebdfbc1
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         help
340           Allow for the data and text segments to be separated and placed in
341           different regions of memory.
343 config BR2_BINFMT_FLAT_SHARED
344         bool "Shared binary"
345         # Even though this really generates shared binaries, there is no libdl
346         # and dlopen() cannot be used. So packages that require shared
347         # libraries cannot be built. Therefore, we don't select
348         # BR2_BINFMT_SUPPORTS_SHARED and therefore force BR2_STATIC_LIBS.
349         # Although this adds -static to the compilation, that's not a problem
350         # because the -mid-shared-library option overrides it.
351         help
352           Allow to load and link indiviual FLAT binaries at run time.
354 endchoice
356 if BR2_arcle || BR2_arceb
357 source "arch/Config.in.arc"
358 endif
360 if BR2_arm || BR2_armeb
361 source "arch/Config.in.arm"
362 endif
364 if BR2_aarch64 || BR2_aarch64_be
365 source "arch/Config.in.aarch64"
366 endif
368 if BR2_bfin
369 source "arch/Config.in.bfin"
370 endif
372 if BR2_m68k
373 source "arch/Config.in.m68k"
374 endif
376 if BR2_microblazeel || BR2_microblazebe
377 source "arch/Config.in.microblaze"
378 endif
380 if BR2_mips || BR2_mips64 || BR2_mipsel || BR2_mips64el
381 source "arch/Config.in.mips"
382 endif
384 if BR2_nios2
385 source "arch/Config.in.nios2"
386 endif
388 if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
389 source "arch/Config.in.powerpc"
390 endif
392 if BR2_sh || BR2_sh64
393 source "arch/Config.in.sh"
394 endif
396 if BR2_sparc || BR2_sparc64
397 source "arch/Config.in.sparc"
398 endif
400 if BR2_i386 || BR2_x86_64
401 source "arch/Config.in.x86"
402 endif
404 if BR2_xtensa
405 source "arch/Config.in.xtensa"
406 endif
408 endmenu # Target options