From ef0f400c264178ddf8d7492b397f354529b59947 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Thu, 7 Aug 2008 15:18:18 +0000 Subject: 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(-) diff --git a/config/target.in b/config/target.in index e848d30..b2f9430 100644 --- a/config/target.in +++ b/config/target.in @@ -228,4 +228,14 @@ config TARGET_CFLAGS Leave blank if you don't know better. +config TARGET_LDFLAGS + string + prompt "Target LDFLAGS" + default "" + help + Used to add specific options when linking libraries of the toolchain, + that will run on your target. + + Leave blank if you don't know better. + endmenu diff --git a/docs/overview.txt b/docs/overview.txt index 3629614..dff60c7 100644 --- a/docs/overview.txt +++ b/docs/overview.txt @@ -611,31 +611,16 @@ The "functions" file API: ${CT_ARCH} + provides: - optional - - the environment variables to configure the cross-gcc - - CT_ARCH_WITH_ARCH - - CT_ARCH_WITH_ABI - - CT_ARCH_WITH_CPU - - CT_ARCH_WITH_TUNE - - CT_ARCH_WITH_FPU - - CT_ARCH_WITH_FLOAT - - contain (defaults): - - CT_ARCH_WITH_ARCH : the gcc ./configure switch to select architecture level ( "--with-arch=${CT_ARCH_ARCH}" ) - - CT_ARCH_WITH_ABI : the gcc ./configure switch to select ABI level ( "--with-abi=${CT_ARCH_ABI}" ) - - CT_ARCH_WITH_CPU : the gcc ./configure switch to select CPU instruction set ( "--with-cpu=${CT_ARCH_CPU}" ) - - CT_ARCH_WITH_TUNE : the gcc ./configure switch to select scheduling ( "--with-tune=${CT_ARCH_TUNE}" ) - - CT_ARCH_WITH_FPU : the gcc ./configure switch to select FPU type ( "--with-fpu=${CT_ARCH_FPU}" ) - - CT_ARCH_WITH_FLOAT : the gcc ./configure switch to select floating point arithmetics ( "--with-float=soft" or /empty/ ) + - the environment variables to configure the cross-gcc (defaults) + - CT_ARCH_WITH_ARCH : the gcc ./configure switch to select architecture level ( "--with-arch=${CT_ARCH_ARCH}" ) + - CT_ARCH_WITH_ABI : the gcc ./configure switch to select ABI level ( "--with-abi=${CT_ARCH_ABI}" ) + - CT_ARCH_WITH_CPU : the gcc ./configure switch to select CPU instruction set ( "--with-cpu=${CT_ARCH_CPU}" ) + - CT_ARCH_WITH_TUNE : the gcc ./configure switch to select scheduling ( "--with-tune=${CT_ARCH_TUNE}" ) + - CT_ARCH_WITH_FPU : the gcc ./configure switch to select FPU type ( "--with-fpu=${CT_ARCH_FPU}" ) + - CT_ARCH_WITH_FLOAT : the gcc ./configure switch to select floating point arithmetics ( "--with-float=soft" or /empty/ ) + provides: - optional - - the environment variables to pass to the cross-gcc to build target binaries - - CT_ARCH_ARCH_CFLAG - - CT_ARCH_ABI_CFLAG - - CT_ARCH_CPU_CFLAG - - CT_ARCH_TUNE_CFLAG - - CT_ARCH_FPU_CFLAG - - CT_ARCH_FLOAT_CFLAG - - CT_ARCH_ENDIAN_CFLAG - - contain (defaults): + - the environment variables to pass to the cross-gcc to build target binaries (defaults) - CT_ARCH_ARCH_CFLAG : the gcc switch to select architecture level ( "-march=${CT_ARCH_ARCH}" ) - CT_ARCH_ABI_CFLAG : the gcc switch to select ABI level ( "-mabi=${CT_ARCH_ABI}" ) - CT_ARCH_CPU_CFLAG : the gcc switch to select CPU instruction set ( "-mcpu=${CT_ARCH_CPU}" ) @@ -645,6 +630,20 @@ The "functions" file API: - CT_ARCH_ENDIAN_CFLAG : the gcc switch to choose big or little endian ( "-mbig-endian" or "-mlittle-endian" ) - default to: see above. + + provides: + - optional + - the environement variables to configure the core and final compiler, specific to this architecture: + - CT_ARCH_CC_CORE_EXTRA_CONFIG : additional, architecture specific core gcc ./configure flags + - CT_ARCH_CC_EXTRA_CONFIG : additional, architecture specific final gcc ./configure flags + - default to: + - all empty + + provides: + - optional + - the architecture-specific CFLAGS and LDFLAGS: + - CT_ARCH_TARGET_CLFAGS + - CT_ARCH_TARGET_LDFLAGS + - default to: + - all empty Adding a new version of a component | ------------------------------------+ diff --git a/scripts/crosstool.sh b/scripts/crosstool.sh index dcbbfd9..681b204 100755 --- a/scripts/crosstool.sh +++ b/scripts/crosstool.sh @@ -71,6 +71,8 @@ CT_DoBuildTargetTuple # Put user-supplied flags at the end, so that they take precedence. CT_TARGET_CFLAGS="${CT_ARCH_TARGET_CFLAGS} ${CT_TARGET_CFLAGS}" CT_TARGET_LDFLAGS="${CT_ARCH_TARGET_LDFLAGS} ${CT_TARGET_LDFLAGS}" +CT_CC_CORE_EXTRA_CONFIG="${CT_ARCH_CC_CORE_EXTRA_CONFIG} ${CT_CC_CORE_EXTRA_CONFIG}" +CT_CC_EXTRA_CONFIG="${CT_ARCH_CC_EXTRA_CONFIG} ${CT_CC_EXTRA_CONFIG}" # Now, build up the variables from the user-configured options. CT_KERNEL_FILE="${CT_KERNEL}-${CT_KERNEL_VERSION}" diff --git a/scripts/functions b/scripts/functions index a494f62..da039ab 100644 --- a/scripts/functions +++ b/scripts/functions @@ -703,7 +703,7 @@ CT_DoBuildTargetTuple() { CT_TARGET=$(CT_DoConfigSub "${CT_TARGET_ARCH}-${CT_TARGET_VENDOR:-unknown}-${CT_TARGET_KERNEL}-${CT_TARGET_SYS}") # Prepare the target CFLAGS - CT_ARCH_TARGET_CFLAGS="${CT_ARCH_ENDIAN_CFLAG}" + CT_ARCH_TARGET_CFLAGS="${CT_ARCH_TARGET_CFLAGS} ${CT_ARCH_ENDIAN_CFLAG}" CT_ARCH_TARGET_CFLAGS="${CT_ARCH_TARGET_CFLAGS} ${CT_ARCH_ARCH_CFLAG}" CT_ARCH_TARGET_CFLAGS="${CT_ARCH_TARGET_CFLAGS} ${CT_ARCH_ABI_CFLAG}" CT_ARCH_TARGET_CFLAGS="${CT_ARCH_TARGET_CFLAGS} ${CT_ARCH_CPU_CFLAG}" @@ -712,7 +712,7 @@ CT_DoBuildTargetTuple() { CT_ARCH_TARGET_CFLAGS="${CT_ARCH_TARGET_CFLAGS} ${CT_ARCH_FLOAT_CFLAG}" # Now on for the target LDFLAGS - CT_ARCH_TARGET_LDFLAGS="${CT_ARCH_ENDIAN_LDFLAG}" + CT_ARCH_TARGET_LDFLAGS="${CT_ARCH_TARGET_LDFLAGS} ${CT_ARCH_ENDIAN_LDFLAG}" } # This function does pause the build until the user strikes "Return" -- cgit v0.10.2-6-g49f6