config/target.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Feb 17 22:08:06 2008 +0000 (2008-02-17)
changeset 431 8bde4c6ea47a
parent 413 35952da8c80b
child 447 db8bd468b0c0
permissions -rw-r--r--
Robert P. J. DAY says:

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