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