]> Git Repo - buildroot-mgba.git/blobdiff - Config.in
configs/wandboard: update U-Boot and kernel
[buildroot-mgba.git] / Config.in
index 90403037e61ea4117b4d7dd6de027612ea948832..df43db7eff1340836c7e3dc7910c3958fd0041e4 100644 (file)
--- a/Config.in
+++ b/Config.in
@@ -55,6 +55,16 @@ config BR2_HOST_GCC_AT_LEAST_9
        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.
 
@@ -63,19 +73,9 @@ config BR2_HOST_GCC_AT_LEAST_9
 config BR2_NEEDS_HOST_JAVA
        bool
 
-# Hidden boolean selected by packages in need of javac in order to build
-# (example: classpath)
-config BR2_NEEDS_HOST_JAVAC
-       bool
-
-# Hidden boolean selected by packages in need of jar in order to build
-# (example: classpath)
-config BR2_NEEDS_HOST_JAR
-       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
 
@@ -90,15 +90,26 @@ config BR2_HOSTARCH_NEEDS_IA32_COMPILER
 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"
@@ -124,6 +135,10 @@ config BR2_SCP
        string "Secure copy (scp) command"
        default "scp"
 
+config BR2_SFTP
+       string "Secure file transfer (sftp) command"
+       default "sftp"
+
 config BR2_HG
        string "Mercurial (hg) command"
        default "hg"
@@ -162,6 +177,13 @@ config BR2_LZCAT
          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 ""
@@ -240,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
@@ -286,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
 
@@ -306,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
@@ -417,10 +444,23 @@ config BR2_DEBUG_3
 endchoice
 endif
 
+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 target binaries"
        default y
-       depends on !BR2_PACKAGE_HOST_ELF2FLT
+       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
@@ -449,7 +489,7 @@ 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
 
@@ -495,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"
@@ -523,28 +564,47 @@ config BR2_OPTIMIZE_S
          -falign-loops -falign-labels -freorder-blocks
          -freorder-blocks-and-partition -fprefetch-loop-arrays
          -ftree-vect-loop-version
-         This is the default.
 
 config BR2_OPTIMIZE_FAST
-       bool "optimize for 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. It turns on -ffast-math and the
+         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"
        depends on BR2_INSTALL_LIBSTDCPP
-       depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
+       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
@@ -588,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
@@ -596,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
@@ -625,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.
@@ -644,25 +708,9 @@ config BR2_GLOBAL_PATCH_DIR
          exists, then all *.patch files in the directory will be
          applied.
 
-menu "Advanced"
-
-config BR2_COMPILER_PARANOID_UNSAFE_PATH
-       bool "paranoid check of library/header paths"
-       default y
-       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.
-
-         By enabling this option, this warning is turned into an error,
-         which will completely abort the build when such unsafe paths
-         are encountered.
+         The hash files are looked up similarly to the patches.
 
-         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).
+menu "Advanced"
 
 config BR2_FORCE_HOST_BUILD
        bool "Force the building of host dependencies"
@@ -676,6 +724,21 @@ config BR2_FORCE_HOST_BUILD
 
          This option will increase build time.
 
+config BR2_DOWNLOAD_FORCE_CHECK_HASHES
+       bool "Force all downloads to have a valid hash"
+       help
+         Say 'y' here to enforce downloads to have at least one valid
+         hash (and of course, that all hashes be valid).
+
+         By default, Buildroot checks hashes of all packages
+         downloaded, except those for which a custom version is
+         used.
+
+         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
@@ -715,10 +778,34 @@ config BR2_PER_PACKAGE_DIRECTORIES
 
 endmenu
 
+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
@@ -726,12 +813,15 @@ config BR2_PIC_PIE
          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
@@ -793,6 +883,8 @@ comment "Stack Smashing Protection needs a toolchain w/ 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
@@ -812,6 +904,7 @@ config BR2_RELRO_PARTIAL
 
 config BR2_RELRO_FULL
        bool "Full"
+       depends on BR2_PIC_PIE_ARCH_SUPPORTS
        depends on BR2_TOOLCHAIN_SUPPORTS_PIE
        select BR2_PIC_PIE
        help
@@ -820,6 +913,7 @@ config BR2_RELRO_FULL
          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
@@ -827,8 +921,16 @@ 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
@@ -866,14 +968,22 @@ config BR2_FORTIFY_SOURCE_2
          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 "toolchain/Config.in"
-
 source "system/Config.in"
 
 source "linux/Config.in"
This page took 0.035496 seconds and 4 git commands to generate.