config/target.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun May 27 20:22:06 2007 +0000 (2007-05-27)
changeset 136 22b5ef41df97
parent 117 80c4338ec0a0
child 138 dc4ce917245f
permissions -rw-r--r--
Merge the NPTL stuff.
That still leaves the linuxthreads stuff broken, but it was just before. I don't care anyway. Time to fix that later...
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@47
    10
    default "mips"    if ARCH_MIPS
yann@47
    11
    default "x86"     if ARCH_x86
yann@47
    12
    default "x86_64"  if ARCH_x86_64
yann@47
    13
yann@1
    14
choice
yann@1
    15
    bool
yann@1
    16
    prompt "Target architecture:"
yann@1
    17
    default ARCH_x86
yann@1
    18
yann@1
    19
config ARCH_ARM
yann@1
    20
    bool
yann@1
    21
    prompt "arm"
yann@136
    22
    select ARCH_SUPPORTS_BOTH_ENDIAN
yann@117
    23
    select ARCH_SUPPORTS_LIBFLOAT
yann@1
    24
yann@1
    25
config ARCH_MIPS
yann@1
    26
    bool
yann@1
    27
    prompt "mips"
yann@136
    28
    select ARCH_SUPPORTS_BOTH_ENDIAN
yann@1
    29
yann@1
    30
config ARCH_x86
yann@1
    31
    bool
yann@1
    32
    prompt "x86"
yann@117
    33
    select ARCH_SUPPORTS_LIBFLOAT
yann@1
    34
yann@1
    35
config ARCH_x86_64
yann@1
    36
    bool
yann@1
    37
    prompt "x86_64"
yann@1
    38
yann@1
    39
endchoice
yann@1
    40
yann@136
    41
config ARCH_SUPPORTS_BOTH_ENDIAN
yann@35
    42
    bool
yann@35
    43
    default n
yann@35
    44
yann@1
    45
choice
yann@1
    46
    bool
yann@1
    47
    prompt "Endianness:"
yann@136
    48
    depends on ARCH_SUPPORTS_BOTH_ENDIAN
yann@1
    49
yann@1
    50
config ARCH_BE
yann@1
    51
    bool
yann@1
    52
    prompt "Big endian"
yann@1
    53
yann@1
    54
config ARCH_LE
yann@1
    55
    bool
yann@1
    56
    prompt "Little endian"
yann@1
    57
yann@1
    58
endchoice
yann@1
    59
yann@136
    60
choice
yann@136
    61
    bool
yann@136
    62
    prompt "Threading implentation to use:"
yann@136
    63
    default THREADS_NPTL           if LIBC_SUPPORT_NPTL
yann@136
    64
    default THREADS_LINUXTHREADS   if LIBC_SUPPORT_LINUXTHREADS && ! LIBC_SUPPORT_NPTL
yann@136
    65
    default THREADS_NONE           if ! LIBC_SUPPORT_LINUXTHREADS && ! LIBC_SUPPORT_NPTL
yann@136
    66
yann@136
    67
config THREADS_NPTL
yann@136
    68
    bool
yann@136
    69
    prompt "nptl (EXPERIMENTAL)"
yann@136
    70
    depends on LIBC_SUPPORT_NPTL
yann@136
    71
    depends on EXPERIMENTAL
yann@136
    72
yann@136
    73
config THREADS_LINUXTHREADS
yann@136
    74
    bool
yann@136
    75
    prompt "linuxthreads"
yann@136
    76
    depends on LIBC_SUPPORT_LINUXTHREADS
yann@136
    77
yann@136
    78
config THREADS_NONE
yann@136
    79
    bool
yann@136
    80
    prompt "none"
yann@136
    81
yann@136
    82
endchoice
yann@136
    83
yann@136
    84
config THREADS
yann@136
    85
    string
yann@136
    86
    default "nptl"          if THREADS_NPTL
yann@136
    87
    default "linuxthreads"  if THREADS_LINUXTHREADS
yann@136
    88
    default "none"          if THREADS_NONE
yann@136
    89
yann@1
    90
comment "Target optimisations"
yann@1
    91
yann@47
    92
config ARCH_ARCH
yann@47
    93
    string
yann@47
    94
    prompt "Achitecture level"
yann@47
    95
    default ""
yann@47
    96
    help
yann@47
    97
      GCC uses this name to determine what kind of instructions it can emit
yann@47
    98
      when generating assembly code. This option can be used in conjunction
yann@47
    99
      with or instead of the ARCH_CPU option (above), or a (command-line)
yann@47
   100
      -mcpu= option.
yann@47
   101
      
yann@47
   102
      This is the configuration flag --with-arch=XXXX, and the runtime flag
yann@47
   103
      -march=XXX.
yann@47
   104
      
yann@47
   105
      Pick a value from the gcc manual for your choosen gcc version and your
yann@47
   106
      target CPU.
yann@47
   107
      
yann@47
   108
      Leave blank if you don't know, or if your target architecture does not
yann@47
   109
      offer this option.
yann@47
   110
yann@45
   111
config ARCH_ABI
yann@45
   112
    string
yann@45
   113
    prompt "Generate code for the specific ABI"
yann@45
   114
    default ""
yann@45
   115
    help
yann@45
   116
      Generate code for the given ABI.
yann@45
   117
yann@47
   118
      This is the configuration flag --with-abi=XXXX, and the runtime flag
yann@47
   119
      -mabi=XXX.
yann@47
   120
yann@45
   121
      Pick a value from the gcc manual for your choosen gcc version and your
yann@45
   122
      target CPU.
yann@45
   123
