diff options
Diffstat (limited to 'config/target.in')
-rw-r--r-- | config/target.in | 138 |
1 files changed, 126 insertions, 12 deletions
diff --git a/config/target.in b/config/target.in index a905b23..995457a 100644 --- a/config/target.in +++ b/config/target.in @@ -2,10 +2,7 @@ menu "Target options" -config ARCH - string - -source "config.gen/arch.in" +source "config/gen/arch.in" config ARCH_SUFFIX string @@ -22,6 +19,21 @@ config ARCH_SUFFIX If you are not sure about what this is, leave it blank. +config OMIT_TARGET_ARCH + bool + help + Do not include architecture into the target tuple. + +config OMIT_TARGET_VENDOR + bool "Omit vendor part of the target tuple" + help + Do not include vendor into the target tuple. + +config TARGET_SKIP_CONFIG_SUB + bool + help + Skip canonicalization of the target tuple. + #-------------------------------------- comment "Generic target options" @@ -36,7 +48,6 @@ config ARCH_REQUIRES_MULTILIB config MULTILIB bool prompt "Build a multilib toolchain (READ HELP!!!)" - select CC_CORE_PASS_1_NEEDED help If you say 'y' here, then the toolchain will also contain the C library optimised for some variants of the selected architecture, besides the @@ -51,6 +62,29 @@ config MULTILIB NOTE: The multilib feature in crosstool-NG is not well-tested. Use at your own risk, and report success and/or failure. +config DEMULTILIB + bool "Attempt to combine libraries into a single directory" + default y if !MULTILIB + depends on !MULTILIB || EXPERIMENTAL + help + Normally, Crosstool-NG installs the libraries into the directories + as the configure for these libraries determines appropriate. For + example, for AArch64 glibc wants to install the libraries into + /lib64 but the default dynamic linker path is /lib/ld-linux-aarch64.so.1 + (which is installed as a symlink to ../lib64/ld-VER.so). + + However, not all consumers of the toolchain can handle the libraries + residing in multiple directories. To appease them, crosstool-NG can + attempt to combine the libraries back into a single /lib directory and + create all other directories as symlinks to /lib. This requires all + the library names to be unique within each sysroot. + + Note that GCC may also use separate sysroots for different multilibs. + Hence it may make sense to enable this option even for multilib toolchains. + However, separate roots are rare (any other architecture aside from + SuperH using them?) and hence not well tested in crosstool-NG; therefore, + this option is experimental when MULTILIB is enabled. + #-------------------------------------- config ARCH_SUPPORTS_BOTH_MMU bool @@ -74,8 +108,20 @@ config ARCH_USE_MMU have one (eg. ARM Cortex-A8). #-------------------------------------- +config ARCH_SUPPORTS_FLAT_FORMAT + bool + +#-------------------------------------- +config ARCH_SUPPORTS_EITHER_ENDIAN + bool + help + Architecture allows to select endianness at the time the toolchain is built. + config ARCH_SUPPORTS_BOTH_ENDIAN bool + select ARCH_SUPPORTS_EITHER_ENDIAN + help + Toolchain supports both big/little endian. config ARCH_DEFAULT_BE bool @@ -83,12 +129,22 @@ config ARCH_DEFAULT_BE config ARCH_DEFAULT_LE bool +config ARCH_DEFAULT_BE_LE + bool + depends on ARCH_SUPPORTS_BOTH_ENDIAN + +config ARCH_DEFAULT_LE_BE + bool + depends on ARCH_SUPPORTS_BOTH_ENDIAN + choice bool prompt "Endianness:" - depends on ARCH_SUPPORTS_BOTH_ENDIAN + depends on ARCH_SUPPORTS_EITHER_ENDIAN default ARCH_BE if ARCH_DEFAULT_BE default ARCH_LE if ARCH_DEFAULT_LE + default ARCH_BE_LE if ARCH_DEFAULT_BE_LE + default ARCH_LE_BE if ARCH_DEFAULT_LE_BE config ARCH_BE bool @@ -98,18 +154,33 @@ config ARCH_LE bool prompt "Little endian" +config ARCH_BE_LE + bool + prompt "Both, default big endian" + depends on ARCH_SUPPORTS_BOTH_ENDIAN + +config ARCH_LE_BE + bool + prompt "Both, default little endian" + depends on ARCH_SUPPORTS_BOTH_ENDIAN + endchoice config ARCH_ENDIAN string - depends on ARCH_SUPPORTS_BOTH_ENDIAN - default "big" if ARCH_BE - default "little" if ARCH_LE + depends on ARCH_SUPPORTS_EITHER_ENDIAN + default "big" if ARCH_BE + default "little" if ARCH_LE + default "big,little" if ARCH_BE_LE + default "little,big" if ARCH_LE_BE #-------------------------------------- config ARCH_SUPPORTS_8 bool +config ARCH_SUPPORTS_16 + bool + config ARCH_SUPPORTS_32 bool @@ -119,6 +190,9 @@ config ARCH_SUPPORTS_64 config ARCH_DEFAULT_8 bool +config ARCH_DEFAULT_16 + bool + config ARCH_DEFAULT_32 bool @@ -128,6 +202,7 @@ config ARCH_DEFAULT_64 config ARCH_BITNESS int default "8" if ARCH_8 + default "16" if ARCH_16 default "32" if ARCH_32 default "64" if ARCH_64 @@ -135,6 +210,7 @@ choice bool prompt "Bitness:" default ARCH_8 if ARCH_DEFAULT_8 + default ARCH_16 if ARCH_DEFAULT_16 default ARCH_32 if ARCH_DEFAULT_32 default ARCH_64 if ARCH_DEFAULT_64 @@ -143,6 +219,11 @@ config ARCH_8 prompt "8-bit" depends on ARCH_SUPPORTS_8 +config ARCH_16 + bool + prompt "16-bit" + depends on ARCH_SUPPORTS_16 + config ARCH_32 bool prompt "32-bit" @@ -155,6 +236,11 @@ config ARCH_64 endchoice +# Whether this architecture supports passing --with-{cpu,arch,tune}-{32,64}= +# to GCC configure. +config ARCH_SUPPORTS_WITH_32_64 + bool + #-------------------------------------- comment "Target optimisations" @@ -176,6 +262,9 @@ config ARCH_SUPPORTS_WITH_FLOAT config ARCH_SUPPORTS_WITH_FPU bool +config ARCH_SUPPORTS_WITH_ENDIAN + bool + config ARCH_SUPPORTS_SOFTFP bool @@ -201,7 +290,9 @@ config ARCH_ARCH target CPU. Leave blank if you don't know, or if your target architecture does not - offer this option. + offer this option. Must be specified for 32-bit x86 that uses some + C library (glibc, uClibc-ng, ...) - the default, "i386" is not supported + by these libraries. config ARCH_ABI string @@ -364,12 +455,35 @@ config TARGET_LDFLAGS config ARCH_FLOAT string - default "" if ! ARCH_SUPPORTS_WITH_FLOAT default "auto" if ARCH_FLOAT_AUTO default "hard" if ARCH_FLOAT_HW default "soft" if ARCH_FLOAT_SW default "softfp" if ARCH_FLOAT_SOFTFP -source "config.gen/arch.in.2" +config TARGET_USE_OVERLAY + bool + +if TARGET_USE_OVERLAY + +config OVERLAY_NAME + string "Custom processor configuration name" + help + Enter the name of the custom processor configuration. + Overlay file for that configuration must be called + '<ARCH>_<OVERLAY_NAME>.tar' (optionally, with .gz/.bz2/.lzma/.xz + extension). + + Leave blank to use the default '<ARCH>_overlay.tar'. + For more information about this option, please also consult the + section 'Using crosstool-NG to build Xtensa toolchains' in the + in http://crosstool-ng.github.io/docs/caveats-features/ + +config OVERLAY_LOCATION + string "Full path to custom configuration (overlay)" + help + Enter the path to the directory for the custom processor + configuration file. + +endif endmenu |