]> Git Repo - buildroot-mgba.git/blobdiff - Config.in
configs/wandboard: update U-Boot and kernel
[buildroot-mgba.git] / Config.in
index 98096dff12e1c51c1950728cd160bd7ab1c1993f..df43db7eff1340836c7e3dc7910c3958fd0041e4 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
@@ -57,24 +40,42 @@ config BR2_HOST_GCC_AT_LEAST_6
        default y if BR2_HOST_GCC_VERSION = "6"
        select BR2_HOST_GCC_AT_LEAST_5
 
-# Hidden boolean selected by packages in need of Java in order to build
-# (example: xbmc)
-config BR2_NEEDS_HOST_JAVA
+config BR2_HOST_GCC_AT_LEAST_7
        bool
+       default y if BR2_HOST_GCC_VERSION = "7"
+       select BR2_HOST_GCC_AT_LEAST_6
 
-# 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_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 jar in order to build
-# (example: classpath)
-config BR2_NEEDS_HOST_JAR
+config BR2_HOST_GCC_AT_LEAST_9
+       bool
+       default y if BR2_HOST_GCC_VERSION = "9"
+       select BR2_HOST_GCC_AT_LEAST_8
+
+config BR2_HOST_GCC_AT_LEAST_10
+       bool
+       default y if BR2_HOST_GCC_VERSION = "10"
+       select BR2_HOST_GCC_AT_LEAST_9
+
+config BR2_HOST_GCC_AT_LEAST_11
+       bool
+       default y if BR2_HOST_GCC_VERSION = "11"
+       select BR2_HOST_GCC_AT_LEAST_10
+
+# 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 Java in order to build
+# (example: kodi)
+config BR2_NEEDS_HOST_JAVA
        bool
 
 # Hidden boolean selected by pre-built packages for x86, when they
 # need to run on x86-64 machines (example: pre-built external
-# toolchains, binary tools like SAM-BA, etc.).
+# toolchains, binary tools, etc.).
 config BR2_HOSTARCH_NEEDS_IA32_LIBS
        bool
 
@@ -84,19 +85,35 @@ config BR2_HOSTARCH_NEEDS_IA32_LIBS
 config BR2_HOSTARCH_NEEDS_IA32_COMPILER
        bool
 
+# Hidden boolean selected by packages that need the host to have an
+# UTF8 locale.
+config BR2_NEEDS_HOST_UTF8_LOCALE
+       bool
+
+# 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"
 
+source "toolchain/Config.in"
+
 menu "Build options"
 
 menu "Commands"
 
+config BR2_CURL
+       string "Curl command"
+       default "curl -q --ftp-pasv --retry 3"
+
 config BR2_WGET
        string "Wget command"
-       default "wget --passive-ftp -nd -t 3"
+       default "wget -nd -t 3"
 
 config BR2_SVN
        string "Subversion (svn) command"
-       default "svn"
+       default "svn --non-interactive"
 
 config BR2_BZR
        string "Bazaar (bzr) command"
@@ -118,9 +135,9 @@ config BR2_SCP
        string "Secure copy (scp) command"
        default "scp"
 
-config BR2_SSH
-       string "Secure shell (ssh) command"
-       default "ssh"
+config BR2_SFTP
+       string "Secure file transfer (sftp) command"
+       default "sftp"
 
 config BR2_HG
        string "Mercurial (hg) command"
@@ -153,13 +170,27 @@ config BR2_XZCAT
          Command to be used to extract a xz'ed file to stdout.
          Default is "xzcat"
 
+config BR2_LZCAT
+       string "lzcat command"
+       default "lzip -d -c"
+       help
+         Command to be used to extract a lzip'ed file to stdout.
+         Default is "lzip -d -c"
+
+config BR2_ZSTDCAT
+       string "zstdcat command"
+       default "zstdcat"
+       help
+         Command to be used to extract a zstd'ed file to stdout.
+         Default is "zstdcat"
+
 config BR2_TAR_OPTIONS
        string "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
 
