configs: ensure ARM EABIhf is enabled for configurations using cortex A9
[buildroot-gz.git] / Config.in
blob30e88e3a3ce3b9c3fbddb2f56156efd32029f797
3 mainmenu "Buildroot $BR2_VERSION Configuration"
5 config BR2_HAVE_DOT_CONFIG
6         bool
7         default y
9 config BR2_VERSION
10         string
11         option env="BR2_VERSION_FULL"
13 config BR2_HOSTARCH
14         string
15         option env="HOSTARCH"
17 config BR2_EXTERNAL
18         string
19         option env="BR2_EXTERNAL"
21 # Hidden config symbols for packages to check system gcc version
22 config BR2_HOST_GCC_VERSION
23         string
24         option env="HOST_GCC_VERSION"
26 config BR2_HOST_GCC_AT_LEAST_4_7
27         bool
28         default y if BR2_HOST_GCC_VERSION = "4 7"
30 config BR2_HOST_GCC_AT_LEAST_4_8
31         bool
32         default y if BR2_HOST_GCC_VERSION = "4 8"
33         select BR2_HOST_GCC_AT_LEAST_4_7
35 config BR2_HOST_GCC_AT_LEAST_4_9
36         bool
37         default y if BR2_HOST_GCC_VERSION = "4 9"
38         select BR2_HOST_GCC_AT_LEAST_4_8
40 config BR2_HOST_GCC_AT_LEAST_5
41         bool
42         default y if BR2_HOST_GCC_VERSION = "5"
43         select BR2_HOST_GCC_AT_LEAST_4_9
45 # Hidden boolean selected by packages in need of Java in order to build
46 # (example: xbmc)
47 config BR2_NEEDS_HOST_JAVA
48         bool
50 # Hidden boolean selected by packages in need of javac in order to build
51 # (example: classpath)
52 config BR2_NEEDS_HOST_JAVAC
53         bool
55 # Hidden boolean selected by packages in need of jar in order to build
56 # (example: classpath)
57 config BR2_NEEDS_HOST_JAR
58         bool
60 # Hidden boolean selected by pre-built packages for x86, when they
61 # need to run on x86-64 machines (example: pre-built external
62 # toolchains, binary tools like SAM-BA, etc.).
63 config BR2_HOSTARCH_NEEDS_IA32_LIBS
64         bool
66 # Hidden boolean selected by packages that need to build 32 bits
67 # binaries with the host compiler, even on 64 bits build machines (e.g
68 # bootloaders).
69 config BR2_HOSTARCH_NEEDS_IA32_COMPILER
70         bool
72 source "arch/Config.in"
74 menu "Build options"
76 menu "Commands"
78 config BR2_WGET
79         string "Wget command"
80         default "wget --passive-ftp -nd -t 3"
82 config BR2_SVN
83         string "Subversion (svn) command"
84         default "svn"
86 config BR2_BZR
87         string "Bazaar (bzr) command"
88         default "bzr"
90 config BR2_GIT
91         string "Git command"
92         default "git"
94 config BR2_CVS
95         string "CVS command"
96         default "cvs"
98 config BR2_LOCALFILES
99         string "Local files retrieval command"
100         default "cp"
102 config BR2_SCP
103         string "Secure copy (scp) command"
104         default "scp"
106 config BR2_SSH
107         string "Secure shell (ssh) command"
108         default "ssh"
110 config BR2_HG
111         string "Mercurial (hg) command"
112         default "hg"
114 config BR2_ZCAT
115         string "zcat command"
116         default "gzip -d -c"
117         help
118           Command to be used to extract a gzip'ed file to stdout.
119           zcat is identical to gunzip -c except that the former may
120           not be available on your system.
121           Default is "gzip -d -c"
122           Other possible values include "gunzip -c" or "zcat".
124 config BR2_BZCAT
125         string "bzcat command"
126         default "bzcat"
127         help
128           Command to be used to extract a bzip2'ed file to stdout.
129           bzcat is identical to bunzip2 -c except that the former may
130           not be available on your system.
131           Default is "bzcat"
132           Other possible values include "bunzip2 -c" or "bzip2 -d -c".
134 config BR2_XZCAT
135         string "xzcat command"
136         default "xzcat"
137         help
138           Command to be used to extract a xz'ed file to stdout.
139           Default is "xzcat"
141 config BR2_TAR_OPTIONS
142         string "Tar options"
143         default ""
144         help
145           Options to pass to tar when extracting the sources.
146           E.g. " -v --exclude='*.svn*'" to exclude all .svn internal files
147           and to be verbose.
149 endmenu
151 config BR2_DEFCONFIG_FROM_ENV
152         string
153         option env="BR2_DEFCONFIG"
155 config BR2_DEFCONFIG
156         string "Location to save buildroot config"
157         default BR2_DEFCONFIG_FROM_ENV if BR2_DEFCONFIG_FROM_ENV != ""
158         default "$(CONFIG_DIR)/defconfig"
159         help
160           When running 'make savedefconfig', the defconfig file will be saved
161           in this location.
163 config BR2_DL_DIR
164         string "Download dir"
165         default "$(TOPDIR)/dl"
166         help
167           Directory to store all the source files that we need to fetch.
168           If the Linux shell environment has defined the BR2_DL_DIR
169           environment variable, then this overrides this configuration item.
171           The default is $(TOPDIR)/dl
173 config BR2_HOST_DIR
174         string "Host dir"
175         default "$(BASE_DIR)/host"
176         help
177           Directory to store all the binary files that are built for the host.
178           This includes the cross compilation toolchain when building the
179           internal buildroot toolchain.
181           The default is $(BASE_DIR)/host
183 menu "Mirrors and Download locations"
185 config BR2_PRIMARY_SITE
186         string "Primary download site"
187         default ""
188         help
189           Primary site to download from. If this option is set then buildroot
190           will try to download package source first from this site and try the
191           default if the file is not found.
192           Valid URIs are:
193             - URIs recognized by $(WGET)
194             - local URIs of the form file://absolutepath
195             - scp URIs of the form scp://[user@]host:path.
197 config BR2_PRIMARY_SITE_ONLY
198         bool "Only allow downloads from primary download site"
199         depends on BR2_PRIMARY_SITE != ""
200         help
201           If this option is enabled, downloads will only be attempted
202           from the primary download site. Other locations, like the
203           package's official download location or the backup download
204           site, will not be considered. Therefore, if the package is
205           not present on the primary site, the download fails.
207           This is useful for project developers who want to ensure
208           that the project can be built even if the upstream tarball
209           locations disappear.
211 if !BR2_PRIMARY_SITE_ONLY
213 config BR2_BACKUP_SITE
214         string "Backup download site"
215         default "http://sources.buildroot.net"
216         help
217           Backup site to download from. If this option is set then buildroot
218           will fall back to download package sources from here if the
219           normal location fails.
221 config BR2_KERNEL_MIRROR
222         string "Kernel.org mirror"
223         default "https://www.kernel.org/pub"
224         help
225           kernel.org is mirrored on a number of servers around the world.
226           The following allows you to select your preferred mirror.
228           Have a look on the kernel.org site for a list of mirrors, then enter
229           the URL to the base directory.  Examples:
231              http://www.XX.kernel.org/pub (XX = country code)
232              http://mirror.aarnet.edu.au/pub/ftp.kernel.org
234 config BR2_GNU_MIRROR
235         string "GNU Software mirror"
236         default "http://ftp.gnu.org/pub/gnu"
237         help
238           GNU has multiple software mirrors scattered around the world.
239           The following allows you to select your preferred mirror.
241           Have a look on the gnu.org site for a list of mirrors, then enter
242           the URL to the base directory.  Examples:
244              http://ftp.gnu.org/pub/gnu
245              http://mirror.aarnet.edu.au/pub/gnu
247 config BR2_LUAROCKS_MIRROR
248         string "LuaRocks mirror"
249         default "http://rocks.moonscript.org"
250         help
251           LuaRocks repository.
253           See http://luarocks.org
255 config BR2_CPAN_MIRROR
256         string "CPAN mirror (Perl packages)"
257         default "http://cpan.metacpan.org"
258         help
259           CPAN (Comprehensive Perl Archive Network) is a repository
260           of Perl packages. It has multiple software mirrors scattered
261           around the world. This option allows you to select a mirror.
263           The list of mirrors is available at:
264           http://search.cpan.org/mirror
266 endif
268 endmenu
270 config BR2_JLEVEL
271         int "Number of jobs to run simultaneously (0 for auto)"
272         default "0"
273         help
274           Number of jobs to run simultaneously.  If 0, determine
275           automatically according to number of CPUs on the host
276           system.
278 config BR2_CCACHE
279         bool "Enable compiler cache"
280         help
281           This option will enable the use of ccache, a compiler
282           cache. It will cache the result of previous builds to speed
283           up future builds. By default, the cache is stored in
284           $HOME/.buildroot-ccache.
286           Note that Buildroot does not try to invalidate the cache
287           contents when the compiler changes in an incompatible
288           way. Therefore, if you make a change to the compiler version
289           and/or configuration, you are responsible for purging the
290           ccache cache by removing the $HOME/.buildroot-ccache
291           directory.
293 if BR2_CCACHE
295 config BR2_CCACHE_DIR
296         string "Compiler cache location"
297         default "$(HOME)/.buildroot-ccache"
298         help
299           Where ccache should store cached files.
301 config BR2_CCACHE_INITIAL_SETUP
302         string "Compiler cache initial setup"
303         help
304           Initial ccache settings to apply, such as --max-files or --max-size.
306           For example, if your project is known to require more space than the
307           default max cache size, then you might want to increase the cache size
308           to a suitable amount using the -M (--max-size) option.
310           The string you specify here is passed verbatim to ccache.  Refer to
311           ccache documentation for more details.
313           These initial settings are applied after ccache has been compiled.
315 config BR2_CCACHE_USE_BASEDIR
316         bool "Use relative paths"
317         default y
318         help
319           Allow ccache to convert absolute paths within the output
320           directory into relative paths.
322           During the build, many -I include directives are given with
323           an absolute path. These absolute paths end up in the hashes
324           that are computed by ccache. Therefore, when you build from a
325           different directory, the hash will be different and the
326           cached object will not be used.
328           To improve cache performance, set this option to y. This
329           allows ccache to rewrite absolute paths within the output
330           directory into relative paths. Note that only paths within
331           the output directory will be rewritten; therefore, if you
332           change BR2_HOST_DIR to point outside the output directory and
333           subsequently move it to a different location, this will lead
334           to cache misses.
336           This option has as a result that the debug information in the
337           object files also has only relative paths. Therefore, make
338           sure you cd to the build directory before starting gdb. See
339           the section "COMPILING IN DIFFERENT DIRECTORIES" in the
340           ccache manual for more information.
342 endif
344 config BR2_DEPRECATED
345         bool "Show options and packages that are deprecated or obsolete"
346         help
347           This option shows outdated/obsolete versions of packages and
348           options that are otherwise hidden.
350 if BR2_DEPRECATED
352 config BR2_DEPRECATED_SINCE_2015_05
353         bool
354         default y
356 config BR2_DEPRECATED_SINCE_2015_08
357         bool
358         default y
360 config BR2_DEPRECATED_SINCE_2015_11
361         bool
362         default y
364 config BR2_DEPRECATED_SINCE_2016_02
365         bool
366         default y
368 endif
370 config BR2_ENABLE_DEBUG
371         bool "build packages with debugging symbols"
372         help
373           Build packages with debugging symbols enabled. All libraries
374           and binaries in the 'staging' directory will have debugging
375           symbols, which allows remote debugging even if libraries and
376           binaries are stripped on the target. Whether libraries and
377           binaries are stripped on the target is controlled by the
378           BR2_STRIP_* options below.
380 if BR2_ENABLE_DEBUG
381 choice
382         prompt "gcc debug level"
383         default BR2_DEBUG_2
384         help
385           Set the debug level for gcc
387 config BR2_DEBUG_1
388         bool "debug level 1"
389         help
390           Debug level 1 produces minimal information, enough
391           for making backtraces in parts of the program that
392           you don't plan to debug. This includes descriptions
393           of functions and external variables, but no information
394           about local variables and no line numbers.
396 config BR2_DEBUG_2
397         bool "debug level 2"
398         help
399           The default gcc debug level is 2
401 config BR2_DEBUG_3
402         bool "debug level 3"
403         help
404           Level 3 includes extra information, such as all the
405           macro definitions present in the program. Some debuggers
406           support macro expansion when you use -g3.
407 endchoice
408 endif
410 choice
411         prompt "strip command for binaries on target"
412         default BR2_STRIP_strip
414 config BR2_STRIP_strip
415         bool "strip"
416         depends on !BR2_PACKAGE_HOST_ELF2FLT
417         help
418           Binaries and libraries in the target filesystem will be
419           stripped using the normal 'strip' command. This allows to
420           save space, mainly by removing debugging symbols. Debugging
421           symbols on the target are needed for native debugging, but
422           not when remote debugging is used.
424 config BR2_STRIP_none
425         bool "none"
426         help
427           Do not strip binaries and libraries in the target
428           filesystem.
429 endchoice
431 config BR2_STRIP_EXCLUDE_FILES
432         string "executables that should not be stripped"
433         depends on !BR2_STRIP_none
434         default ""
435         help
436           You may specify a space-separated list of binaries and libraries
437           here that should not be stripped on the target.
439 config BR2_STRIP_EXCLUDE_DIRS
440         string "directories that should be skipped when stripping"
441         depends on !BR2_STRIP_none
442         default ""
443         help
444           You may specify a space-separated list of directories that should
445           be skipped when stripping. Binaries and libraries in these
446           directories will not be touched.
447           The directories should be specified relative to the target directory,
448           without leading slash.
450 choice
451         prompt "gcc optimization level"
452         default BR2_OPTIMIZE_S
453         help
454           Set the optimization level for gcc
456 config BR2_OPTIMIZE_0
457         bool "optimization level 0"
458         help
459           Do not optimize. This is the default.
461 config BR2_OPTIMIZE_1
462         bool "optimization level 1"
463         help
464           Optimize. Optimizing compilation takes somewhat more time,
465           and a lot more memory for a large function. With -O, the
466           compiler tries to reduce code size and execution time,
467           without performing any optimizations that take a great deal
468           of compilation time. -O turns on the following optimization
469           flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability
470           -fcprop-registers -floop-optimize -fif-conversion
471           -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts
472           -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename
473           -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants
474           -O also turns on -fomit-frame-pointer on machines where doing
475           so does not interfere with debugging.
477 config BR2_OPTIMIZE_2
478         bool "optimization level 2"
479         help
480           Optimize even more. GCC performs nearly all supported optimizations
481           that do not involve a space-speed tradeoff. The compiler does not
482           perform loop unrolling or function inlining when you specify -O2.
483           As compared to -O, this option increases both compilation time and
484           the performance of the generated code. -O2 turns on all optimization
485           flags specified by -O. It also turns on the following optimization
486           flags: -fthread-jumps -fcrossjumping -foptimize-sibling-calls
487           -fcse-follow-jumps -fcse-skip-blocks -fgcse  -fgcse-lm
488           -fexpensive-optimizations -fstrength-reduce -frerun-cse-after-loop
489           -frerun-loop-opt -fcaller-saves -fpeephole2 -fschedule-insns
490           -fschedule-insns2 -fsched-interblock -fsched-spec -fregmove
491           -fstrict-aliasing -fdelete-null-pointer-checks -freorder-blocks
492           -freorder-functions -falign-functions -falign-jumps -falign-loops
493           -falign-labels -ftree-vrp -ftree-pre
494           Please note the warning under -fgcse about invoking -O2 on programs
495           that use computed gotos.
497 config BR2_OPTIMIZE_3
498         bool "optimization level 3"
499         help
500           Optimize yet more. -O3 turns on all optimizations specified by -O2
501           and also turns on the -finline-functions, -funswitch-loops and
502           -fgcse-after-reload options.
504 config BR2_OPTIMIZE_S
505         bool "optimize for size"
506         help
507           Optimize for size. -Os enables all -O2 optimizations that do not
508           typically increase code size. It also performs further optimizations
509           designed to reduce code size. -Os disables the following optimization
510           flags: -falign-functions -falign-jumps -falign-loops -falign-labels
511           -freorder-blocks -freorder-blocks-and-partition -fprefetch-loop-arrays
512           -ftree-vect-loop-version
514 endchoice
516 config BR2_GOOGLE_BREAKPAD_ENABLE
517         bool "Enable google-breakpad support"
518         select BR2_PACKAGE_GOOGLE_BREAKPAD
519         depends on BR2_INSTALL_LIBSTDCPP
520         depends on BR2_TOOLCHAIN_USES_GLIBC
521         depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
522         help
523           This option will enable the use of google breakpad, a
524           library and tool suite that allows you to distribute an
525           application to users with compiler-provided debugging
526           information removed, record crashes in compact "minidump"
527           files, send them back to your server and produce C and C++
528           stack traces from these minidumps.  Breakpad can also write
529           minidumps on request for programs that have not crashed.
531 if BR2_GOOGLE_BREAKPAD_ENABLE
533 config BR2_GOOGLE_BREAKPAD_INCLUDE_FILES
534         string "List of executables and libraries to extract symbols from"
535         default ""
536         help
537           You may specify a space-separated list of binaries and
538           libraries with full paths relative to $(TARGET_DIR) of which
539           debug symbols will be dumped for further use with google
540           breakpad.
542           A directory structure that can be used by minidump-stackwalk
543           will be created at:
545           $(STAGING_DIR)/usr/share/google-breakpad-symbols
547 endif
549 choice
550         bool "build code with Stack Smashing Protection"
551         default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy
552         depends on BR2_TOOLCHAIN_HAS_SSP
553         help
554           Enable stack smashing protection support using GCC's
555           -fstack-protector option family.
557           See http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
558           for details.
560           Note that this requires the toolchain to have SSP
561           support. This is always the case for glibc and eglibc
562           toolchain, but is optional in uClibc toolchains.
564 config BR2_SSP_NONE
565         bool "None"
566         help
567           Disable stack-smashing protection.
569 config BR2_SSP_REGULAR
570         bool "-fstack-protector"
571         help
572           Emit extra code to check for buffer overflows, such as stack
573           smashing attacks. This is done by adding a guard variable to
574           functions with vulnerable objects. This includes functions
575           that call alloca, and functions with buffers larger than 8
576           bytes. The guards are initialized when a function is entered
577           and then checked when the function exits. If a guard check
578           fails, an error message is printed and the program exits.
580 config BR2_SSP_STRONG
581         bool "-fstack-protector-strong"
582         depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
583         help
584           Like -fstack-protector but includes additional functions to be
585           protected - those that have local array definitions, or have
586           references to local frame addresses.
588 comment "Stack Smashing Protection strong needs a toolchain w/ gcc >= 4.9"
589         depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
591 config BR2_SSP_ALL
592         bool "-fstack-protector-all"
593         help
594           Like -fstack-protector except that all functions are
595           protected. This option might have a significant performance
596           impact on the compiled binaries.
598 endchoice
600 comment "Stack Smashing Protection needs a toolchain w/ SSP"
601         depends on !BR2_TOOLCHAIN_HAS_SSP
603 choice
604         bool "libraries"
605         default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED
606         default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED
607         help
608           Select the type of libraries you want to use on the target.
610           The default is to build dynamic libraries and use those on
611           the target filesystem, except when the architecture and/or
612           the selected binary format does not support shared
613           libraries.
615 config BR2_STATIC_LIBS
616         bool "static only"
617         help
618           Build and use only static libraries. No shared libraries
619           will be instaled on the target. This potentially increases
620           your code size and should only be used if you know what you
621           are doing. Note that some packages may not be available when
622           this option is enabled, due to their need for dynamic
623           library support.
625 config BR2_SHARED_LIBS
626         bool "shared only"
627         depends on BR2_BINFMT_SUPPORTS_SHARED
628         help
629           Build and use only shared libraries. This is the recommended
630           solution as it saves space and build time.
632 config BR2_SHARED_STATIC_LIBS
633         bool "both static and shared"
634         depends on BR2_BINFMT_SUPPORTS_SHARED
635         help
636           Build both shared and static libraries, but link executables
637           dynamically. While building both shared and static libraries
638           take more time and more disk space, having static libraries
639           may be useful to link some of the applications statically.
641 endchoice
644 config BR2_PACKAGE_OVERRIDE_FILE
645         string "location of a package override file"
646         default "$(CONFIG_DIR)/local.mk"
647         help
648           A package override file is a short makefile that contains
649           variable definitions of the form <pkg>_OVERRIDE_SRCDIR,
650           which allows to tell Buildroot to use an existing directory
651           as the source directory for a particular package. See the
652           Buildroot documentation for more details on this feature.
654 config BR2_GLOBAL_PATCH_DIR
655         string "global patch directories"
656         help
657           You may specify a space separated list of one or more directories
658           containing global package patches. For a specific version
659           <packageversion> of a specific package <packagename>, patches are
660           applied as follows:
662           First, the default Buildroot patch set for the package is applied
663           from the package's directory in Buildroot.
665           Then for every directory - <global-patch-dir> - that exists in
666           BR2_GLOBAL_PATCH_DIR, if the directory
667           <global-patch-dir>/<packagename>/<packageversion>/ exists, then all
668           *.patch files in this directory will be applied.
670           Otherwise, if the directory <global-patch-dir>/<packagename> exists,
671           then all *.patch files in the directory will be applied.
673 menu "Advanced"
675 config BR2_COMPILER_PARANOID_UNSAFE_PATH
676         bool "paranoid check of library/header paths"
677         help
678           By default, when this option is disabled, when the Buildroot
679           cross-compiler will encounter an unsafe library or header
680           path (such as /usr/include, or /usr/lib), the compiler will
681           display a warning.
683           By enabling this option, this warning is turned into an
684           error, which will completely abort the build when such
685           unsafe paths are encountered.
687           Note that this mechanism is available for both the internal
688           toolchain (through gcc and binutils patches) and external
689           toolchain backends (through the external toolchain wrapper).
691 endmenu
693 endmenu
695 source "toolchain/Config.in"
697 source "system/Config.in"
699 source "linux/Config.in"
701 source "package/Config.in"
703 source "fs/Config.in"
705 source "boot/Config.in"
707 source "package/Config.in.host"
709 source "Config.in.legacy"
711 menu "User-provided options"
712         depends on BR2_EXTERNAL != "support/dummy-external"
714 source "$BR2_EXTERNAL/Config.in"
716 endmenu