yann@45
   124
      Leave blank if you don't know, or if your target architecutre does not
yann@45
   125
      offer this option.
yann@45
   126
yann@1
   127
config ARCH_CPU
yann@1
   128
    string
yann@1
   129
    prompt "Emit assembly for CPU"
yann@1
   130
    default ""
yann@1
   131
    help
yann@1
   132
      This specifies the name of the target ARM 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@1
   148
    default ""
yann@1
   149
    help
yann@1
   150
      This option is very similar to the ARCH_CPU option (above), except
yann@1
   151
      that instead of specifying the actual target processor type, and hence
yann@1
   152
      restricting which instructions can be used, it specifies that GCC should
yann@1
   153
      tune the performance of the code as if the target were of the type
yann@1
   154
      specified in this option, but still choosing the instructions that it
yann@1
   155
      will generate based on the cpu specified by the ARCH_CPU option
yann@1
   156
      (above), or a (command-line) -mcpu= option.
yann@1
   157
      
yann@47
   158
      This is the configuration flag --with-tune=XXXX, and the runtime flag
yann@47
   159
      -mtune=XXX.
yann@1
   160
      
yann@1
   161
      Pick a value from the gcc manual for your choosen gcc version and your
yann@1
   162
      target CPU.
yann@1
   163
      
yann@1
   164
      Leave blank if you don't know, or if your target architecture does not
yann@1
   165
      offer this option.
yann@1
   166
yann@1
   167
config ARCH_FPU
yann@1
   168
    string
yann@47
   169
    prompt "Use specific FPU"
yann@1
   170
    default ""
yann@1
   171
    help
yann@1
   172
      On some targets (eg. ARM), you can specify the kind of FPU to emit
yann@1
   173
      code for.
yann@47
   174
yann@47
   175
      This is the configuration flag --with-fpu=XXX, and the runtime flag
yann@47
   176
      -mfpu=XXX.
yann@1
   177
      
yann@1
   178
      See below wether to actually emit FP opcodes, or to emulate them.
yann@1
   179
      
yann@1
   180
      Pick a value from the gcc manual for your choosen gcc version and your
yann@1
   181
      target CPU.
yann@1
   182
      
yann@1
   183
      Leave blank if you don't know, or if your target architecture does not
yann@1
   184
      offer this option.
yann@1
   185
yann@1
   186
choice
yann@1
   187
    bool
yann@1
   188
    prompt "Floating point:"
yann@1
   189
yann@1
   190
config ARCH_FLOAT_HW
yann@1
   191
    bool
yann@1
   192
    prompt "hardware (FPU)"
yann@1
   193
    help
yann@1
   194
      Emit hardware floating point opcodes.
yann@1
   195
      
yann@1
   196
      If you've got a processor with a FPU, then you want that.
yann@1
   197
      If your hardware has no FPU, you still can use HW floating point, but
yann@1
   198
      need to compile support for FPU emulation in your kernel. Needless to
yann@1
   199
      say that emulating the FPU is /slooowwwww/...
yann@1
   200
      
yann@1
   201
      One situation you'd want HW floating point without a FPU is if you get
yann@1
   202
      binary blobs from different vendors that are compiling this way and
yann@1
   203
      can't (don't wan't to) change.
yann@1
   204
yann@1
   205
config ARCH_FLOAT_SW
yann@1
   206
    bool
yann@1
   207
    prompt "software"
yann@1
   208
    help
yann@1
   209
      Do not emit any hardware floating point opcode.
yann@1
   210
      
yann@1
   211
      If your processor has no FPU, then you most probably want this, as it
yann@1
   212
      is faster than emulating the FPU in the kernel.
yann@1
   213
yann@1
   214
endchoice
yann@1
   215
yann@117
   216
config ARCH_SUPPORTS_LIBFLOAT
yann@117
   217
    bool
yann@117
   218
    default n
yann@117
   219
yann@1
   220
config ARCH_FLOAT_SW_LIBFLOAT
yann@1
   221
    bool
yann@1
   222
    prompt "Use libfloat"
yann@1
   223
    default n
yann@117
   224
    depends on ARCH_FLOAT_SW && ARCH_SUPPORTS_LIBFLOAT
yann@1
   225
    help
yann@1
   226
      For those targets upporting it, you can use libfloat for the software
yann@1
   227
      floating point emulation.
yann@1
   228
      
yann@1
   229
      Note that some versions of gcc have support code that supersedes libfloat,
yann@1
   230
      while others don't. Known version of gcc that don't have support code are
yann@1
   231
      versions prior to 3.0, and version above 4.0.
yann@1
   232
      
yann@1
   233
      You should check gcc before deciding to use libfloat.
yann@1
   234
yann@108
   235
config LIBFLOAT_VERSION
yann@108
   236
    string
yann@108
   237
    default "990616.orig"
yann@108
   238
    depends on ARCH_FLOAT_SW_LIBFLOAT
yann@108
   239
yann@1
   240
config TARGET_CFLAGS
yann@1
   241
    string
yann@41
   242
    prompt "Target CFLAGS"
yann@1
   243
    default ""
yann@1
   244
    help
yann@1
   245
      Used to add specific options when compiling libraries of the toolchain,
yann@1
   246
      that will run on the target (eg. libc.so).
yann@1
   247
      
yann@1
   248
      Note that the options above for CPU, tune, arch and FPU will be
yann@1
   249
      automaticaly used. You don't need to specify them here.
yann@1
   250
      
yann@1
   251
      Leave blank if you don't know better.
yann@1
   252
yann@1
   253
endmenu