@@ -183,6 +214,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
 
@@ -228,7 +262,7 @@ if !BR2_PRIMARY_SITE_ONLY
 
 config BR2_BACKUP_SITE
        string "Backup download site"
-       default "http://sources.buildroot.net"
+       default "https://sources.buildroot.net"
        help
          Backup site to download from. If this option is set then
          buildroot will fall back to download package sources from here
@@ -274,14 +308,15 @@ config BR2_LUAROCKS_MIRROR
 
 config BR2_CPAN_MIRROR
        string "CPAN mirror (Perl packages)"
-       default "http://cpan.metacpan.org"
+       default "https://cpan.metacpan.org"
        help
          CPAN (Comprehensive Perl Archive Network) is a repository of
          Perl packages. It has multiple software mirrors scattered
          around the world. This option allows you to select a mirror.
 
          The list of mirrors is available at:
-         http://search.cpan.org/mirror
+         http://mirrors.cpan.org/          (tabular)
+         http://mirrors.cpan.org/map.html  (clickable world map)
 
 endif
 
@@ -294,8 +329,12 @@ config BR2_JLEVEL
          Number of jobs to run simultaneously. If 0, determine
          automatically according to number of CPUs on the host system.
 
+comment "ccache needs a host gcc >= 8"
+       depends on !BR2_HOST_GCC_AT_LEAST_8
+
 config BR2_CCACHE
        bool "Enable compiler cache"
+       depends on BR2_HOST_GCC_AT_LEAST_8
        help
          This option will enable the use of ccache, a compiler cache.
          It will cache the result of previous builds to speed up future
@@ -315,6 +354,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"
@@ -402,13 +444,23 @@ config BR2_DEBUG_3
 endchoice
 endif
 
-choice
-       prompt "strip command for binaries on target"
-       default BR2_STRIP_strip
+config BR2_ENABLE_RUNTIME_DEBUG
+       bool "build packages with runtime debugging info"
+       help
+         Some packages may have runtime assertions, extra traces, and
+         similar runtime elements that can help debugging. However,
+         these elements may negatively influence performance so should
+         normally not be enabled on production systems.
+
+         Enable this option to enable such runtime debugging.
+
+         Note: disabling this option is not a guarantee that all
+         packages effectively removed these runtime debugging elements.
 
 config BR2_STRIP_strip
-       bool "strip"
-       depends on !BR2_PACKAGE_HOST_ELF2FLT
+       bool "strip target binaries"
+       default y
+       depends on BR2_BINFMT_ELF
        help
          Binaries and libraries in the target filesystem will be
          stripped using the normal 'strip' command. This allows to save
@@ -416,24 +468,18 @@ config BR2_STRIP_strip
          on the target are needed for native debugging, but not when
          remote debugging is used.
 
-config BR2_STRIP_none
-       bool "none"
-       help
-         Do not strip binaries and libraries in the target filesystem.
-endchoice
-
 config BR2_STRIP_EXCLUDE_FILES
        string "executables that should not be stripped"
-       depends on !BR2_STRIP_none
        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_none
        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
@@ -443,14 +489,14 @@ config BR2_STRIP_EXCLUDE_DIRS
 
 choice
        prompt "gcc optimization level"
-       default BR2_OPTIMIZE_S
+       default BR2_OPTIMIZE_2
        help
          Set the optimization level for gcc
 
 config BR2_OPTIMIZE_0
        bool "optimization level 0"
        help
-         Do not optimize. This is the default.
+         Do not optimize.
 
 config BR2_OPTIMIZE_1
        bool "optimization level 1"
@@ -489,6 +535,7 @@ config BR2_OPTIMIZE_2
          -falign-loops -falign-labels -ftree-vrp -ftree-pre. Please
          note the warning under -fgcse about invoking -O2 on programs
          that use computed gotos.
