config/target.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Thu Aug 07 15:18:18 2008 +0000 (2008-08-07)
changeset 767 fe5e42bf7bbc
parent 633 9193aa9460db
child 791 78b6d5e1213d
permissions -rw-r--r--
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(-)
yann@1
     1
# Target definition: architecture, optimisations, etc...
yann@1
     2
yann@1
     3
menu "Target options"
yann@1
     4
yann@47
     5
config ARCH
yann@47
     6
    string
yann@628
     7
yann@628
     8
# Pre-declare target optimisation variables
yann@631
     9
config ARCH_SUPPORT_ARCH
yann@631
    10
config ARCH_SUPPORT_ABI
yann@631
    11
config ARCH_SUPPORT_CPU
yann@631
    12
config ARCH_SUPPORT_TUNE
yann@631
    13
config ARCH_SUPPORT_FPU
yann@628
    14
config ARCH_SUPPORTS_BOTH_ENDIAN
yann@628
    15
config ARCH_DEFAULT_BE
yann@628
    16
config ARCH_DEFAULT_LE
yann@633
    17
config ARCH_ARCH
yann@633
    18
config ARCH_ABI
yann@633
    19
config ARCH_CPU
yann@633
    20
config ARCH_TUNE
yann@633
    21
config ARCH_FPU
yann@633
    22
config ARCH_BE
yann@633
    23
config ARCH_LE
yann@628
    24
config ARCH_FLOAT_HW
yann@628
    25
config ARCH_FLOAT_SW
yann@628
    26
config TARGET_CFLAGS
yann@628
    27
yann@628
    28
comment "General target options"
yann@47
    29
yann@1
    30
choice
yann@1
    31
    bool
yann@1
    32
    prompt "Target architecture:"
yann@1
    33
yann@628
    34
source config.gen/arch.in
yann@1
    35
yann@1
    36
endchoice
yann@1
    37
yann@136
    38
config ARCH_SUPPORTS_BOTH_ENDIAN
yann@35
    39
    bool
yann@35
    40
    default n
yann@35
    41
yann@347
    42
config ARCH_DEFAULT_BE
yann@347
    43
    bool
yann@347
    44
    default n
yann@347
    45
yann@347
    46
config ARCH_DEFAULT_LE
yann@347
    47
    bool
yann@347
    48
    default n
yann@347
    49
yann@1
    50
choice
yann@1
    51
    bool
yann@1
    52
    prompt "Endianness:"
yann@136
    53
    depends on ARCH_SUPPORTS_BOTH_ENDIAN
yann@347
    54
    default ARCH_BE if ARCH_DEFAULT_BE
yann@347
    55
    default ARCH_LE if ARCH_DEFAULT_LE
yann@1
    56
yann@1
    57
config ARCH_BE
yann@1
    58
    bool
yann@1
    59
    prompt "Big endian"
yann@1
    60
yann@1
    61
config ARCH_LE
yann@1
    62
    bool
yann@1
    63
    prompt "Little endian"
yann@1
    64
yann@1
    65
endchoice
yann@1
    66
yann@1
    67
comment "Target optimisations"
yann@1
    68
yann@631
    69
config ARCH_SUPPORT_ARCH
yann@631
    70
    bool
yann@631
    71
    default n
yann@631
    72
yann@631
    73
config ARCH_SUPPORT_ABI
yann@631
    74
    bool
yann@631
    75
    default n
yann@631
    76
yann@631
    77
config ARCH_SUPPORT_CPU
yann@631
    78
    bool
yann@631
    79
    default n
yann@631
    80
yann@631
    81
config ARCH_SUPPORT_TUNE
yann@631
    82
    bool
yann@631
    83
    default n
yann@631
    84
yann@631
    85
config ARCH_SUPPORT_FPU
yann@631
    86
    bool
yann@631
    87
    default n
yann@631
    88
yann@47
    89
config ARCH_ARCH
yann@47
    90
    string
yann@425
    91
    prompt "Architecture level"
yann@631
    92
    depends on ARCH_SUPPORT_ARCH
yann@47
    93
    default ""
yann@47
    94
    help
yann@47
    95
      GCC uses this name to determine what kind of instructions it can emit
yann@47
    96
      when generating assembly code. This option can be used in conjunction
yann@47
    97
      with or instead of the ARCH_CPU option (above), or a (command-line)
yann@47
    98
      -mcpu= option.
yann@47
    99
      
yann@47
   100
      This is the configuration flag --with-arch=XXXX, and the runtime flag
yann@47
   101
      -march=XXX.
yann@47
   102
      
yann@47
   103
      Pick a value from the gcc manual for your choosen gcc version and your
yann@47
   104
      target CPU.
yann@47
   105
      
yann@47
   106
      Leave blank if you don't know, or if your target architecture does not
yann@47
   107
      offer this option.
yann@47
   108
yann@45
   109
config ARCH_ABI
yann@45
   110
    string
yann@45
   111
    prompt "Generate code for the specific ABI"
yann@631
   112
    depends on ARCH_SUPPORT_ABI
yann@45
   113
    default ""
yann@45
   114
    help
yann@45
   115
      Generate code for the given ABI.
yann@45
   116
yann@47
   117
      This is the configuration flag --with-abi=XXXX, and the runtime flag
yann@47
   118
      -mabi=XXX.
yann@47
   119
yann@45
   120
      Pick a value from the gcc manual for your choosen gcc version and your
yann@45
   121
      target CPU.
yann@45
   122
yann@45
   123
      Leave blank if you don't know, or if your target architecutre does not
yann@45
   124
      offer this option.
