]> Git Repo - buildroot-mgba.git/blame - Config.in
configs/bananapi_m2_ultra: new defconfig
[buildroot-mgba.git] / Config.in
CommitLineData
2d523c23
EA
1#
2
6a53b729 3mainmenu "Buildroot $BR2_VERSION Configuration"
2d523c23
EA
4
5config BR2_HAVE_DOT_CONFIG
6 bool
7 default y
8
f5b8cd4a
BRF
9config BR2_VERSION
10 string
56c68bcd 11 option env="BR2_VERSION_FULL"
f5b8cd4a 12
1d4104f0
FP
13config BR2_HOSTARCH
14 string
15 option env="HOSTARCH"
16
4802db3d
YM
17config BR2_BUILD_DIR
18 string
19 option env="BUILD_DIR"
20
12825f7a
AV
21# Hidden config symbols for packages to check system gcc version
22config BR2_HOST_GCC_VERSION
23 string
24 option env="HOST_GCC_VERSION"
25
e488b56c
TP
26config BR2_HOST_GCC_AT_LEAST_4_5
27 bool
28 default y if BR2_HOST_GCC_VERSION = "4 5"
29
8fce6d7c
BK
30config BR2_HOST_GCC_AT_LEAST_4_6
31 bool
32 default y if BR2_HOST_GCC_VERSION = "4 6"
e488b56c 33 select BR2_HOST_GCC_AT_LEAST_4_5
8fce6d7c 34
12825f7a
AV
35config BR2_HOST_GCC_AT_LEAST_4_7
36 bool
37 default y if BR2_HOST_GCC_VERSION = "4 7"
8fce6d7c 38 select BR2_HOST_GCC_AT_LEAST_4_6
12825f7a
AV
39
40config BR2_HOST_GCC_AT_LEAST_4_8
41 bool
42 default y if BR2_HOST_GCC_VERSION = "4 8"
43 select BR2_HOST_GCC_AT_LEAST_4_7
44
45config BR2_HOST_GCC_AT_LEAST_4_9
46 bool
47 default y if BR2_HOST_GCC_VERSION = "4 9"
48 select BR2_HOST_GCC_AT_LEAST_4_8
49
50config BR2_HOST_GCC_AT_LEAST_5
51 bool
52 default y if BR2_HOST_GCC_VERSION = "5"
53 select BR2_HOST_GCC_AT_LEAST_4_9
54
3d217578
MB
55config BR2_HOST_GCC_AT_LEAST_6
56 bool
57 default y if BR2_HOST_GCC_VERSION = "6"
58 select BR2_HOST_GCC_AT_LEAST_5
59
435b4cce
APC
60config BR2_HOST_GCC_AT_LEAST_7
61 bool
62 default y if BR2_HOST_GCC_VERSION = "7"
63 select BR2_HOST_GCC_AT_LEAST_6
64
e13ab2e0
SB
65config BR2_HOST_GCC_AT_LEAST_8
66 bool
67 default y if BR2_HOST_GCC_VERSION = "8"
68 select BR2_HOST_GCC_AT_LEAST_7
69
aac3d2b4 70# Hidden boolean selected by packages in need of Java in order to build
4f3fdf15 71# (example: kodi)
0721c713 72config BR2_NEEDS_HOST_JAVA
aac3d2b4
MH
73 bool
74
8f9da282
MH
75# Hidden boolean selected by packages in need of javac in order to build
76# (example: classpath)
77config BR2_NEEDS_HOST_JAVAC
78 bool
79
80# Hidden boolean selected by packages in need of jar in order to build
81# (example: classpath)
82config BR2_NEEDS_HOST_JAR
83 bool
84
70d6037e
TP
85# Hidden boolean selected by pre-built packages for x86, when they
86# need to run on x86-64 machines (example: pre-built external
87# toolchains, binary tools like SAM-BA, etc.).
88config BR2_HOSTARCH_NEEDS_IA32_LIBS
89 bool
90
0e4bc502
TP
91# Hidden boolean selected by packages that need to build 32 bits
92# binaries with the host compiler, even on 64 bits build machines (e.g
93# bootloaders).
94config BR2_HOSTARCH_NEEDS_IA32_COMPILER
95 bool
96
de0df997
YM
97# Hidden boolean selected by packages that need the host to have an
98# UTF8 locale.
99config BR2_NEEDS_HOST_UTF8_LOCALE
100 bool
101
79ee3c1f 102source "arch/Config.in"
7d8a59b4 103
8e5fb3fb
EA
104menu "Build options"
105
15929265
TP
106menu "Commands"
107
2d523c23 108config BR2_WGET
8e5fb3fb 109 string "Wget command"
6871b165 110 default "wget --passive-ftp -nd -t 3"
2d523c23 111
cf71111b
MP
112config BR2_SVN
113 string "Subversion (svn) command"
ad477b08 114 default "svn --non-interactive"
e30cf26c 115
cf71111b
MP
116config BR2_BZR
117 string "Bazaar (bzr) command"
118 default "bzr"
df03cdaf 119
85f54fbe 120config BR2_GIT
cf71111b
MP
121 string "Git command"
122 default "git"
85f54fbe 123
15eb1faf
GZ
124config BR2_CVS
125 string "CVS command"
126 default "cvs"
127
2690e76a
DW
128config BR2_LOCALFILES
129 string "Local files retrieval command"
130 default "cp"
131
c61788f0
TDS
132config BR2_SCP
133 string "Secure copy (scp) command"
134 default "scp"
135
136config BR2_SSH
137 string "Secure shell (ssh) command"
138 default "ssh"
139
f694c076
TDS
140config BR2_HG
141 string "Mercurial (hg) command"
142 default "hg"
143
859b9137
BRF
144config BR2_ZCAT
145 string "zcat command"
a9612bfd 146 default "gzip -d -c"
859b9137 147 help
65f9b937
MK
148 Command to be used to extract a gzip'ed file to stdout. zcat
149 is identical to gunzip -c except that the former may not be
150 available on your system.
a9612bfd
BRF
151 Default is "gzip -d -c"
152 Other possible values include "gunzip -c" or "zcat".
6e2823c1
BRF
153
154config BR2_BZCAT
155 string "bzcat command"
156 default "bzcat"
157 help
158 Command to be used to extract a bzip2'ed file to stdout.
159 bzcat is identical to bunzip2 -c except that the former may
160 not be available on your system.
161 Default is "bzcat"
162 Other possible values include "bunzip2 -c" or "bzip2 -d -c".
859b9137 163
177b4b4a
AN
164config BR2_XZCAT
165 string "xzcat command"
166 default "xzcat"
167 help
168 Command to be used to extract a xz'ed file to stdout.
169 Default is "xzcat"
170
f165032e
BS
171config BR2_LZCAT
172 string "lzcat command"
173 default "lzip -d -c"
174 help
175 Command to be used to extract a lzip'ed file to stdout.
176 Default is "lzip -d -c"
177
ce90aae1
BRF
178config BR2_TAR_OPTIONS
179 string "Tar options"
7df4de6c
BRF
180 default ""
181 help
182 Options to pass to tar when extracting the sources.
d6109172
RM
183 E.g. " -v --exclude='*.svn*'" to exclude all .svn internal
184 files and to be verbose.
ce90aae1 185
15929265
TP
186endmenu
187
4e0170d6
AVEM
188config BR2_DEFCONFIG_FROM_ENV
189 string
190 option env="BR2_DEFCONFIG"
191
192config BR2_DEFCONFIG
193 string "Location to save buildroot config"
194 default BR2_DEFCONFIG_FROM_ENV if BR2_DEFCONFIG_FROM_ENV != ""
195 default "$(CONFIG_DIR)/defconfig"
196 help
65f9b937
MK
197 When running 'make savedefconfig', the defconfig file will be
198 saved in this location.
4e0170d6 199
59a63a91
MF
200config BR2_DL_DIR
201 string "Download dir"
be695dcc 202 default "$(TOPDIR)/dl"
59a63a91
MF
203 help
204 Directory to store all the source files that we need to fetch.
6768021c 205 If the Linux shell environment has defined the BR2_DL_DIR
65f9b937
MK
206 environment variable, then this overrides this configuration
207 item.
7e58fdc5
TP
208 The directory is organized with a subdirectory for each
209 package. Each package has its own $(LIBFOO_DL_DIR) variable
210 that can be used to find the correct path.
59a63a91 211
be695dcc 212 The default is $(TOPDIR)/dl
4b0d5a80 213
a2b4f7fb
GZ
214config BR2_HOST_DIR
215 string "Host dir"
216 default "$(BASE_DIR)/host"
217 help
65f9b937
MK
218 Directory to store all the binary files that are built for the
219 host. This includes the cross compilation toolchain when
220 building the internal buildroot toolchain.
a2b4f7fb
GZ
221
222 The default is $(BASE_DIR)/host
223
8008007c
TP
224menu "Mirrors and Download locations"
225
226config BR2_PRIMARY_SITE
227 string "Primary download site"
228 default ""
229 help
65f9b937
MK
230 Primary site to download from. If this option is set then
231 buildroot will try to download package source first from this
232 site and try the default if the file is not found.
4a9d9807
JP
233 Valid URIs are:
234 - URIs recognized by $(WGET)
235 - local URIs of the form file://absolutepath
236 - scp URIs of the form scp://[user@]host:path.
8008007c 237
5a83e084
TDS
238config BR2_PRIMARY_SITE_ONLY
239 bool "Only allow downloads from primary download site"
240 depends on BR2_PRIMARY_SITE != ""
241 help
242 If this option is enabled, downloads will only be attempted
243 from the primary download site. Other locations, like the
244 package's official download location or the backup download
65f9b937
MK
245 site, will not be considered. Therefore, if the package is not
246 present on the primary site, the download fails.
5a83e084 247
65f9b937
MK
248 This is useful for project developers who want to ensure that
249 the project can be built even if the upstream tarball
5a83e084
TDS
250 locations disappear.
251
252if !BR2_PRIMARY_SITE_ONLY
253
8008007c
TP
254config BR2_BACKUP_SITE
255 string "Backup download site"
4a9eb20d 256 default "http://sources.buildroot.net"
8008007c 257 help
65f9b937
MK
258 Backup site to download from. If this option is set then
259 buildroot will fall back to download package sources from here
260 if the normal location fails.
8008007c
TP
261
262config BR2_KERNEL_MIRROR
263 string "Kernel.org mirror"
de76cb7d 264 default "https://cdn.kernel.org/pub"
8008007c 265 help
de76cb7d 266 kernel.org is mirrored on a number of servers around the
65f9b937 267 world. The following allows you to select your preferred
de76cb7d
AB
268 mirror. By default, a CDN is used, which automatically
269 redirects to a mirror geographically close to you.
8008007c 270
65f9b937
MK
271 Have a look on the kernel.org site for a list of mirrors, then
272 enter the URL to the base directory. Examples:
8008007c
TP
273
274 http://www.XX.kernel.org/pub (XX = country code)
275 http://mirror.aarnet.edu.au/pub/ftp.kernel.org
276
277config BR2_GNU_MIRROR
278 string "GNU Software mirror"
3999f0ad 279 default "http://ftpmirror.gnu.org"
8008007c 280 help
3999f0ad 281 GNU has multiple software mirrors scattered around the
65f9b937 282 world. The following allows you to select your preferred
3999f0ad
TP
283 mirror. By default, a generic address is used, which
284 automatically selects an up-to-date and local mirror.
8008007c 285
65f9b937
MK
286 Have a look on the gnu.org site for a list of mirrors, then
287 enter the URL to the base directory. Examples:
8008007c
TP
288
289 http://ftp.gnu.org/pub/gnu
290 http://mirror.aarnet.edu.au/pub/gnu
291
72afb294
FP
292config BR2_LUAROCKS_MIRROR
293 string "LuaRocks mirror"
0b8411af 294 default "http://rocks.moonscript.org"
72afb294
FP
295 help
296 LuaRocks repository.
297
298 See http://luarocks.org
299
9fbb1699
FP
300config BR2_CPAN_MIRROR
301 string "CPAN mirror (Perl packages)"
32567d12 302 default "http://cpan.metacpan.org"
9fbb1699 303 help
65f9b937
MK
304 CPAN (Comprehensive Perl Archive Network) is a repository of
305 Perl packages. It has multiple software mirrors scattered
9fbb1699
FP
306 around the world. This option allows you to select a mirror.
307
308 The list of mirrors is available at:
309 http://search.cpan.org/mirror
310
3318a5a7
YM
311endif
312
8008007c 313endmenu
aa41d377 314
8e5fb3fb 315config BR2_JLEVEL
5016aa02
NL
316 int "Number of jobs to run simultaneously (0 for auto)"
317 default "0"
8e5fb3fb 318 help
65f9b937
MK
319 Number of jobs to run simultaneously. If 0, determine
320 automatically according to number of CPUs on the host system.
93ab6d30 321
17b66aff
TP
322config BR2_CCACHE
323 bool "Enable compiler cache"
324 help
65f9b937
MK
325 This option will enable the use of ccache, a compiler cache.
326 It will cache the result of previous builds to speed up future
327 builds. By default, the cache is stored in
17b66aff
TP
328 $HOME/.buildroot-ccache.
329
f044e037 330 Note that Buildroot does not try to invalidate the cache
65f9b937
MK
331 contents when the compiler changes in an incompatible way.
332 Therefore, if you make a change to the compiler version and/or
333 configuration, you are responsible for purging the ccache
334 cache by removing the $HOME/.buildroot-ccache directory.
f044e037 335
dd79f2df
DM
336if BR2_CCACHE
337
43329076
TDS
338config BR2_CCACHE_DIR
339 string "Compiler cache location"
43329076
TDS
340 default "$(HOME)/.buildroot-ccache"
341 help
342 Where ccache should store cached files.
ad980ccc
TP
343 If the Linux shell environment has defined the BR2_CCACHE_DIR
344 environment variable, then this overrides this configuration
345 item.
43329076 346
dd79f2df
DM
347config BR2_CCACHE_INITIAL_SETUP
348 string "Compiler cache initial setup"
349 help
65f9b937
MK
350 Initial ccache settings to apply, such as --max-files or
351 --max-size.
dd79f2df 352
65f9b937
MK
353 For example, if your project is known to require more space
354 than the default max cache size, then you might want to
355 increase the cache size to a suitable amount using the -M
356 (--max-size) option.
dd79f2df 357
65f9b937
MK
358 The string you specify here is passed verbatim to ccache.
359 Refer to ccache documentation for more details.
dd79f2df 360
65f9b937
MK
361 These initial settings are applied after ccache has been
362 compiled.
dd79f2df 363
1e97b278
AV
364config BR2_CCACHE_USE_BASEDIR
365 bool "Use relative paths"
366 default y
367 help
368 Allow ccache to convert absolute paths within the output
369 directory into relative paths.
370
65f9b937
MK
371 During the build, many -I include directives are given with an
372 absolute path. These absolute paths end up in the hashes that
373 are computed by ccache. Therefore, when you build from a
374 different directory, the hash will be different and the cached
375 object will not be used.
1e97b278
AV
376
377 To improve cache performance, set this option to y. This
378 allows ccache to rewrite absolute paths within the output
65f9b937
MK
379 directory into relative paths. Note that only paths within the
380 output directory will be rewritten; therefore, if you change
381 BR2_HOST_DIR to point outside the output directory and
1e97b278
AV
382 subsequently move it to a different location, this will lead
383 to cache misses.
384
385 This option has as a result that the debug information in the
386 object files also has only relative paths. Therefore, make
387 sure you cd to the build directory before starting gdb. See
65f9b937
MK
388 the section "COMPILING IN DIFFERENT DIRECTORIES" in the ccache
389 manual for more information.
1e97b278 390
dd79f2df
DM
391endif
392
41f6b79f
JV
393config BR2_ENABLE_DEBUG
394 bool "build packages with debugging symbols"
41f6b79f 395 help
a9a34676
TP
396 Build packages with debugging symbols enabled. All libraries
397 and binaries in the 'staging' directory will have debugging
398 symbols, which allows remote debugging even if libraries and
399 binaries are stripped on the target. Whether libraries and
400 binaries are stripped on the target is controlled by the
401 BR2_STRIP_* options below.
41f6b79f
JV
402
403if BR2_ENABLE_DEBUG
404choice
405 prompt "gcc debug level"
406 default BR2_DEBUG_2
407 help
408 Set the debug level for gcc
409
410config BR2_DEBUG_1
411 bool "debug level 1"
412 help
65f9b937
MK
413 Debug level 1 produces minimal information, enough for making
414 backtraces in parts of the program that you don't plan to
415 debug. This includes descriptions of functions and external
416 variables, but no information about local variables and no
417 line numbers.
41f6b79f
JV
418
419config BR2_DEBUG_2
420 bool "debug level 2"
421 help
422 The default gcc debug level is 2
423
424config BR2_DEBUG_3
425 bool "debug level 3"
426 help
65f9b937
MK
427 Level 3 includes extra information, such as all the macro
428 definitions present in the program. Some debuggers support
429 macro expansion when you use -g3.
41f6b79f
JV
430endchoice
431endif
432
bbd251a0 433config BR2_STRIP_strip
0d643fd3 434 bool "strip target binaries"
0d643fd3 435 default y
a1264445 436 depends on !BR2_PACKAGE_HOST_ELF2FLT
bbd251a0 437 help
a9a34676 438 Binaries and libraries in the target filesystem will be
65f9b937
MK
439 stripped using the normal 'strip' command. This allows to save
440 space, mainly by removing debugging symbols. Debugging symbols
441 on the target are needed for native debugging, but not when
442 remote debugging is used.
85f54fbe 443
2a97045d
TDS
444config BR2_STRIP_EXCLUDE_FILES
445 string "executables that should not be stripped"
2a97045d 446 default ""
a1264445 447 depends on BR2_STRIP_strip
2a97045d 448 help
65f9b937
MK
449 You may specify a space-separated list of binaries and
450 libraries here that should not be stripped on the target.
2a97045d
TDS
451
452config BR2_STRIP_EXCLUDE_DIRS
453 string "directories that should be skipped when stripping"
2a97045d 454 default ""
a1264445 455 depends on BR2_STRIP_strip
2a97045d 456 help
65f9b937
MK
457 You may specify a space-separated list of directories that
458 should be skipped when stripping. Binaries and libraries in
459 these directories will not be touched. The directories should
460 be specified relative to the target directory, without leading
461 slash.
2a97045d 462
41f6b79f
JV
463choice
464 prompt "gcc optimization level"
7eb796ba 465 default BR2_OPTIMIZE_S
923f42a3 466 help
41f6b79f
JV
467 Set the optimization level for gcc
468
469config BR2_OPTIMIZE_0
470 bool "optimization level 0"
471 help
4e09fd8b 472 Do not optimize.
41f6b79f
JV
473
474config BR2_OPTIMIZE_1
475 bool "optimization level 1"
476 help
65f9b937
MK
477 Optimize. Optimizing compilation takes somewhat more time, and
478 a lot more memory for a large function. With -O, the compiler
479 tries to reduce code size and execution time, without
480 performing any optimizations that take a great deal of
481 compilation time. -O turns on the following optimization
02a623dd
PK
482 flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability
483 -fcprop-registers -floop-optimize -fif-conversion
484 -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts
485 -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename
65f9b937
MK
486 -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants. -O
487 also turns on -fomit-frame-pointer on machines where doing so
488 does not interfere with debugging.
41f6b79f
JV
489
490config BR2_OPTIMIZE_2
491 bool "optimization level 2"
492 help
65f9b937
MK
493 Optimize even more. GCC performs nearly all supported
494 optimizations that do not involve a space-speed tradeoff. The
495 compiler does not perform loop unrolling or function inlining
496 when you specify -O2. As compared to -O, this option increases
497 both compilation time and the performance of the generated
498 code. -O2 turns on all optimization flags specified by -O. It
499 also turns on the following optimization flags:
500 -fthread-jumps -fcrossjumping -foptimize-sibling-calls
02a623dd 501 -fcse-follow-jumps -fcse-skip-blocks -fgcse -fgcse-lm
65f9b937
MK
502 -fexpensive-optimizations -fstrength-reduce
503 -frerun-cse-after-loop -frerun-loop-opt -fcaller-saves
504 -fpeephole2 -fschedule-insns -fschedule-insns2
505 -fsched-interblock -fsched-spec -fregmove -fstrict-aliasing
506 -fdelete-null-pointer-checks -freorder-blocks
507 -freorder-functions -falign-functions -falign-jumps
508 -falign-loops -falign-labels -ftree-vrp -ftree-pre. Please
509 note the warning under -fgcse about invoking -O2 on programs
41f6b79f
JV
510 that use computed gotos.
511
512config BR2_OPTIMIZE_3
513 bool "optimization level 3"
514 help
65f9b937
MK
515 Optimize yet more. -O3 turns on all optimizations specified by
516 -O2 and also turns on the -finline-functions, -funswitch-loops
517 and -fgcse-after-reload options.
41f6b79f 518
5ff84592
MK
519config BR2_OPTIMIZE_G
520 bool "optimize for debugging"
521 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
522 help
523 Optimize for debugging. This enables optimizations that do not
65f9b937
MK
524 interfere with debugging. It should be the optimization level
525 of choice for the standard edit-compile-debug cycle, offering
526 a reasonable level of optimization while maintaining fast
527 compilation and a good debugging experience.
41f6b79f
JV
528
529config BR2_OPTIMIZE_S
530 bool "optimize for size"
531 help
65f9b937
MK
532 Optimize for size. -Os enables all -O2 optimizations that do
533 not typically increase code size. It also performs further
534 optimizations designed to reduce code size. -Os disables the
535 following optimization flags: -falign-functions -falign-jumps
536 -falign-loops -falign-labels -freorder-blocks
537 -freorder-blocks-and-partition -fprefetch-loop-arrays
41f6b79f 538 -ftree-vect-loop-version
4e09fd8b 539 This is the default.
02a623dd 540
ed6a7e18
JH
541config BR2_OPTIMIZE_FAST
542 bool "optimize for fast"
543 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_6
544 help
545 Optimize for fast. Disregard strict standards
546 compliance. -Ofast enables all -O3 optimizations. It also
547 enables optimizations that are not valid for all
548 standard-compliant programs. It turns on -ffast-math and the
549 Fortran-specific -fstack-arrays, unless -fmax-stack-var-size
550 is specified, and -fno-protect-parens.
551
41f6b79f 552endchoice
923f42a3 553
09a1a10f
PH
554config BR2_GOOGLE_BREAKPAD_ENABLE
555 bool "Enable google-breakpad support"
09a1a10f 556 depends on BR2_INSTALL_LIBSTDCPP
282ffecb
RN
557 depends on BR2_HOST_GCC_AT_LEAST_4_8 # C++11
558 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
e9ffb3b8 559 depends on BR2_USE_WCHAR
0bb3983c 560 depends on BR2_TOOLCHAIN_HAS_THREADS
e9ffb3b8 561 depends on (BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC)
09a1a10f 562 depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
fadc4383 563 depends on BR2_PACKAGE_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS
a1264445 564 select BR2_PACKAGE_GOOGLE_BREAKPAD
09a1a10f 565 help
65f9b937
MK
566 This option will enable the use of google breakpad, a library
567 and tool suite that allows you to distribute an application to
568 users with compiler-provided debugging information removed,
569 record crashes in compact "minidump" files, send them back to
570 your server and produce C and C++ stack traces from these
571 minidumps. Breakpad can also write minidumps on request for
572 programs that have not crashed.
09a1a10f
PH
573
574if BR2_GOOGLE_BREAKPAD_ENABLE
575
576config BR2_GOOGLE_BREAKPAD_INCLUDE_FILES
577 string "List of executables and libraries to extract symbols from"
578 default ""
579 help
580 You may specify a space-separated list of binaries and
581 libraries with full paths relative to $(TARGET_DIR) of which
582 debug symbols will be dumped for further use with google
583 breakpad.
584
585 A directory structure that can be used by minidump-stackwalk
586 will be created at:
587
588 $(STAGING_DIR)/usr/share/google-breakpad-symbols
589
590endif
591
158001f5
TP
592choice
593 bool "libraries"
f1d3e098 594 default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED
158001f5
TP
595 default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED
596 help
597 Select the type of libraries you want to use on the target.
598
65f9b937
MK
599 The default is to build dynamic libraries and use those on the
600 target filesystem, except when the architecture and/or the
601 selected binary format does not support shared libraries.
158001f5 602
665e13c8 603config BR2_STATIC_LIBS
158001f5 604 bool "static only"
3096f34d 605 help
65f9b937 606 Build and use only static libraries. No shared libraries will
d9312d63 607 be installed on the target. This potentially increases your
65f9b937
MK
608 code size and should only be used if you know what you are
609 doing. Note that some packages may not be available when this
610 option is enabled, due to their need for dynamic library
611 support.
3096f34d 612
158001f5
TP
613config BR2_SHARED_LIBS
614 bool "shared only"
615 depends on BR2_BINFMT_SUPPORTS_SHARED
616 help
617 Build and use only shared libraries. This is the recommended
618 solution as it saves space and build time.
619
620config BR2_SHARED_STATIC_LIBS
621 bool "both static and shared"
622 depends on BR2_BINFMT_SUPPORTS_SHARED
623 help
624 Build both shared and static libraries, but link executables
625 dynamically. While building both shared and static libraries
626 take more time and more disk space, having static libraries
627 may be useful to link some of the applications statically.
7d9c0df0 628
158001f5 629endchoice
7d9c0df0 630
ee0246e1
TP
631config BR2_PACKAGE_OVERRIDE_FILE
632 string "location of a package override file"
eda3d0e1 633 default "$(CONFIG_DIR)/local.mk"
ee0246e1
TP
634 help
635 A package override file is a short makefile that contains
65f9b937
MK
636 variable definitions of the form <pkg>_OVERRIDE_SRCDIR, which
637 allows to tell Buildroot to use an existing directory as the
638 source directory for a particular package. See the Buildroot
639 documentation for more details on this feature.
ee0246e1 640
5538e476 641config BR2_GLOBAL_PATCH_DIR
bc4f79d6 642 string "global patch directories"
5538e476 643 help
65f9b937
MK
644 You may specify a space separated list of one or more
645 directories containing global package patches. For a specific
646 version <packageversion> of a specific package <packagename>,
647 patches are applied as follows:
5538e476 648
65f9b937
MK
649 First, the default Buildroot patch set for the package is
650 applied from the package's directory in Buildroot.
5538e476 651
bc4f79d6
RB
652 Then for every directory - <global-patch-dir> - that exists in
653 BR2_GLOBAL_PATCH_DIR, if the directory
65f9b937
MK
654 <global-patch-dir>/<packagename>/<packageversion>/ exists,
655 then all *.patch files in this directory will be applied.
5538e476 656
65f9b937
MK
657 Otherwise, if the directory <global-patch-dir>/<packagename>
658 exists, then all *.patch files in the directory will be
659 applied.
5538e476 660
4ac8f78d
TP
661menu "Advanced"
662
663config BR2_COMPILER_PARANOID_UNSAFE_PATH
664 bool "paranoid check of library/header paths"
61c8854c 665 default y
4ac8f78d
TP
666 help
667 By default, when this option is disabled, when the Buildroot
65f9b937
MK
668 cross-compiler will encounter an unsafe library or header path
669 (such as /usr/include, or /usr/lib), the compiler will display
670 a warning.
4ac8f78d 671
65f9b937
MK
672 By enabling this option, this warning is turned into an error,
673 which will completely abort the build when such unsafe paths
674 are encountered.
4ac8f78d
TP
675
676 Note that this mechanism is available for both the internal
f9d311ed 677 toolchain (through the toolchain wrapper and binutils patches)
d6109172
RM
678 and external toolchain backends (through the toolchain
679 wrapper).
4ac8f78d 680
71574a65
GC
681config BR2_REPRODUCIBLE
682 bool "Make the build reproducible (experimental)"
6393b690
YM
683 # SOURCE_DATE_EPOCH support in toolchain-wrapper requires GCC 4.4
684 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_4
a446ab74
JG
685 help
686 This option will remove all sources of non-reproducibility
687 from the build process. For a given Buildroot configuration,
688 this allows to generate exactly identical binaries from one
689 build to the other, including on different machines.
690
bedb1610
JP
691 The current implementation is restricted to builds with the
692 same output directory. Many (absolute) paths are recorded in
693 intermediary files, and it is very likely that some of these
694 paths leak into the target rootfs. If you build with the
695 same O=... path, however, the result is identical.
696
a446ab74
JG
697 This is labeled as an experimental feature, as not all
698 packages behave properly to ensure reproducibility.
71574a65 699
8e5fb3fb 700endmenu
2d523c23 701
d3732cf4
MW
702comment "Security Hardening Options"
703
704choice
705 bool "Stack Smashing Protection"
706 default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy
707 depends on BR2_TOOLCHAIN_HAS_SSP
708 help
709 Enable stack smashing protection support using GCC's
710 -fstack-protector option family.
711
712 See
713 http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
714 for details.
715
716 Note that this requires the toolchain to have SSP support.
717 This is always the case for glibc and eglibc toolchain, but is
718 optional in uClibc toolchains.
719
720config BR2_SSP_NONE
721 bool "None"
722 help
723 Disable stack-smashing protection.
724
725config BR2_SSP_REGULAR
726 bool "-fstack-protector"
727 help
728 Emit extra code to check for buffer overflows, such as stack
729 smashing attacks. This is done by adding a guard variable to
730 functions with vulnerable objects. This includes functions
731 that call alloca, and functions with buffers larger than 8
732 bytes. The guards are initialized when a function is entered
733 and then checked when the function exits. If a guard check
734 fails, an error message is printed and the program exits.
735
736config BR2_SSP_STRONG
737 bool "-fstack-protector-strong"
738 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
739 help
740 Like -fstack-protector but includes additional functions to be
741 protected - those that have local array definitions, or have
742 references to local frame addresses.
743
744comment "Stack Smashing Protection strong needs a toolchain w/ gcc >= 4.9"
745 depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
746
747config BR2_SSP_ALL
748 bool "-fstack-protector-all"
749 help
750 Like -fstack-protector except that all functions are
751 protected. This option might have a significant performance
752 impact on the compiled binaries.
753
754endchoice
755
756comment "Stack Smashing Protection needs a toolchain w/ SSP"
757 depends on !BR2_TOOLCHAIN_HAS_SSP
758
20a4583e
MW
759choice
760 bool "RELRO Protection"
761 depends on BR2_SHARED_LIBS
762 help
d6109172
RM
763 Enable a link-time protection know as RELRO (RELocation Read
764 Only) which helps to protect from certain type of exploitation
765 techniques altering the content of some ELF sections.
20a4583e
MW
766
767config BR2_RELRO_NONE
768 bool "None"
769 help
770 Disables Relocation link-time protections.
771
772config BR2_RELRO_PARTIAL
773 bool "Partial"
774 help
775 This option makes the dynamic section not writeable after
776 initialization (with almost no performance penalty).
777
778config BR2_RELRO_FULL
779 bool "Full"
780 help
d6109172
RM
781 This option includes the partial configuration, but also marks
782 the GOT as read-only at the cost of initialization time during
783 program loading, i.e every time an executable is started.
20a4583e
MW
784
785endchoice
786
787comment "RELocation Read Only (RELRO) needs shared libraries"
788 depends on !BR2_SHARED_LIBS
789
790choice
791 bool "Buffer-overflow Detection (FORTIFY_SOURCE)"
792 depends on BR2_TOOLCHAIN_USES_GLIBC
793 depends on !BR2_OPTIMIZE_0
794 help
795 Enable the _FORTIFY_SOURCE macro which introduces additional
d6109172
RM
796 checks to detect buffer-overflows in the following standard
797 library functions: memcpy, mempcpy, memmove, memset, strcpy,
798 stpcpy, strncpy, strcat, strncat, sprintf, vsprintf, snprintf,
799 vsnprintf, gets.
20a4583e
MW
800
801 NOTE: This feature requires an optimization level of s/1/2/3/g
802
803 Support for this feature has been present since GCC 4.x.
804
805config BR2_FORTIFY_SOURCE_NONE
806 bool "None"
807 help
808 Disables additional checks to detect buffer-overflows.
809
810config BR2_FORTIFY_SOURCE_1
811 bool "Conservative"
812 help
813 This option sets _FORTIFY_SOURCE to 1 and only introduces
814 checks that shouldn't change the behavior of conforming
815 programs. Adds checks at compile-time only.
816
817config BR2_FORTIFY_SOURCE_2
818 bool "Aggressive"
819 help
820 This option sets _FORTIFY_SOURCES to 2 and some more
821 checking is added, but some conforming programs might fail.
822 Also adds checks at run-time (detected buffer overflow
823 terminates the program)
824
825endchoice
826
827comment "Fortify Source needs a glibc toolchain and optimization"
828 depends on (!BR2_TOOLCHAIN_USES_GLIBC || BR2_OPTIMIZE_0)
1ac2cdd7
YM
829endmenu
830
50100394
BRF
831source "toolchain/Config.in"
832
6c3e3ad4 833source "system/Config.in"
beb43c7d 834
24403857 835source "linux/Config.in"
50100394 836
24403857 837source "package/Config.in"
d06e8022 838
05852415
TP
839source "fs/Config.in"
840
649b5b92
TP
841source "boot/Config.in"
842
24403857 843source "package/Config.in.host"
ebcfa987
AVEM
844
845source "Config.in.legacy"
8eb8aaf9 846
4802db3d 847source "$BR2_BUILD_DIR/.br2-external.in"
This page took 0.735024 seconds and 4 git commands to generate.