string
option env="HOSTARCH"
-config BR2_BUILD_DIR
+config BR2_BASE_DIR
string
- option env="BUILD_DIR"
+ option env="BASE_DIR"
+
+# br2-external paths definitions
+source "$BR2_BASE_DIR/.br2-external.in.paths"
# Hidden config symbols for packages to check system gcc version
config BR2_HOST_GCC_VERSION
string
option env="HOST_GCC_VERSION"
-config BR2_HOST_GCC_AT_LEAST_4_5
- bool
- default y if BR2_HOST_GCC_VERSION = "4 5"
-
-config BR2_HOST_GCC_AT_LEAST_4_6
- bool
- default y if BR2_HOST_GCC_VERSION = "4 6"
- select BR2_HOST_GCC_AT_LEAST_4_5
-
-config BR2_HOST_GCC_AT_LEAST_4_7
- bool
- default y if BR2_HOST_GCC_VERSION = "4 7"
- select BR2_HOST_GCC_AT_LEAST_4_6
-
-config BR2_HOST_GCC_AT_LEAST_4_8
- bool
- default y if BR2_HOST_GCC_VERSION = "4 8"
- select BR2_HOST_GCC_AT_LEAST_4_7
-
config BR2_HOST_GCC_AT_LEAST_4_9
bool
default y if BR2_HOST_GCC_VERSION = "4 9"
- select BR2_HOST_GCC_AT_LEAST_4_8
config BR2_HOST_GCC_AT_LEAST_5
bool
default y if BR2_HOST_GCC_VERSION = "7"
select BR2_HOST_GCC_AT_LEAST_6
-# Hidden boolean selected by packages in need of Java in order to build
-# (example: kodi)
-config BR2_NEEDS_HOST_JAVA
+config BR2_HOST_GCC_AT_LEAST_8
bool
+ default y if BR2_HOST_GCC_VERSION = "8"
+ select BR2_HOST_GCC_AT_LEAST_7
-# Hidden boolean selected by packages in need of javac in order to build
-# (example: classpath)
-config BR2_NEEDS_HOST_JAVAC
+config BR2_HOST_GCC_AT_LEAST_9
bool
+ default y if BR2_HOST_GCC_VERSION = "9"
+ select BR2_HOST_GCC_AT_LEAST_8
+
+# When adding new entries above, be sure to update
+# the HOSTCC_MAX_VERSION variable in the Makefile.
-# Hidden boolean selected by packages in need of jar in order to build
-# (example: classpath)
-config BR2_NEEDS_HOST_JAR
+# Hidden boolean selected by packages in need of Java in order to build
+# (example: kodi)
+config BR2_NEEDS_HOST_JAVA
bool
# Hidden boolean selected by pre-built packages for x86, when they
config BR2_NEEDS_HOST_UTF8_LOCALE
bool
-# Hidden boolean selected by packages that explicitly need C.UTF-8 locale
-# to be available on host system.
-config BR2_NEEDS_HOST_C_UTF8_LOCALE
+# Hidden boolean selected by packages that need the host to have
+# support for building gcc plugins
+config BR2_NEEDS_HOST_GCC_PLUGIN_SUPPORT
bool
source "arch/Config.in"
string "Secure copy (scp) command"
default "scp"
-config BR2_SSH
- string "Secure shell (ssh) command"
- default "ssh"
-
config BR2_HG
string "Mercurial (hg) command"
default "hg"
default ""
help
Options to pass to tar when extracting the sources.
- E.g. " -v --exclude='*.svn*'" to exclude all .svn internal files
- and to be verbose.
+ E.g. " -v --exclude='*.svn*'" to exclude all .svn internal
+ files and to be verbose.
endmenu
If the Linux shell environment has defined the BR2_DL_DIR
environment variable, then this overrides this configuration
item.
+ The directory is organized with a subdirectory for each
+ package. Each package has its own $(LIBFOO_DL_DIR) variable
+ that can be used to find the correct path.
The default is $(TOPDIR)/dl
default "$(HOME)/.buildroot-ccache"
help
Where ccache should store cached files.
+ If the Linux shell environment has defined the BR2_CCACHE_DIR
+ environment variable, then this overrides this configuration
+ item.
config BR2_CCACHE_INITIAL_SETUP
string "Compiler cache initial setup"
config BR2_STRIP_strip
bool "strip target binaries"
- depends on !BR2_PACKAGE_HOST_ELF2FLT
default y
+ depends on !BR2_PACKAGE_HOST_ELF2FLT
help
Binaries and libraries in the target filesystem will be
stripped using the normal 'strip' command. This allows to save
config BR2_STRIP_EXCLUDE_FILES
string "executables that should not be stripped"
- depends on BR2_STRIP_strip
default ""
+ depends on BR2_STRIP_strip
help
You may specify a space-separated list of binaries and
libraries here that should not be stripped on the target.
config BR2_STRIP_EXCLUDE_DIRS
string "directories that should be skipped when stripping"
- depends on BR2_STRIP_strip
default ""
+ depends on BR2_STRIP_strip
help
You may specify a space-separated list of directories that
should be skipped when stripping. Binaries and libraries in
-ftree-vect-loop-version
This is the default.
+config BR2_OPTIMIZE_FAST
+ bool "optimize for fast (may break packages!)"
+ depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_6
+ help
+ Optimize for fast. Disregard strict standards
+ compliance. -Ofast enables all -O3 optimizations. It also
+ enables optimizations that are not valid for all
+ standard-compliant programs, so be careful, as it may break
+ some packages. It turns on -ffast-math and the
+ Fortran-specific -fstack-arrays, unless -fmax-stack-var-size
+ is specified, and -fno-protect-parens.
+
endchoice
config BR2_GOOGLE_BREAKPAD_ENABLE
bool "Enable google-breakpad support"
- select BR2_PACKAGE_GOOGLE_BREAKPAD
depends on BR2_INSTALL_LIBSTDCPP
- depends on BR2_HOST_GCC_AT_LEAST_4_8 # C++11
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
depends on BR2_USE_WCHAR
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on (BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC)
depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
depends on BR2_PACKAGE_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS
+ select BR2_PACKAGE_GOOGLE_BREAKPAD
help
This option will enable the use of google breakpad, a library
and tool suite that allows you to distribute an application to
endchoice
-
config BR2_PACKAGE_OVERRIDE_FILE
string "location of a package override file"
default "$(CONFIG_DIR)/local.mk"
Note that this mechanism is available for both the internal
toolchain (through the toolchain wrapper and binutils patches)
- and external toolchain backends (through the toolchain wrapper).
+ and external toolchain backends (through the toolchain
+ wrapper).
+
+config BR2_FORCE_HOST_BUILD
+ bool "Force the building of host dependencies"
+ help
+ Build all available host dependencies, even if they are
+ already installed on the system.
+
+ This option can be used to ensure that the download cache of
+ source archives for packages remain consistent between
+ different build hosts.
+
+ This option will increase build time.
config BR2_REPRODUCIBLE
bool "Make the build reproducible (experimental)"
This is labeled as an experimental feature, as not all
packages behave properly to ensure reproducibility.
+config BR2_PER_PACKAGE_DIRECTORIES
+ bool "Use per-package directories (experimental)"
+ help
+ This option will change the build process of Buildroot
+ package to use per-package target and host directories.
+
+ This is useful for two related purposes:
+
+ - Cleanly isolate the build of each package, so that a
+ given package only "sees" the dependencies it has
+ explicitly expressed, and not other packages that may
+ have by chance been built before.
+
+ - Enable top-level parallel build.
+
+ This is labeled as an experimental feature, as not all
+ packages behave properly with per-package directories.
+
endmenu
comment "Security Hardening Options"
+config BR2_PIC_PIE
+ bool "Build code with PIC/PIE"
+ depends on BR2_SHARED_LIBS
+ depends on BR2_TOOLCHAIN_SUPPORTS_PIE
+ help
+ Generate Position-Independent Code (PIC) and link
+ Position-Independent Executables (PIE).
+
+comment "PIC/PIE needs a toolchain w/ PIE"
+ depends on BR2_SHARED_LIBS
+ depends on !BR2_TOOLCHAIN_SUPPORTS_PIE
+
choice
bool "Stack Smashing Protection"
default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy
config BR2_SSP_STRONG
bool "-fstack-protector-strong"
- depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
+ depends on BR2_TOOLCHAIN_HAS_SSP_STRONG
help
Like -fstack-protector but includes additional functions to be
protected - those that have local array definitions, or have
references to local frame addresses.
-comment "Stack Smashing Protection strong needs a toolchain w/ gcc >= 4.9"
- depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
+ -fstack-protector-strong officially appeared in gcc 4.9, but
+ some vendors have backported -fstack-protector-strong to older
+ versions of gcc.
config BR2_SSP_ALL
bool "-fstack-protector-all"
endchoice
+config BR2_SSP_OPTION
+ string
+ default "-fstack-protector" if BR2_SSP_REGULAR
+ default "-fstack-protector-strong" if BR2_SSP_STRONG
+ default "-fstack-protector-all" if BR2_SSP_ALL
+
comment "Stack Smashing Protection needs a toolchain w/ SSP"
depends on !BR2_TOOLCHAIN_HAS_SSP
bool "RELRO Protection"
depends on BR2_SHARED_LIBS
help
- Enable a link-time protection know as RELRO (RELocation Read Only)
- which helps to protect from certain type of exploitation techniques
- altering the content of some ELF sections.
+ Enable a link-time protection know as RELRO (RELocation Read
+ Only) which helps to protect from certain type of exploitation
+ techniques altering the content of some ELF sections.
config BR2_RELRO_NONE
bool "None"
config BR2_RELRO_FULL
bool "Full"
+ depends on BR2_TOOLCHAIN_SUPPORTS_PIE
+ select BR2_PIC_PIE
help
- This option includes the partial configuration, but also
- marks the GOT as read-only at the cost of initialization time
- during program loading, i.e every time an executable is started.
+ This option includes the partial configuration, but also marks
+ the GOT as read-only at the cost of initialization time during
+ program loading, i.e every time an executable is started.
+
+comment "RELRO Full needs a toolchain w/ PIE"
+ depends on !BR2_TOOLCHAIN_SUPPORTS_PIE
endchoice
depends on !BR2_OPTIMIZE_0
help
Enable the _FORTIFY_SOURCE macro which introduces additional
- checks to detect buffer-overflows in the following standard library
- functions: memcpy, mempcpy, memmove, memset, strcpy, stpcpy,
- strncpy, strcat, strncat, sprintf, vsprintf, snprintf, vsnprintf,
- gets.
+ checks to detect buffer-overflows in the following standard
+ library functions: memcpy, mempcpy, memmove, memset, strcpy,
+ stpcpy, strncpy, strcat, strncat, sprintf, vsprintf, snprintf,
+ vsnprintf, gets.
NOTE: This feature requires an optimization level of s/1/2/3/g
config BR2_FORTIFY_SOURCE_1
bool "Conservative"
+ # gcc bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61164
+ depends on !BR2_TOOLCHAIN_BUILDROOT || BR2_TOOLCHAIN_GCC_AT_LEAST_6
help
This option sets _FORTIFY_SOURCE to 1 and only introduces
checks that shouldn't change the behavior of conforming
config BR2_FORTIFY_SOURCE_2
bool "Aggressive"
+ # gcc bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61164
+ depends on !BR2_TOOLCHAIN_BUILDROOT || BR2_TOOLCHAIN_GCC_AT_LEAST_6
help
This option sets _FORTIFY_SOURCES to 2 and some more
checking is added, but some conforming programs might fail.
source "Config.in.legacy"
-source "$BR2_BUILD_DIR/.br2-external.in"
+# br2-external menus definitions
+source "$BR2_BASE_DIR/.br2-external.in.menus"