summaryrefslogtreecommitdiff
path: root/config/target.in
diff options
context:
space:
mode:
Diffstat (limited to 'config/target.in')
-rw-r--r--config/target.in138
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