+         This is the default.
 
 config BR2_OPTIMIZE_3
        bool "optimization level 3"
@@ -518,16 +565,49 @@ config BR2_OPTIMIZE_S
          -freorder-blocks-and-partition -fprefetch-loop-arrays
          -ftree-vect-loop-version
 
+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_ENABLE_LTO
+       bool "build packages with link-time optimisation"
+       help
+         Enable the link-time optimisation (LTO) option when building
+         packages. Link-time optimisation re-runs optimisations at
+         link time, which allows the compiler to do interprocedural
+         analysis across compilation units and thus come with better
+         results: smaller size and better performance.
+
+         Note that this analysis is limited to statically linked
+         object files and libraries.
+
+         This option may significantly increase build times,
+         sometimes 5 times longer, with only limited gains.
+
+         At this time, this option only enables LTO in packages that
+         have an explicit configuration option for it. Other packages
+         always enable LTO, but most packages never enable LTO.
+
 config BR2_GOOGLE_BREAKPAD_ENABLE
        bool "Enable google-breakpad support"
-       select BR2_PACKAGE_GOOGLE_BREAKPAD
        depends on BR2_INSTALL_LIBSTDCPP
+       depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # C++17
        depends on BR2_USE_WCHAR
        depends on BR2_TOOLCHAIN_HAS_THREADS
-       depends on (BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC)
+       depends on BR2_TOOLCHAIN_USES_GLIBC
        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
@@ -555,61 +635,6 @@ config BR2_GOOGLE_BREAKPAD_INCLUDE_FILES
 
 endif
 
-choice
-       bool "build code with Stack Smashing Protection"
-       default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy
-       depends on BR2_TOOLCHAIN_HAS_SSP
-       help
-         Enable stack smashing protection support using GCC's
-         -fstack-protector option family.
-
-         See
-         http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
-         for details.
-
-         Note that this requires the toolchain to have SSP support.
-         This is always the case for glibc and eglibc toolchain, but is
-         optional in uClibc toolchains.
-
-config BR2_SSP_NONE
-       bool "None"
-       help
-         Disable stack-smashing protection.
-
-config BR2_SSP_REGULAR
-       bool "-fstack-protector"
-       help
-         Emit extra code to check for buffer overflows, such as stack
-         smashing attacks. This is done by adding a guard variable to
-         functions with vulnerable objects. This includes functions
-         that call alloca, and functions with buffers larger than 8
-         bytes. The guards are initialized when a function is entered
-         and then checked when the function exits. If a guard check
-         fails, an error message is printed and the program exits.
-
-config BR2_SSP_STRONG
-       bool "-fstack-protector-strong"
-       depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
-       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
-
-config BR2_SSP_ALL
-       bool "-fstack-protector-all"
-       help
-         Like -fstack-protector except that all functions are
-         protected. This option might have a significant performance
-         impact on the compiled binaries.
-
-endchoice
-
-comment "Stack Smashing Protection needs a toolchain w/ SSP"
-       depends on !BR2_TOOLCHAIN_HAS_SSP
-
 choice
        bool "libraries"
        default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED
@@ -623,6 +648,7 @@ choice
 
 config BR2_STATIC_LIBS
        bool "static only"
+       depends on !BR2_TOOLCHAIN_USES_GLIBC
        help
          Build and use only static libraries. No shared libraries will
          be installed on the target. This potentially increases your
@@ -631,6 +657,9 @@ config BR2_STATIC_LIBS
          option is enabled, due to their need for dynamic library
          support.
 
+comment "static only needs a toolchain w/ uclibc or musl"
+       depends on BR2_TOOLCHAIN_USES_GLIBC
+
 config BR2_SHARED_LIBS
        bool "shared only"
        depends on BR2_BINFMT_SUPPORTS_SHARED
@@ -649,7 +678,6 @@ config BR2_SHARED_STATIC_LIBS
 
 endchoice
 
