3 mainmenu "Buildroot $BR2_VERSION Configuration"
5 config BR2_HAVE_DOT_CONFIG
11 option env="BR2_VERSION_FULL"
21 # br2-external paths definitions
22 source "$BR2_BASE_DIR/.br2-external.in.paths"
24 # Hidden config symbols for packages to check system gcc version
25 config BR2_HOST_GCC_VERSION
27 option env="HOST_GCC_VERSION"
29 config BR2_HOST_GCC_AT_LEAST_4_9
31 default y if BR2_HOST_GCC_VERSION = "4 9"
33 config BR2_HOST_GCC_AT_LEAST_5
35 default y if BR2_HOST_GCC_VERSION = "5"
36 select BR2_HOST_GCC_AT_LEAST_4_9
38 config BR2_HOST_GCC_AT_LEAST_6
40 default y if BR2_HOST_GCC_VERSION = "6"
41 select BR2_HOST_GCC_AT_LEAST_5
43 config BR2_HOST_GCC_AT_LEAST_7
45 default y if BR2_HOST_GCC_VERSION = "7"
46 select BR2_HOST_GCC_AT_LEAST_6
48 config BR2_HOST_GCC_AT_LEAST_8
50 default y if BR2_HOST_GCC_VERSION = "8"
51 select BR2_HOST_GCC_AT_LEAST_7
53 config BR2_HOST_GCC_AT_LEAST_9
55 default y if BR2_HOST_GCC_VERSION = "9"
56 select BR2_HOST_GCC_AT_LEAST_8
58 # When adding new entries above, be sure to update
59 # the HOSTCC_MAX_VERSION variable in the Makefile.
61 # Hidden boolean selected by packages in need of Java in order to build
63 config BR2_NEEDS_HOST_JAVA
66 # Hidden boolean selected by pre-built packages for x86, when they
67 # need to run on x86-64 machines (example: pre-built external
68 # toolchains, binary tools like SAM-BA, etc.).
69 config BR2_HOSTARCH_NEEDS_IA32_LIBS
72 # Hidden boolean selected by packages that need to build 32 bits
73 # binaries with the host compiler, even on 64 bits build machines (e.g
75 config BR2_HOSTARCH_NEEDS_IA32_COMPILER
78 # Hidden boolean selected by packages that need the host to have an
80 config BR2_NEEDS_HOST_UTF8_LOCALE
83 # Hidden boolean selected by packages that need the host to have
84 # support for building gcc plugins
85 config BR2_NEEDS_HOST_GCC_PLUGIN_SUPPORT
88 source "arch/Config.in"
96 default "wget --passive-ftp -nd -t 3"
99 string "Subversion (svn) command"
100 default "svn --non-interactive"
103 string "Bazaar (bzr) command"
114 config BR2_LOCALFILES
115 string "Local files retrieval command"
119 string "Secure copy (scp) command"
123 string "Mercurial (hg) command"
127 string "zcat command"
130 Command to be used to extract a gzip'ed file to stdout. zcat
131 is identical to gunzip -c except that the former may not be
132 available on your system.
133 Default is "gzip -d -c"
134 Other possible values include "gunzip -c" or "zcat".
137 string "bzcat command"
140 Command to be used to extract a bzip2'ed file to stdout.
141 bzcat is identical to bunzip2 -c except that the former may
142 not be available on your system.
144 Other possible values include "bunzip2 -c" or "bzip2 -d -c".
147 string "xzcat command"
150 Command to be used to extract a xz'ed file to stdout.
154 string "lzcat command"
157 Command to be used to extract a lzip'ed file to stdout.
158 Default is "lzip -d -c"
160 config BR2_TAR_OPTIONS
164 Options to pass to tar when extracting the sources.
165 E.g. " -v --exclude='*.svn*'" to exclude all .svn internal
166 files and to be verbose.
170 config BR2_DEFCONFIG_FROM_ENV
172 option env="BR2_DEFCONFIG"
175 string "Location to save buildroot config"
176 default BR2_DEFCONFIG_FROM_ENV if BR2_DEFCONFIG_FROM_ENV != ""
177 default "$(CONFIG_DIR)/defconfig"
179 When running 'make savedefconfig', the defconfig file will be
180 saved in this location.
183 string "Download dir"
184 default "$(TOPDIR)/dl"
186 Directory to store all the source files that we need to fetch.
187 If the Linux shell environment has defined the BR2_DL_DIR
188 environment variable, then this overrides this configuration
190 The directory is organized with a subdirectory for each
191 package. Each package has its own $(LIBFOO_DL_DIR) variable
192 that can be used to find the correct path.
194 The default is $(TOPDIR)/dl
198 default "$(BASE_DIR)/host"
200 Directory to store all the binary files that are built for the
201 host. This includes the cross compilation toolchain when
202 building the internal buildroot toolchain.
204 The default is $(BASE_DIR)/host
206 menu "Mirrors and Download locations"
208 config BR2_PRIMARY_SITE
209 string "Primary download site"
212 Primary site to download from. If this option is set then
213 buildroot will try to download package source first from this
214 site and try the default if the file is not found.
216 - URIs recognized by $(WGET)
217 - local URIs of the form file://absolutepath
218 - scp URIs of the form scp://[user@]host:path.
220 config BR2_PRIMARY_SITE_ONLY
221 bool "Only allow downloads from primary download site"
222 depends on BR2_PRIMARY_SITE != ""
224 If this option is enabled, downloads will only be attempted
225 from the primary download site. Other locations, like the
226 package's official download location or the backup download
227 site, will not be considered. Therefore, if the package is not
228 present on the primary site, the download fails.
230 This is useful for project developers who want to ensure that
231 the project can be built even if the upstream tarball
234 if !BR2_PRIMARY_SITE_ONLY
236 config BR2_BACKUP_SITE
237 string "Backup download site"
238 default "http://sources.buildroot.net"
240 Backup site to download from. If this option is set then
241 buildroot will fall back to download package sources from here
242 if the normal location fails.
244 config BR2_KERNEL_MIRROR
245 string "Kernel.org mirror"
246 default "https://cdn.kernel.org/pub"
248 kernel.org is mirrored on a number of servers around the
249 world. The following allows you to select your preferred
250 mirror. By default, a CDN is used, which automatically
251 redirects to a mirror geographically close to you.
253 Have a look on the kernel.org site for a list of mirrors, then
254 enter the URL to the base directory. Examples:
256 http://www.XX.kernel.org/pub (XX = country code)
257 http://mirror.aarnet.edu.au/pub/ftp.kernel.org
259 config BR2_GNU_MIRROR
260 string "GNU Software mirror"
261 default "http://ftpmirror.gnu.org"
263 GNU has multiple software mirrors scattered around the
264 world. The following allows you to select your preferred
265 mirror. By default, a generic address is used, which
266 automatically selects an up-to-date and local mirror.
268 Have a look on the gnu.org site for a list of mirrors, then
269 enter the URL to the base directory. Examples:
271 http://ftp.gnu.org/pub/gnu
272 http://mirror.aarnet.edu.au/pub/gnu
274 config BR2_LUAROCKS_MIRROR
275 string "LuaRocks mirror"
276 default "http://rocks.moonscript.org"
280 See http://luarocks.org
282 config BR2_CPAN_MIRROR
283 string "CPAN mirror (Perl packages)"
284 default "http://cpan.metacpan.org"
286 CPAN (Comprehensive Perl Archive Network) is a repository of
287 Perl packages. It has multiple software mirrors scattered
288 around the world. This option allows you to select a mirror.
290 The list of mirrors is available at:
291 http://search.cpan.org/mirror
298 int "Number of jobs to run simultaneously (0 for auto)"
301 Number of jobs to run simultaneously. If 0, determine
302 automatically according to number of CPUs on the host system.
305 bool "Enable compiler cache"
307 This option will enable the use of ccache, a compiler cache.
308 It will cache the result of previous builds to speed up future
309 builds. By default, the cache is stored in
310 $HOME/.buildroot-ccache.
312 Note that Buildroot does not try to invalidate the cache
313 contents when the compiler changes in an incompatible way.
314 Therefore, if you make a change to the compiler version and/or
315 configuration, you are responsible for purging the ccache
316 cache by removing the $HOME/.buildroot-ccache directory.
320 config BR2_CCACHE_DIR
321 string "Compiler cache location"
322 default "$(HOME)/.buildroot-ccache"
324 Where ccache should store cached files.
325 If the Linux shell environment has defined the BR2_CCACHE_DIR
326 environment variable, then this overrides this configuration
329 config BR2_CCACHE_INITIAL_SETUP
330 string "Compiler cache initial setup"
332 Initial ccache settings to apply, such as --max-files or
335 For example, if your project is known to require more space
336 than the default max cache size, then you might want to
337 increase the cache size to a suitable amount using the -M
340 The string you specify here is passed verbatim to ccache.
341 Refer to ccache documentation for more details.
343 These initial settings are applied after ccache has been
346 config BR2_CCACHE_USE_BASEDIR
347 bool "Use relative paths"
350 Allow ccache to convert absolute paths within the output
351 directory into relative paths.
353 During the build, many -I include directives are given with an
354 absolute path. These absolute paths end up in the hashes that
355 are computed by ccache. Therefore, when you build from a
356 different directory, the hash will be different and the cached
357 object will not be used.
359 To improve cache performance, set this option to y. This
360 allows ccache to rewrite absolute paths within the output
361 directory into relative paths. Note that only paths within the
362 output directory will be rewritten; therefore, if you change
363 BR2_HOST_DIR to point outside the output directory and
364 subsequently move it to a different location, this will lead
367 This option has as a result that the debug information in the
368 object files also has only relative paths. Therefore, make
369 sure you cd to the build directory before starting gdb. See
370 the section "COMPILING IN DIFFERENT DIRECTORIES" in the ccache
371 manual for more information.
375 config BR2_ENABLE_DEBUG
376 bool "build packages with debugging symbols"
378 Build packages with debugging symbols enabled. All libraries
379 and binaries in the 'staging' directory will have debugging
380 symbols, which allows remote debugging even if libraries and
381 binaries are stripped on the target. Whether libraries and
382 binaries are stripped on the target is controlled by the
383 BR2_STRIP_* options below.
387 prompt "gcc debug level"
390 Set the debug level for gcc
395 Debug level 1 produces minimal information, enough for making
396 backtraces in parts of the program that you don't plan to
397 debug. This includes descriptions of functions and external
398 variables, but no information about local variables and no
404 The default gcc debug level is 2
409 Level 3 includes extra information, such as all the macro
410 definitions present in the program. Some debuggers support
411 macro expansion when you use -g3.
415 config BR2_STRIP_strip
416 bool "strip target binaries"
418 depends on !BR2_PACKAGE_HOST_ELF2FLT
420 Binaries and libraries in the target filesystem will be
421 stripped using the normal 'strip' command. This allows to save
422 space, mainly by removing debugging symbols. Debugging symbols
423 on the target are needed for native debugging, but not when
424 remote debugging is used.
426 config BR2_STRIP_EXCLUDE_FILES
427 string "executables that should not be stripped"
429 depends on BR2_STRIP_strip
431 You may specify a space-separated list of binaries and
432 libraries here that should not be stripped on the target.
434 config BR2_STRIP_EXCLUDE_DIRS
435 string "directories that should be skipped when stripping"
437 depends on BR2_STRIP_strip
439 You may specify a space-separated list of directories that
440 should be skipped when stripping. Binaries and libraries in
441 these directories will not be touched. The directories should
442 be specified relative to the target directory, without leading
446 prompt "gcc optimization level"
447 default BR2_OPTIMIZE_S
449 Set the optimization level for gcc
451 config BR2_OPTIMIZE_0
452 bool "optimization level 0"
456 config BR2_OPTIMIZE_1
457 bool "optimization level 1"
459 Optimize. Optimizing compilation takes somewhat more time, and
460 a lot more memory for a large function. With -O, the compiler
461 tries to reduce code size and execution time, without
462 performing any optimizations that take a great deal of
463 compilation time. -O turns on the following optimization
464 flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability
465 -fcprop-registers -floop-optimize -fif-conversion
466 -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts
467 -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename
468 -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants. -O
469 also turns on -fomit-frame-pointer on machines where doing so
470 does not interfere with debugging.
472 config BR2_OPTIMIZE_2
473 bool "optimization level 2"
475 Optimize even more. GCC performs nearly all supported
476 optimizations that do not involve a space-speed tradeoff. The
477 compiler does not perform loop unrolling or function inlining
478 when you specify -O2. As compared to -O, this option increases
479 both compilation time and the performance of the generated
480 code. -O2 turns on all optimization flags specified by -O. It
481 also turns on the following optimization flags:
482 -fthread-jumps -fcrossjumping -foptimize-sibling-calls
483 -fcse-follow-jumps -fcse-skip-blocks -fgcse -fgcse-lm
484 -fexpensive-optimizations -fstrength-reduce
485 -frerun-cse-after-loop -frerun-loop-opt -fcaller-saves
486 -fpeephole2 -fschedule-insns -fschedule-insns2
487 -fsched-interblock -fsched-spec -fregmove -fstrict-aliasing
488 -fdelete-null-pointer-checks -freorder-blocks
489 -freorder-functions -falign-functions -falign-jumps
490 -falign-loops -falign-labels -ftree-vrp -ftree-pre. Please
491 note the warning under -fgcse about invoking -O2 on programs
492 that use computed gotos.
494 config BR2_OPTIMIZE_3
495 bool "optimization level 3"
497 Optimize yet more. -O3 turns on all optimizations specified by
498 -O2 and also turns on the -finline-functions, -funswitch-loops
499 and -fgcse-after-reload options.
501 config BR2_OPTIMIZE_G
502 bool "optimize for debugging"
503 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
505 Optimize for debugging. This enables optimizations that do not
506 interfere with debugging. It should be the optimization level
507 of choice for the standard edit-compile-debug cycle, offering
508 a reasonable level of optimization while maintaining fast
509 compilation and a good debugging experience.
511 config BR2_OPTIMIZE_S
512 bool "optimize for size"
514 Optimize for size. -Os enables all -O2 optimizations that do
515 not typically increase code size. It also performs further
516 optimizations designed to reduce code size. -Os disables the
517 following optimization flags: -falign-functions -falign-jumps
518 -falign-loops -falign-labels -freorder-blocks
519 -freorder-blocks-and-partition -fprefetch-loop-arrays
520 -ftree-vect-loop-version
523 config BR2_OPTIMIZE_FAST
524 bool "optimize for fast (may break packages!)"
525 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_6
527 Optimize for fast. Disregard strict standards
528 compliance. -Ofast enables all -O3 optimizations. It also
529 enables optimizations that are not valid for all
530 standard-compliant programs, so be careful, as it may break
531 some packages. It turns on -ffast-math and the
532 Fortran-specific -fstack-arrays, unless -fmax-stack-var-size
533 is specified, and -fno-protect-parens.
537 config BR2_GOOGLE_BREAKPAD_ENABLE
538 bool "Enable google-breakpad support"
539 depends on BR2_INSTALL_LIBSTDCPP
540 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
541 depends on BR2_USE_WCHAR
542 depends on BR2_TOOLCHAIN_HAS_THREADS
543 depends on (BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC)
544 depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
545 depends on BR2_PACKAGE_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS
546 select BR2_PACKAGE_GOOGLE_BREAKPAD
548 This option will enable the use of google breakpad, a library
549 and tool suite that allows you to distribute an application to
550 users with compiler-provided debugging information removed,
551 record crashes in compact "minidump" files, send them back to
552 your server and produce C and C++ stack traces from these
553 minidumps. Breakpad can also write minidumps on request for
554 programs that have not crashed.
556 if BR2_GOOGLE_BREAKPAD_ENABLE
558 config BR2_GOOGLE_BREAKPAD_INCLUDE_FILES
559 string "List of executables and libraries to extract symbols from"
562 You may specify a space-separated list of binaries and
563 libraries with full paths relative to $(TARGET_DIR) of which
564 debug symbols will be dumped for further use with google
567 A directory structure that can be used by minidump-stackwalk
570 $(STAGING_DIR)/usr/share/google-breakpad-symbols
576 default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED
577 default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED
579 Select the type of libraries you want to use on the target.
581 The default is to build dynamic libraries and use those on the
582 target filesystem, except when the architecture and/or the
583 selected binary format does not support shared libraries.
585 config BR2_STATIC_LIBS
588 Build and use only static libraries. No shared libraries will
589 be installed on the target. This potentially increases your
590 code size and should only be used if you know what you are
591 doing. Note that some packages may not be available when this
592 option is enabled, due to their need for dynamic library
595 config BR2_SHARED_LIBS
597 depends on BR2_BINFMT_SUPPORTS_SHARED
599 Build and use only shared libraries. This is the recommended
600 solution as it saves space and build time.
602 config BR2_SHARED_STATIC_LIBS
603 bool "both static and shared"
604 depends on BR2_BINFMT_SUPPORTS_SHARED
606 Build both shared and static libraries, but link executables
607 dynamically. While building both shared and static libraries
608 take more time and more disk space, having static libraries
609 may be useful to link some of the applications statically.
613 config BR2_PACKAGE_OVERRIDE_FILE
614 string "location of a package override file"
615 default "$(CONFIG_DIR)/local.mk"
617 A package override file is a short makefile that contains
618 variable definitions of the form <pkg>_OVERRIDE_SRCDIR, which
619 allows to tell Buildroot to use an existing directory as the
620 source directory for a particular package. See the Buildroot
621 documentation for more details on this feature.
623 config BR2_GLOBAL_PATCH_DIR
624 string "global patch directories"
626 You may specify a space separated list of one or more
627 directories containing global package patches. For a specific
628 version <packageversion> of a specific package <packagename>,
629 patches are applied as follows:
631 First, the default Buildroot patch set for the package is
632 applied from the package's directory in Buildroot.
634 Then for every directory - <global-patch-dir> - that exists in
635 BR2_GLOBAL_PATCH_DIR, if the directory
636 <global-patch-dir>/<packagename>/<packageversion>/ exists,
637 then all *.patch files in this directory will be applied.
639 Otherwise, if the directory <global-patch-dir>/<packagename>
640 exists, then all *.patch files in the directory will be
645 config BR2_COMPILER_PARANOID_UNSAFE_PATH
646 bool "paranoid check of library/header paths"
649 By default, when this option is disabled, when the Buildroot
650 cross-compiler will encounter an unsafe library or header path
651 (such as /usr/include, or /usr/lib), the compiler will display
654 By enabling this option, this warning is turned into an error,
655 which will completely abort the build when such unsafe paths
658 Note that this mechanism is available for both the internal
659 toolchain (through the toolchain wrapper and binutils patches)
660 and external toolchain backends (through the toolchain
663 config BR2_FORCE_HOST_BUILD
664 bool "Force the building of host dependencies"
666 Build all available host dependencies, even if they are
667 already installed on the system.
669 This option can be used to ensure that the download cache of
670 source archives for packages remain consistent between
671 different build hosts.
673 This option will increase build time.
675 config BR2_REPRODUCIBLE
676 bool "Make the build reproducible (experimental)"
677 # SOURCE_DATE_EPOCH support in toolchain-wrapper requires GCC 4.4
678 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_4
680 This option will remove all sources of non-reproducibility
681 from the build process. For a given Buildroot configuration,
682 this allows to generate exactly identical binaries from one
683 build to the other, including on different machines.
685 The current implementation is restricted to builds with the
686 same output directory. Many (absolute) paths are recorded in
687 intermediary files, and it is very likely that some of these
688 paths leak into the target rootfs. If you build with the
689 same O=... path, however, the result is identical.
691 This is labeled as an experimental feature, as not all
692 packages behave properly to ensure reproducibility.
694 config BR2_PER_PACKAGE_DIRECTORIES
695 bool "Use per-package directories (experimental)"
697 This option will change the build process of Buildroot
698 package to use per-package target and host directories.
700 This is useful for two related purposes:
702 - Cleanly isolate the build of each package, so that a
703 given package only "sees" the dependencies it has
704 explicitly expressed, and not other packages that may
705 have by chance been built before.
707 - Enable top-level parallel build.
709 This is labeled as an experimental feature, as not all
710 packages behave properly with per-package directories.
714 comment "Security Hardening Options"
717 bool "Build code with PIC/PIE"
718 depends on BR2_SHARED_LIBS
719 depends on BR2_TOOLCHAIN_SUPPORTS_PIE
721 Generate Position-Independent Code (PIC) and link
722 Position-Independent Executables (PIE).
724 comment "PIC/PIE needs a toolchain w/ PIE"
725 depends on BR2_SHARED_LIBS
726 depends on !BR2_TOOLCHAIN_SUPPORTS_PIE
729 bool "Stack Smashing Protection"
730 default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy
731 depends on BR2_TOOLCHAIN_HAS_SSP
733 Enable stack smashing protection support using GCC's
734 -fstack-protector option family.
737 http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
740 Note that this requires the toolchain to have SSP support.
741 This is always the case for glibc and eglibc toolchain, but is
742 optional in uClibc toolchains.
747 Disable stack-smashing protection.
749 config BR2_SSP_REGULAR
750 bool "-fstack-protector"
752 Emit extra code to check for buffer overflows, such as stack
753 smashing attacks. This is done by adding a guard variable to
754 functions with vulnerable objects. This includes functions
755 that call alloca, and functions with buffers larger than 8
756 bytes. The guards are initialized when a function is entered
757 and then checked when the function exits. If a guard check
758 fails, an error message is printed and the program exits.
760 config BR2_SSP_STRONG
761 bool "-fstack-protector-strong"
762 depends on BR2_TOOLCHAIN_HAS_SSP_STRONG
764 Like -fstack-protector but includes additional functions to be
765 protected - those that have local array definitions, or have
766 references to local frame addresses.
768 -fstack-protector-strong officially appeared in gcc 4.9, but
769 some vendors have backported -fstack-protector-strong to older
773 bool "-fstack-protector-all"
775 Like -fstack-protector except that all functions are
776 protected. This option might have a significant performance
777 impact on the compiled binaries.
781 config BR2_SSP_OPTION
783 default "-fstack-protector" if BR2_SSP_REGULAR
784 default "-fstack-protector-strong" if BR2_SSP_STRONG
785 default "-fstack-protector-all" if BR2_SSP_ALL
787 comment "Stack Smashing Protection needs a toolchain w/ SSP"
788 depends on !BR2_TOOLCHAIN_HAS_SSP
791 bool "RELRO Protection"
792 depends on BR2_SHARED_LIBS
794 Enable a link-time protection know as RELRO (RELocation Read
795 Only) which helps to protect from certain type of exploitation
796 techniques altering the content of some ELF sections.
798 config BR2_RELRO_NONE
801 Disables Relocation link-time protections.
803 config BR2_RELRO_PARTIAL
806 This option makes the dynamic section not writeable after
807 initialization (with almost no performance penalty).
809 config BR2_RELRO_FULL
811 depends on BR2_TOOLCHAIN_SUPPORTS_PIE
814 This option includes the partial configuration, but also marks
815 the GOT as read-only at the cost of initialization time during
816 program loading, i.e every time an executable is started.
818 comment "RELRO Full needs a toolchain w/ PIE"
819 depends on !BR2_TOOLCHAIN_SUPPORTS_PIE
823 comment "RELocation Read Only (RELRO) needs shared libraries"
824 depends on !BR2_SHARED_LIBS
827 bool "Buffer-overflow Detection (FORTIFY_SOURCE)"
828 depends on BR2_TOOLCHAIN_USES_GLIBC
829 depends on !BR2_OPTIMIZE_0
831 Enable the _FORTIFY_SOURCE macro which introduces additional
832 checks to detect buffer-overflows in the following standard
833 library functions: memcpy, mempcpy, memmove, memset, strcpy,
834 stpcpy, strncpy, strcat, strncat, sprintf, vsprintf, snprintf,
837 NOTE: This feature requires an optimization level of s/1/2/3/g
839 Support for this feature has been present since GCC 4.x.
841 config BR2_FORTIFY_SOURCE_NONE
844 Disables additional checks to detect buffer-overflows.
846 config BR2_FORTIFY_SOURCE_1
848 # gcc bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61164
849 depends on !BR2_TOOLCHAIN_BUILDROOT || BR2_TOOLCHAIN_GCC_AT_LEAST_6
851 This option sets _FORTIFY_SOURCE to 1 and only introduces
852 checks that shouldn't change the behavior of conforming
853 programs. Adds checks at compile-time only.
855 config BR2_FORTIFY_SOURCE_2
857 # gcc bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61164
858 depends on !BR2_TOOLCHAIN_BUILDROOT || BR2_TOOLCHAIN_GCC_AT_LEAST_6
860 This option sets _FORTIFY_SOURCES to 2 and some more
861 checking is added, but some conforming programs might fail.
862 Also adds checks at run-time (detected buffer overflow
863 terminates the program)
867 comment "Fortify Source needs a glibc toolchain and optimization"
868 depends on (!BR2_TOOLCHAIN_USES_GLIBC || BR2_OPTIMIZE_0)
871 source "toolchain/Config.in"
873 source "system/Config.in"
875 source "linux/Config.in"
877 source "package/Config.in"
879 source "fs/Config.in"
881 source "boot/Config.in"
883 source "package/Config.in.host"
885 source "Config.in.legacy"
887 # br2-external menus definitions
888 source "$BR2_BASE_DIR/.br2-external.in.menus"