yann@45
   125
yann@1
   126
config ARCH_CPU
yann@1
   127
    string
yann@1
   128
    prompt "Emit assembly for CPU"
yann@631
   129
    depends on ARCH_SUPPORT_CPU
yann@1
   130
    default ""
yann@1
   131
    help
yann@283
   132
      This specifies the name of the target processor. GCC uses this name
yann@1
   133
      to determine what kind of instructions it can emit when generating
yann@1
   134
      assembly code.
yann@1
   135
      
yann@47
   136
      This is the configuration flag --with-cpu=XXXX, and the runtime flag
yann@47
   137
      -mcpu=XXX.
yann@47
   138
yann@1
   139
      Pick a value from the gcc manual for your choosen gcc version and your
yann@1
   140
      target CPU.
yann@1
   141
      
yann@1
   142
      Leave blank if you don't know, or if your target architecture does not
yann@1
   143
      offer this option.
yann@1
   144
yann@1
   145
config ARCH_TUNE
yann@1
   146
    string
yann@1
   147
    prompt "Tune for CPU"
yann@631
   148
    depends on ARCH_SUPPORT_TUNE
yann@1
   149
    default ""
yann@1
   150
    help
yann@1
   151
      This option is very similar to the ARCH_CPU option (above), except
yann@1
   152
      that instead of specifying the actual target processor type, and hence
yann@1
   153
      restricting which instructions can be used, it specifies that GCC should
yann@1
   154
      tune the performance of the code as if the target were of the type
yann@1
   155
      specified in this option, but still choosing the instructions that it
yann@1
   156
      will generate based on the cpu specified by the ARCH_CPU option
yann@1
   157
      (above), or a (command-line) -mcpu= option.
yann@1
   158
      
yann@47
   159
      This is the configuration flag --with-tune=XXXX, and the runtime flag
yann@47
   160
      -mtune=XXX.
yann@1
   161
      
yann@1
   162
      Pick a value from the gcc manual for your choosen gcc version and your
yann@1
   163
      target CPU.
yann@1
   164
      
yann@1
   165
      Leave blank if you don't know, or if your target architecture does not
yann@1
   166
      offer this option.
yann@1
   167
yann@1
   168
config ARCH_FPU
yann@1
   169
    string
yann@47
   170
    prompt "Use specific FPU"
yann@631
   171
    depends on ARCH_SUPPORT_FPU
yann@1
   172
    default ""
yann@1
   173
    help
yann@1
   174
      On some targets (eg. ARM), you can specify the kind of FPU to emit
yann@1
   175
      code for.
yann@47
   176
yann@47
   177
      This is the configuration flag --with-fpu=XXX, and the runtime flag
yann@47
   178
      -mfpu=XXX.
yann@1
   179
      
yann@1
   180
      See below wether to actually emit FP opcodes, or to emulate them.
yann@1
   181
      
yann@1
   182
      Pick a value from the gcc manual for your choosen gcc version and your
yann@1
   183
      target CPU.
yann@1
   184
      
yann@1
   185
      Leave blank if you don't know, or if your target architecture does not
yann@1
   186
      offer this option.
yann@1
   187
yann@1
   188
choice
yann@1
   189
    bool
yann@1
   190
    prompt "Floating point:"
yann@1
   191
yann@1
   192
config ARCH_FLOAT_HW
yann@1
   193
    bool
yann@1
   194
    prompt "hardware (FPU)"
yann@1
   195
    help
yann@1
   196
      Emit hardware floating point opcodes.
yann@1
   197
      
yann@1
   198
      If you've got a processor with a FPU, then you want that.
yann@1
   199
      If your hardware has no FPU, you still can use HW floating point, but
yann@1
   200
      need to compile support for FPU emulation in your kernel. Needless to
yann@1
   201
      say that emulating the FPU is /slooowwwww/...
yann@1
   202
      
yann@1
   203
      One situation you'd want HW floating point without a FPU is if you get
yann@1
   204
      binary blobs from different vendors that are compiling this way and
yann@1
   205
      can't (don't wan't to) change.
yann@1
   206
yann@1
   207
config ARCH_FLOAT_SW
yann@1
   208
    bool
yann@1
   209
    prompt "software"
yann@1
   210
    help
yann@1
   211
      Do not emit any hardware floating point opcode.
yann@1
   212
      
yann@1
   213
      If your processor has no FPU, then you most probably want this, as it
yann@1
   214
      is faster than emulating the FPU in the kernel.
yann@1
   215
yann@1
   216
endchoice
yann@1
   217
yann@1
   218
config TARGET_CFLAGS
yann@1
   219
    string
yann@41
   220
    prompt "Target CFLAGS"
yann@1
   221
    default ""
yann@1
   222
    help
yann@1
   223
      Used to add specific options when compiling libraries of the toolchain,
yann@1
   224
      that will run on the target (eg. libc.so).
yann@1
   225
      
yann@531
   226
      Note that the options above for ARCH, ABI, CPU, TUNE and FPU will be
yann@1
   227
      automaticaly used. You don't need to specify them here.
yann@1
   228
      
yann@1
   229
      Leave blank if you don't know better.
yann@1
   230
yann@767
   231
config TARGET_LDFLAGS
yann@767
   232
    string
yann@767
   233
    prompt "Target LDFLAGS"
yann@767
   234
    default ""
yann@767
   235
    help
yann@767
   236
      Used to add specific options when linking libraries of the toolchain,
yann@767
   237
      that will run on your target.
yann@767
   238
      
yann@767
   239
      Leave blank if you don't know better.
yann@767
   240
yann@1
   241
endmenu