]> Git Repo - buildroot-mgba.git/blobdiff - Config.in
gitlab: generate the gitlab-ci configuration before each build
[buildroot-mgba.git] / Config.in
index 704840653e5e07bdd805faac69e58160bebe02ae..e35a78fb71ba6024b5be4529d88bcc39bbc69b7c 100644 (file)
--- a/Config.in
+++ b/Config.in
@@ -14,38 +14,21 @@ config BR2_HOSTARCH
        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
@@ -62,19 +45,22 @@ config BR2_HOST_GCC_AT_LEAST_7
        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
@@ -94,9 +80,9 @@ config BR2_HOSTARCH_NEEDS_IA32_COMPILER
 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"
@@ -133,10 +119,6 @@ config BR2_SCP
        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"
@@ -180,8 +162,8 @@ config BR2_TAR_OPTIONS
        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
 
@@ -205,6 +187,9 @@ config BR2_DL_DIR
          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
 
@@ -337,6 +322,9 @@ config BR2_CCACHE_DIR
        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"
@@ -426,8 +414,8 @@ endif
 
 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
@@ -437,16 +425,16 @@ config BR2_STRIP_strip
 
 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
@@ -532,19 +520,30 @@ config BR2_OPTIMIZE_S
          -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
@@ -611,7 +610,6 @@ config BR2_SHARED_STATIC_LIBS
 
 endchoice
 
-
 config BR2_PACKAGE_OVERRIDE_FILE
        string "location of a package override file"
        default "$(CONFIG_DIR)/local.mk"
@@ -659,7 +657,20 @@ config BR2_COMPILER_PARANOID_UNSAFE_PATH
 
          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)"
@@ -680,10 +691,40 @@ config BR2_REPRODUCIBLE
          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
@@ -718,14 +759,15 @@ config BR2_SSP_REGULAR
 
 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"
@@ -736,6 +778,12 @@ config BR2_SSP_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
 
@@ -743,9 +791,9 @@ choice
        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"
@@ -760,10 +808,15 @@ config BR2_RELRO_PARTIAL
 
 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
 
@@ -776,10 +829,10 @@ choice
        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
 
@@ -792,6 +845,8 @@ config BR2_FORTIFY_SOURCE_NONE
 
 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
@@ -799,6 +854,8 @@ config BR2_FORTIFY_SOURCE_1
 
 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.
@@ -827,4 +884,5 @@ source "package/Config.in.host"
 
 source "Config.in.legacy"
 
-source "$BR2_BUILD_DIR/.br2-external.in"
+# br2-external menus definitions
+source "$BR2_BASE_DIR/.br2-external.in.menus"
This page took 0.035379 seconds and 4 git commands to generate.