-
 config BR2_PACKAGE_OVERRIDE_FILE
        string "location of a package override file"
        default "$(CONFIG_DIR)/local.mk"
@@ -661,12 +689,12 @@ config BR2_PACKAGE_OVERRIDE_FILE
          documentation for more details on this feature.
 
 config BR2_GLOBAL_PATCH_DIR
-       string "global patch directories"
+       string "global patch and hash directories"
        help
          You may specify a space separated list of one or more
-         directories containing global package patches. For a specific
-         version <packageversion> of a specific package <packagename>,
-         patches are applied as follows:
+         directories containing global package patches and/or hashes.
+         For a specific version <packageversion> of a specific package
+         <packagename>, patches are looked up as follows:
 
          First, the default Buildroot patch set for the package is
          applied from the package's directory in Buildroot.
@@ -680,27 +708,41 @@ config BR2_GLOBAL_PATCH_DIR
          exists, then all *.patch files in the directory will be
          applied.
 
+         The hash files are looked up similarly to the patches.
+
 menu "Advanced"
 
-config BR2_COMPILER_PARANOID_UNSAFE_PATH
-       bool "paranoid check of library/header paths"
-       default y
+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_DOWNLOAD_FORCE_CHECK_HASHES
+       bool "Force all downloads to have a valid hash"
        help
-         By default, when this option is disabled, when the Buildroot
-         cross-compiler will encounter an unsafe library or header path
-         (such as /usr/include, or /usr/lib), the compiler will display
-         a warning.
+         Say 'y' here to enforce downloads to have at least one valid
+         hash (and of course, that all hashes be valid).
 
-         By enabling this option, this warning is turned into an error,
-         which will completely abort the build when such unsafe paths
-         are encountered.
+         By default, Buildroot checks hashes of all packages
+         downloaded, except those for which a custom version is
+         used.
 
-         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).
+         With this option turned on, Buildroot will check hashes of
+         all packages, including those that use a custom version. In
+         order to provide hashes for such packages, place additional
+         hash files in BR2_GLOBAL_PATCH_DIR directories.
 
 config BR2_REPRODUCIBLE
        bool "Make the build reproducible (experimental)"
+       # SOURCE_DATE_EPOCH support in toolchain-wrapper requires GCC 4.4
+       depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_4
        help
          This option will remove all sources of non-reproducibility
          from the build process. For a given Buildroot configuration,
@@ -716,11 +758,231 @@ config BR2_REPRODUCIBLE
          This is labeled as an experimental feature, as not all
          packages behave properly to ensure reproducibility.
 
-endmenu
+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
 
