arch: allow adding a suffix to the arch-part of a tuple
authorwilly tarreau <w@1wt.eu>
Sun Jan 20 12:58:22 2013 +0000 (2013-01-20)
changeset 31699d0b37f08a10
parent 3168 9b991363c01c
child 3170 67df47c6ccd0
arch: allow adding a suffix to the arch-part of a tuple

For some architectures, it is legit to have an alternate value in the
'architecture' part of the tuple. For example:
armv5te-*
armv7a8-*

Besides, some packages expect the tuple to reflect the arch variant
(eg. openMPI) to detect the variant's capabilities (eg. atomic
primitives).

This patch adds an option for the user to specify a suffix to be added
to the arch-part of the tuple.

Signed-off-by: Willy Tarreau <w@1wt.eu>
Message-ID: <20130120225822.GS6838@1wt.eu>
Patch-Id: 213994
[yann.morin.1998@free.fr: make it a suffix, not an override]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
config/target.in
scripts/build/arch/alpha.sh
scripts/build/arch/arm.sh
scripts/build/arch/avr32.sh
scripts/build/arch/blackfin.sh
scripts/build/arch/microblaze.sh
scripts/build/arch/mips.sh
scripts/build/arch/powerpc.sh
scripts/build/arch/s390.sh
scripts/build/arch/sh.sh
scripts/build/arch/sparc.sh
scripts/build/arch/x86.sh
scripts/functions
     1.1 --- a/config/target.in	Tue Jan 22 00:32:38 2013 +0100
     1.2 +++ b/config/target.in	Sun Jan 20 12:58:22 2013 +0000
     1.3 @@ -41,6 +41,21 @@
     1.4  
     1.5  source "config.gen/arch.in"
     1.6  
     1.7 +config ARCH_SUFFIX
     1.8 +    string
     1.9 +    prompt "Suffix to the arch-part"
    1.10 +    help
    1.11 +      Some architectures have multiple variants and being able to specify
    1.12 +      the variant instead of the arch is quite convenient. This is commonly
    1.13 +      seen for instance when "armv5tel-" is used as a prefix instead of the
    1.14 +      more generic "arm-", or with "alphaev6-" instead of "alpha-".
    1.15 +      
    1.16 +      Whatever you enter here will be appended to the architecture-part of the
    1.17 +      tuple, just before the first '-'. It will override any architecture-
    1.18 +      specific suffix that crosstool-NG may compute.
    1.19 +      
    1.20 +      If you are not sure about what this is, leave it blank.
    1.21 +
    1.22  #--------------------------------------
    1.23  comment "Generic target options"
    1.24  
     2.1 --- a/scripts/build/arch/alpha.sh	Tue Jan 22 00:32:38 2013 +0100
     2.2 +++ b/scripts/build/arch/alpha.sh	Sun Jan 20 12:58:22 2013 +0000
     2.3 @@ -2,5 +2,5 @@
     2.4  
     2.5  CT_DoArchTupleValues () {
     2.6      # The architecture part of the tuple:
     2.7 -    CT_TARGET_ARCH="${CT_ARCH}${CT_ARCH_ALPHA_VARIANT}"
     2.8 +    CT_TARGET_ARCH="${CT_ARCH}${CT_ARCH_SUFFIX:-${CT_ARCH_ALPHA_VARIANT}}"
     2.9  }
     3.1 --- a/scripts/build/arch/arm.sh	Tue Jan 22 00:32:38 2013 +0100
     3.2 +++ b/scripts/build/arch/arm.sh	Sun Jan 20 12:58:22 2013 +0000
     3.3 @@ -2,7 +2,7 @@
     3.4  
     3.5  CT_DoArchTupleValues() {
     3.6      # The architecture part of the tuple:
     3.7 -    CT_TARGET_ARCH="${CT_ARCH}${target_endian_eb}"
     3.8 +    CT_TARGET_ARCH="${CT_ARCH}${CT_ARCH_SUFFIX:-${target_endian_eb}}"
     3.9  
    3.10      # The system part of the tuple:
    3.11      case "${CT_LIBC},${CT_ARCH_ARM_EABI}" in
     4.1 --- a/scripts/build/arch/avr32.sh	Tue Jan 22 00:32:38 2013 +0100
     4.2 +++ b/scripts/build/arch/avr32.sh	Sun Jan 20 12:58:22 2013 +0000
     4.3 @@ -1,9 +1,6 @@
     4.4  # Compute AVR32-specific values
     4.5  
     4.6  CT_DoArchTupleValues() {
     4.7 -    # The architecture part of the tuple:
     4.8 -    CT_TARGET_ARCH="${CT_ARCH}"
     4.9 -
    4.10      # gcc ./configure flags
    4.11      CT_ARCH_WITH_ARCH=
    4.12      CT_ARCH_WITH_ABI=
     5.1 --- a/scripts/build/arch/blackfin.sh	Tue Jan 22 00:32:38 2013 +0100
     5.2 +++ b/scripts/build/arch/blackfin.sh	Sun Jan 20 12:58:22 2013 +0000
     5.3 @@ -2,7 +2,7 @@
     5.4  
     5.5  CT_DoArchTupleValues() {
     5.6      # The architecture part of the tuple:
     5.7 -    CT_TARGET_ARCH="bfin"
     5.8 +    CT_TARGET_ARCH="bfin${CT_ARCH_SUFFIX}"
     5.9  
    5.10      # gcc ./configure flags
    5.11      CT_ARCH_WITH_ARCH=
     6.1 --- a/scripts/build/arch/microblaze.sh	Tue Jan 22 00:32:38 2013 +0100
     6.2 +++ b/scripts/build/arch/microblaze.sh	Sun Jan 20 12:58:22 2013 +0000
     6.3 @@ -2,7 +2,7 @@
     6.4  
     6.5  CT_DoArchTupleValues () {
     6.6      # The architecture part of the tuple:
     6.7 -    CT_TARGET_ARCH="${CT_ARCH}${target_endian_el}"
     6.8 +    CT_TARGET_ARCH="${CT_ARCH}${CT_ARCH_SUFFIX:-${target_endian_el}}"
     6.9  
    6.10      # gcc ./configure flags
    6.11      CT_ARCH_WITH_ARCH=
     7.1 --- a/scripts/build/arch/mips.sh	Tue Jan 22 00:32:38 2013 +0100
     7.2 +++ b/scripts/build/arch/mips.sh	Sun Jan 20 12:58:22 2013 +0000
     7.3 @@ -1,13 +1,13 @@
     7.4  # Compute MIPS-specific values
     7.5  
     7.6  CT_DoArchTupleValues() {
     7.7 -    # The architecture part of the tuple, override only for 64-bit
     7.8 +    local _64
     7.9 +
    7.10 +    # The architecture part of the tuple
    7.11      if [ "${CT_ARCH_64}" = "y" ]; then
    7.12 -        CT_TARGET_ARCH="mips64${target_endian_el}"
    7.13 -    else
    7.14 -        # The architecture part of the tuple:
    7.15 -        CT_TARGET_ARCH="${CT_ARCH}${target_endian_el}"
    7.16 +        _64="64"
    7.17      fi
    7.18 +    CT_TARGET_ARCH="${CT_ARCH}${_64}${CT_ARCH_SUFFIX:-${target_endian_el}}"
    7.19  
    7.20      # Override CFLAGS for endianness:
    7.21      case "${CT_ARCH_ENDIAN}" in
     8.1 --- a/scripts/build/arch/powerpc.sh	Tue Jan 22 00:32:38 2013 +0100
     8.2 +++ b/scripts/build/arch/powerpc.sh	Sun Jan 20 12:58:22 2013 +0000
     8.3 @@ -3,7 +3,7 @@
     8.4  CT_DoArchTupleValues () {
     8.5      # The architecture part of the tuple, override only for 64-bit
     8.6      if [ "${CT_ARCH_64}" = "y" ]; then
     8.7 -        CT_TARGET_ARCH="powerpc64"
     8.8 +        CT_TARGET_ARCH="powerpc64${CT_ARCH_SUFFIX}"
     8.9      fi
    8.10  
    8.11      # Only override values when ABI is not the default
     9.1 --- a/scripts/build/arch/s390.sh	Tue Jan 22 00:32:38 2013 +0100
     9.2 +++ b/scripts/build/arch/s390.sh	Sun Jan 20 12:58:22 2013 +0000
     9.3 @@ -3,6 +3,6 @@
     9.4  CT_DoArchTupleValues() {
     9.5      # That's the only thing to override
     9.6      if [ "${CT_ARCH_64}" = "y" ]; then
     9.7 -        CT_TARGET_ARCH="s390x"
     9.8 +        CT_TARGET_ARCH="s390x${CT_ARCH_SUFFIX}"
     9.9      fi
    9.10  }
    10.1 --- a/scripts/build/arch/sh.sh	Tue Jan 22 00:32:38 2013 +0100
    10.2 +++ b/scripts/build/arch/sh.sh	Sun Jan 20 12:58:22 2013 +0000
    10.3 @@ -2,7 +2,7 @@
    10.4  
    10.5  CT_DoArchTupleValues () {
    10.6      # The architecture part of the tuple:
    10.7 -    CT_TARGET_ARCH="${CT_ARCH_SH_VARIANT}${target_endian_eb}"
    10.8 +    CT_TARGET_ARCH="${CT_ARCH_SH_VARIANT}${CT_ARCH_SUFFIX:-${target_endian_eb}}"
    10.9  
   10.10      # gcc ./configure flags
   10.11      CT_ARCH_WITH_ARCH=
    11.1 --- a/scripts/build/arch/sparc.sh	Tue Jan 22 00:32:38 2013 +0100
    11.2 +++ b/scripts/build/arch/sparc.sh	Sun Jan 20 12:58:22 2013 +0000
    11.3 @@ -2,7 +2,7 @@
    11.4  CT_DoArchTupleValues() {
    11.5      # That's the only thing to override
    11.6      if [ "${CT_ARCH_64}" = "y" ]; then
    11.7 -        CT_TARGET_ARCH="${CT_ARCH}64"
    11.8 +        CT_TARGET_ARCH="sparc64${CT_ARCH_SUFFIX}"
    11.9      fi
   11.10  
   11.11  }
    12.1 --- a/scripts/build/arch/x86.sh	Tue Jan 22 00:32:38 2013 +0100
    12.2 +++ b/scripts/build/arch/x86.sh	Sun Jan 20 12:58:22 2013 +0000
    12.3 @@ -3,7 +3,6 @@
    12.4  # This one really needs a little love! :-(
    12.5  
    12.6  CT_DoArchTupleValues() {
    12.7 -
    12.8      # Override the architecture part of the tuple:
    12.9      if [ "${CT_ARCH_64}" = "y" ]; then
   12.10          CT_TARGET_ARCH=x86_64
   12.11 @@ -20,4 +19,5 @@
   12.12              *)                            CT_TARGET_ARCH=i586;;
   12.13          esac
   12.14      fi
   12.15 +    CT_TARGET_ARCH="${CT_TARGET_ARCH}${CT_ARCH_SUFFIX}"
   12.16  }
    13.1 --- a/scripts/functions	Tue Jan 22 00:32:38 2013 +0100
    13.2 +++ b/scripts/functions	Sun Jan 20 12:58:22 2013 +0000
    13.3 @@ -1121,7 +1121,7 @@
    13.4      esac
    13.5  
    13.6      # Build the default architecture tuple part
    13.7 -    CT_TARGET_ARCH="${CT_ARCH}"
    13.8 +    CT_TARGET_ARCH="${CT_ARCH}${CT_ARCH_SUFFIX}"
    13.9  
   13.10      # Set defaults for the system part of the tuple. Can be overriden
   13.11      # by architecture-specific values.