Introduce four new ARCH specific variables that CT_DoArchValues can set if they want:
author"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Thu Aug 07 15:18:18 2008 +0000 (2008-08-07)
changeset 767fe5e42bf7bbc
parent 766 717efd8b78b4
child 768 a8b30e2dd8fc
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(-)
config/target.in
docs/overview.txt
scripts/crosstool.sh
scripts/functions
     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"