-source "toolchain/Config.in"
+config BR2_TIME_BITS_64
+       bool "Build Y2038-ready code"
+       depends on BR2_TOOLCHAIN_USES_GLIBC && !BR2_ARCH_IS_64
+       help
+         This option will pass -D_TIME_BITS=64 in the compiler flags
+         to ensure the glibc C library uses a 64-bit representation
+         for time_t and other time types, which ensures that
+         programs/libraries will correctly handle time past year
+         2038.
+
+         This option only has an effect with glibc >= 2.34, as
+         earlier glibc versions did not have support for 64-bit
+         time_t.
+
+comment "Security Hardening Options"
+
+config BR2_PIC_PIE_ARCH_SUPPORTS
+       bool
+       default y
+       # Microblaze glibc toolchains don't work with PIC/PIE enabled
+       depends on !BR2_microblaze
+       # Nios2 toolchains produce non working binaries with -fPIC
+       depends on !BR2_nios2
+
+config BR2_PIC_PIE
+       bool "Build code with PIC/PIE"
+       default y
+       depends on BR2_PIC_PIE_ARCH_SUPPORTS
+       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_PIC_PIE_ARCH_SUPPORTS
+       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
+       default BR2_SSP_STRONG if BR2_TOOLCHAIN_HAS_SSP_STRONG
+       default BR2_SSP_REGULAR
+       depends on BR2_TOOLCHAIN_HAS_SSP
+       help
+         Enable stack smashing protection support using GCC's
+         -fstack-protector option family.
+
+         See
+         http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
+         for details.
+
+         Note that this requires the toolchain to have SSP support.
+         This is always the case for glibc and eglibc toolchain, but is
+         optional in uClibc toolchains.
+
+config BR2_SSP_NONE
+       bool "None"
+       help
+         Disable stack-smashing protection.
+
+config BR2_SSP_REGULAR
+       bool "-fstack-protector"
+       help
+         Emit extra code to check for buffer overflows, such as stack
+         smashing attacks. This is done by adding a guard variable to
+         functions with vulnerable objects. This includes functions
+         that call alloca, and functions with buffers larger than 8
+         bytes. The guards are initialized when a function is entered
+         and then checked when the function exits. If a guard check
+         fails, an error message is printed and the program exits.
+
+config BR2_SSP_STRONG
+       bool "-fstack-protector-strong"
+       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.
+
+         -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"
+       help
+         Like -fstack-protector except that all functions are
+         protected. This option might have a significant performance
+         impact on the compiled binaries.
+
+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
+
+choice
+       bool "RELRO Protection"
+       default BR2_RELRO_FULL if BR2_TOOLCHAIN_SUPPORTS_PIE
+       default BR2_RELRO_PARTIAL
+       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.
+
+config BR2_RELRO_NONE
+       bool "None"
+       help
+         Disables Relocation link-time protections.
+
+config BR2_RELRO_PARTIAL
+       bool "Partial"
+       help
+         This option makes the dynamic section not writeable after
+         initialization (with almost no performance penalty).
+
+config BR2_RELRO_FULL
+       bool "Full"
+       depends on BR2_PIC_PIE_ARCH_SUPPORTS
+       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.
+
+comment "RELRO Full needs a toolchain w/ PIE"
+       depends on BR2_PIC_PIE_ARCH_SUPPORTS
+       depends on !BR2_TOOLCHAIN_SUPPORTS_PIE
+
+endchoice
+
+comment "RELocation Read Only (RELRO) needs shared libraries"
+       depends on !BR2_SHARED_LIBS
+
+config BR2_FORTIFY_SOURCE_ARCH_SUPPORTS
+       bool
+       default y
+       # Microblaze glibc toolchains don't work with Fortify Source enabled
+       depends on !BR2_microblaze
+
+choice
+       bool "Buffer-overflow Detection (FORTIFY_SOURCE)"
+       default BR2_FORTIFY_SOURCE_1
+       depends on BR2_FORTIFY_SOURCE_ARCH_SUPPORTS
+       depends on BR2_TOOLCHAIN_USES_GLIBC
+       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.
+
+         NOTE: This feature requires an optimization level of s/1/2/3/g
+
+         Support for this feature has been present since GCC 4.x.
+
+config BR2_FORTIFY_SOURCE_NONE
+       bool "None"
+       help
+         Disables additional checks to detect buffer-overflows.
+
+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
+         programs.  Adds checks at compile-time only.
+
+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.
+         Also adds checks at run-time (detected buffer overflow
+         terminates the program)
+
+config BR2_FORTIFY_SOURCE_3
+       bool "Extended"
+       depends on BR2_TOOLCHAIN_GCC_AT_LEAST_12
+       help
+         This option sets _FORTIFY_SOURCES to 3 and even more
+         checking is added compared to level 2. Extends checks at
+         run-time that can introduce an additional performance
+         overhead.
+
+endchoice
+
+comment "Fortify Source needs a glibc toolchain and optimization"
+       depends on BR2_FORTIFY_SOURCE_ARCH_SUPPORTS
+       depends on (!BR2_TOOLCHAIN_USES_GLIBC || BR2_OPTIMIZE_0)
+endmenu
 
 source "system/Config.in"
 
@@ -736,4 +998,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.042949 seconds and 4 git commands to generate.