Introduce four new ARCH specific variables that CT_DoArchValues can set if they want:
- CT_ARCH_CC_CORE_EXTRA_CONFIG
- CT_ARCH_CC_EXTRA_CONFIG
- CT_ARCH_TARGET_CLFAGS
- CT_ARCH_TARGET_LDFLAGS
This will hopefully enable architectures to specify specific flags.
PowerPC will need them to introduce SPE (coming RSN).
/trunk/scripts/crosstool.sh | 2 2 0 0 ++
/trunk/scripts/functions | 4 2 2 0 ++--
/trunk/docs/overview.txt | 45 22 23 0 ++++++++++++++++++++++-----------------------
/trunk/config/target.in | 10 10 0 0 ++++++++++
4 files changed, 36 insertions(+), 25 deletions(-)
1.1 --- a/config/target.in Thu Aug 07 14:05:47 2008 +0000
1.2 +++ b/config/target.in Thu Aug 07 15:18:18 2008 +0000
1.3 @@ -228,4 +228,14 @@
1.4
1.5 Leave blank if you don't know better.
1.6
1.7 +config TARGET_LDFLAGS
1.8 + string
1.9 + prompt "Target LDFLAGS"
1.10 + default ""
1.11 + help
1.12 + Used to add specific options when linking libraries of the toolchain,
1.13 + that will run on your target.
1.14 +
1.15 + Leave blank if you don't know better.
1.16 +
1.17 endmenu
2.1 --- a/docs/overview.txt Thu Aug 07 14:05:47 2008 +0000
2.2 +++ b/docs/overview.txt Thu Aug 07 15:18:18 2008 +0000
2.3 @@ -611,31 +611,16 @@
2.4 ${CT_ARCH}
2.5 + provides:
2.6 - optional
2.7 - - the environment variables to configure the cross-gcc
2.8 - - CT_ARCH_WITH_ARCH
2.9 - - CT_ARCH_WITH_ABI
2.10 - - CT_ARCH_WITH_CPU
2.11 - - CT_ARCH_WITH_TUNE
2.12 - - CT_ARCH_WITH_FPU
2.13 - - CT_ARCH_WITH_FLOAT
2.14 - - contain (defaults):
2.15 - - CT_ARCH_WITH_ARCH : the gcc ./configure switch to select architecture level ( "--with-arch=${CT_ARCH_ARCH}" )
2.16 - - CT_ARCH_WITH_ABI : the gcc ./configure switch to select ABI level ( "--with-abi=${CT_ARCH_ABI}" )
2.17 - - CT_ARCH_WITH_CPU : the gcc ./configure switch to select CPU instruction set ( "--with-cpu=${CT_ARCH_CPU}" )
2.18 - - CT_ARCH_WITH_TUNE : the gcc ./configure switch to select scheduling ( "--with-tune=${CT_ARCH_TUNE}" )
2.19 - - CT_ARCH_WITH_FPU : the gcc ./configure switch to select FPU type ( "--with-fpu=${CT_ARCH_FPU}" )
2.20 - - CT_ARCH_WITH_FLOAT : the gcc ./configure switch to select floating point arithmetics ( "--with-float=soft" or /empty/ )
2.21 + - the environment variables to configure the cross-gcc (defaults)
2.22 + - CT_ARCH_WITH_ARCH : the gcc ./configure switch to select architecture level ( "--with-arch=${CT_ARCH_ARCH}" )
2.23 + - CT_ARCH_WITH_ABI : the gcc ./configure switch to select ABI level ( "--with-abi=${CT_ARCH_ABI}" )
2.24 + - CT_ARCH_WITH_CPU : the gcc ./configure switch to select CPU instruction set ( "--with-cpu=${CT_ARCH_CPU}" )
2.25 + - CT_ARCH_WITH_TUNE : the gcc ./configure switch to select scheduling ( "--with-tune=${CT_ARCH_TUNE}" )
2.26 + - CT_ARCH_WITH_FPU : the gcc ./configure switch to select FPU type ( "--with-fpu=${CT_ARCH_FPU}" )
2.27 + - CT_ARCH_WITH_FLOAT : the gcc ./configure switch to select floating point arithmetics ( "--with-float=soft" or /empty/ )
2.28 + provides:
2.29 - optional
2.30 - - the environment variables to pass to the cross-gcc to build target binaries
2.31 - - CT_ARCH_ARCH_CFLAG
2.32 - - CT_ARCH_ABI_CFLAG
2.33 - - CT_ARCH_CPU_CFLAG
2.34 - - CT_ARCH_TUNE_CFLAG
2.35 - - CT_ARCH_FPU_CFLAG
2.36 - - CT_ARCH_FLOAT_CFLAG
2.37 - - CT_ARCH_ENDIAN_CFLAG
2.38 - - contain (defaults):
2.39 + - the environment variables to pass to the cross-gcc to build target binaries (defaults)
2.40 - CT_ARCH_ARCH_CFLAG : the gcc switch to select architecture level ( "-march=${CT_ARCH_ARCH}" )
2.41 - CT_ARCH_ABI_CFLAG : the gcc switch to select ABI level ( "-mabi=${CT_ARCH_ABI}" )
2.42 - CT_ARCH_CPU_CFLAG : the gcc switch to select CPU instruction set ( "-mcpu=${CT_ARCH_CPU}" )
2.43 @@ -645,6 +630,20 @@
2.44 - CT_ARCH_ENDIAN_CFLAG : the gcc switch to choose big or little endian ( "-mbig-endian" or "-mlittle-endian" )
2.45 - default to:
2.46 see above.
2.47 + + provides:
2.48 + - optional
2.49 + - the environement variables to configure the core and final compiler, specific to this architecture:
2.50 + - CT_ARCH_CC_CORE_EXTRA_CONFIG : additional, architecture specific core gcc ./configure flags
2.51 + - CT_ARCH_CC_EXTRA_CONFIG : additional, architecture specific final gcc ./configure flags
2.52 + - default to:
2.53 + - all empty
2.54 + + provides:
2.55 + - optional
2.56 + - the architecture-specific CFLAGS and LDFLAGS:
2.57 + - CT_ARCH_TARGET_CLFAGS
2.58 + - CT_ARCH_TARGET_LDFLAGS
2.59 + - default to:
2.60 + - all empty
2.61
2.62 Adding a new version of a component |
2.63 ------------------------------------+
3.1 --- a/scripts/crosstool.sh Thu Aug 07 14:05:47 2008 +0000
3.2 +++ b/scripts/crosstool.sh Thu Aug 07 15:18:18 2008 +0000
3.3 @@ -71,6 +71,8 @@
3.4 # Put user-supplied flags at the end, so that they take precedence.
3.5 CT_TARGET_CFLAGS="${CT_ARCH_TARGET_CFLAGS} ${CT_TARGET_CFLAGS}"
3.6 CT_TARGET_LDFLAGS="${CT_ARCH_TARGET_LDFLAGS} ${CT_TARGET_LDFLAGS}"
3.7 +CT_CC_CORE_EXTRA_CONFIG="${CT_ARCH_CC_CORE_EXTRA_CONFIG} ${CT_CC_CORE_EXTRA_CONFIG}"
3.8 +CT_CC_EXTRA_CONFIG="${CT_ARCH_CC_EXTRA_CONFIG} ${CT_CC_EXTRA_CONFIG}"
3.9
3.10 # Now, build up the variables from the user-configured options.
3.11 CT_KERNEL_FILE="${CT_KERNEL}-${CT_KERNEL_VERSION}"
4.1 --- a/scripts/functions Thu Aug 07 14:05:47 2008 +0000
4.2 +++ b/scripts/functions Thu Aug 07 15:18:18 2008 +0000
4.3 @@ -703,7 +703,7 @@
4.4 CT_TARGET=$(CT_DoConfigSub "${CT_TARGET_ARCH}-${CT_TARGET_VENDOR:-unknown}-${CT_TARGET_KERNEL}-${CT_TARGET_SYS}")
4.5
4.6 # Prepare the target CFLAGS
4.7 - CT_ARCH_TARGET_CFLAGS="${CT_ARCH_ENDIAN_CFLAG}"
4.8 + CT_ARCH_TARGET_CFLAGS="${CT_ARCH_TARGET_CFLAGS} ${CT_ARCH_ENDIAN_CFLAG}"
4.9 CT_ARCH_TARGET_CFLAGS="${CT_ARCH_TARGET_CFLAGS} ${CT_ARCH_ARCH_CFLAG}"
4.10 CT_ARCH_TARGET_CFLAGS="${CT_ARCH_TARGET_CFLAGS} ${CT_ARCH_ABI_CFLAG}"
4.11 CT_ARCH_TARGET_CFLAGS="${CT_ARCH_TARGET_CFLAGS} ${CT_ARCH_CPU_CFLAG}"
4.12 @@ -712,7 +712,7 @@
4.13 CT_ARCH_TARGET_CFLAGS="${CT_ARCH_TARGET_CFLAGS} ${CT_ARCH_FLOAT_CFLAG}"
4.14
4.15 # Now on for the target LDFLAGS
4.16 - CT_ARCH_TARGET_LDFLAGS="${CT_ARCH_ENDIAN_LDFLAG}"
4.17 + CT_ARCH_TARGET_LDFLAGS="${CT_ARCH_TARGET_LDFLAGS} ${CT_ARCH_ENDIAN_LDFLAG}"
4.18 }
4.19
4.20 # This function does pause the build until the user strikes "Return"