config/target.in
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Thu Jan 10 00:27:13 2013 +0100 (2013-01-10)
changeset 3159 fb71cad4b085
parent 3140 d9e78e89b3f6
child 3169 9d0b37f08a10
permissions -rw-r--r--
arch/arm: OABI is no more, switch to only EABI

Well, leave the prompt as an OBSOLETE thing, scheduled to
be removed soon.

As an indication OABI lives its last days, gcc-4.8 will no
longer recognise non-EABI targets.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
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@1345
     9
config ARCH_SUPPORTS_BOTH_MMU
yann@1345
    10
config ARCH_SUPPORTS_BOTH_ENDIAN
yann@1633
    11
config ARCH_SUPPORTS_32
yann@1633
    12
config ARCH_SUPPORTS_64
yann@2788
    13
config ARCH_SUPPORTS_WITH_ARCH
yann@2788
    14
config ARCH_SUPPORTS_WITH_ABI
yann@2788
    15
config ARCH_SUPPORTS_WITH_CPU
yann@2788
    16
config ARCH_SUPPORTS_WITH_TUNE
yann@2789
    17
config ARCH_SUPPORTS_WITH_FLOAT
yann@2788
    18
config ARCH_SUPPORTS_WITH_FPU
yann@2788
    19
config ARCH_SUPPORTS_SOFTFP
yann@1345
    20
yann@1345
    21
config ARCH_DEFAULT_HAS_MMU
yann@628
    22
config ARCH_DEFAULT_BE
yann@628
    23
config ARCH_DEFAULT_LE
yann@1633
    24
config ARCH_DEFAULT_32
yann@1633
    25
config ARCH_DEFAULT_64
yann@1345
    26
yann@633
    27
config ARCH_ARCH
yann@633
    28
config ARCH_ABI
yann@633
    29
config ARCH_CPU
yann@633
    30
config ARCH_TUNE
yann@633
    31
config ARCH_FPU
yann@633
    32
config ARCH_BE
yann@633
    33
config ARCH_LE
yann@1638
    34
config ARCH_32
yann@1638
    35
config ARCH_64
yann@1715
    36
config ARCH_BITNESS
yann@628
    37
config ARCH_FLOAT_HW
yann@628
    38
config ARCH_FLOAT_SW
yann@628
    39
config TARGET_CFLAGS
yann@791
    40
config TARGET_LDFLAGS
yann@628
    41
yann@1870
    42
source "config.gen/arch.in"
yann@1
    43
yann@1345
    44
#--------------------------------------
yann@2413
    45
comment "Generic target options"
yann@2413
    46
yann@2815
    47
#--------------------------------------
yann@2815
    48
config MULTILIB
yann@2815
    49
    bool
yann@3150
    50
    prompt "Build a multilib toolchain (READ HELP!!!)"
yann@2815
    51
    help
yann@2815
    52
      If you say 'y' here, then the toolchain will also contain the C library
yann@2815
    53
      optimised for some variants of the selected architecture, besides the
yann@2815
    54
      default settings.
yann@2815
    55
      
yann@2815
    56
      This means the build time of the C library will be in O(nb_variants).
yann@2815
    57
      
yann@2815
    58
      The list of variants is dependent on the architecture, and is hard-coded
yann@2815
    59
      in gcc, so it is not possible to say what variants to support, only
yann@2815
    60
      whether hard-coded variants should be supported or not.
yann@3150
    61
      
yann@3150
    62
      NOTE: The multilib feature in crosstool-NG is not well-tested.
yann@3150
    63
            Use at your own risk, and report success and/or failure.
yann@2815
    64
yann@2815
    65
#--------------------------------------
yann@1345
    66
config ARCH_SUPPORTS_BOTH_MMU
yann@1345
    67
    bool
yann@1345
    68
yann@1345
    69
config ARCH_DEFAULT_HAS_MMU
yann@1345
    70
    bool
yann@1345
    71
yann@1345
    72
config ARCH_USE_MMU
yann@1345
    73
    bool
yann@1345
    74
    prompt "Use the MMU" if ARCH_SUPPORTS_BOTH_MMU
yann@1345
    75
    default y if ARCH_DEFAULT_HAS_MMU
yann@1586
    76
    help
yann@1586
    77
      If your architecture has an MMU and you want to use it,
yann@1586
    78
      say 'Y' here.
yann@1586
    79
      
yann@1586
    80
      OTOH, if you don't want to use the MMU, or your arch
yann@1586
    81
      lacks an MMU, say 'N' here.
yann@1586
    82
      
yann@1586
    83
      Note that some architectures (eg. ARM) has variants that
yann@1586
    84
      lacks an MMU (eg. ARM Cortex-M3), while other variants
yann@1586
    85
      have one (eg. ARM Cortex-A8).
yann@1345
    86
yann@1345
    87
#--------------------------------------
yann@136
    88
config ARCH_SUPPORTS_BOTH_ENDIAN
yann@35
    89
    bool
yann@35
    90
yann@347
    91
config ARCH_DEFAULT_BE
yann@347
    92
    bool
yann@347
    93
yann@347
    94
config ARCH_DEFAULT_LE
yann@347
    95
    bool
yann@347
    96
yann@1
    97
choice
yann@1
    98
    bool
yann@1
    99
    prompt "Endianness:"
yann@136
   100
    depends on ARCH_SUPPORTS_BOTH_ENDIAN
yann@347
   101
    default ARCH_BE if ARCH_DEFAULT_BE
yann@347
   102
    default ARCH_LE if ARCH_DEFAULT_LE
yann@1
   103
yann@1
   104
config ARCH_BE
yann@1
   105
    bool
yann@1
   106
    prompt "Big endian"
yann@1
   107
yann@1
   108
config ARCH_LE
yann@1
   109
    bool
yann@1
   110
    prompt "Little endian"
yann@1
   111
yann@1
   112
endchoice
yann@1
   113
yann@2772
   114
config ARCH_ENDIAN
yann@2772
   115
    string
yann@2772
   116
    depends on ARCH_SUPPORTS_BOTH_ENDIAN
yann@2772
   117
    default "big"       if ARCH_BE
yann@2772
   118
    default "little"    if ARCH_LE
yann@2772
   119
yann@1345
   120
#--------------------------------------
yann@1633
   121
config ARCH_SUPPORTS_32
yann@1633
   122
    bool
yann@1633
   123
yann@1633
   124
config ARCH_SUPPORTS_64
yann@1633
   125
    bool
yann@1633
   126
yann@1633
   127
config ARCH_DEFAULT_32
yann@1633
   128
    bool
yann@1633
   129
yann@1633
   130
config ARCH_DEFAULT_64
yann@1633
   131
    bool
yann@1633
   132
yann@1715
   133
config ARCH_BITNESS
yann@1715
   134
    int
yann@1715
   135
    default "32"    if ARCH_32
yann@1715
   136
    default "64"    if ARCH_64
yann@1715
   137
yann@1633
   138
choice
yann@1633
   139
    bool
yann@1633
   140
    prompt "Bitness:"
yann@1638
   141
    default ARCH_32 if ARCH_DEFAULT_32
yann@1638
   142
    default ARCH_64 if ARCH_DEFAULT_64
yann@1633
   143
yann@1638
   144
config ARCH_32
yann@1633
   145
    bool
yann@1633
   146
    prompt "32-bit"
yann@1633
   147
    depends on ARCH_SUPPORTS_32
yann@1633
   148
yann@1638
   149
config ARCH_64
yann@1633
   150
    bool
yann@1633
   151
    prompt "64-bit"
yann@1633
   152
    depends on ARCH_SUPPORTS_64
yann@1633
   153
yann@1633
   154
endchoice
yann@1633
   155
yann@1633
   156
#--------------------------------------
yann@1
   157
comment "Target optimisations"
yann@1
   158
yann@2788
   159
config ARCH_SUPPORTS_WITH_ARCH
yann@631
   160
    bool
yann@631
   161
yann@2788
   162
config ARCH_SUPPORTS_WITH_ABI
yann@631
   163
    bool
yann@631
   164
yann@2788
   165
config ARCH_SUPPORTS_WITH_CPU
yann@631
   166
    bool
yann@631
   167
yann@2788
   168
config ARCH_SUPPORTS_WITH_TUNE
yann@631
   169
    bool
yann@631
   170
yann@2789
   171
config ARCH_SUPPORTS_WITH_FLOAT
yann@2789
   172
    bool
yann@2789
   173
yann@2788
   174
config ARCH_SUPPORTS_WITH_FPU
yann@631
   175
    bool
yann@631
   176
yann@2788
   177
config ARCH_SUPPORTS_SOFTFP
michael@2739
   178
    bool
michael@2739
   179
yann@47
   180
config ARCH_ARCH
yann@47
   181
    string
yann@425
   182
    prompt "Architecture level"
yann@2788
   183
    depends on ARCH_SUPPORTS_WITH_ARCH
yann@47
   184
    default ""
yann@47
   185
    help
yann@47
   186
      GCC uses this name to determine what kind of instructions it can emit
yann@47
   187
      when generating assembly code. This option can be used in conjunction
yann@47
   188
      with or instead of the ARCH_CPU option (above), or a (command-line)
yann@47
   189
      -mcpu= option.
yann@47
   190
      
yann@47
   191
      This is the configuration flag --with-arch=XXXX, and the runtime flag
yann@47
   192
      -march=XXX.
yann@47
   193
      
yann@47
   194
      Pick a value from the gcc manual for your choosen gcc version and your
yann@47
   195
      target CPU.
yann@47
   196
      
yann@47
   197
      Leave blank if you don't know, or if your target architecture does not
yann@47
   198
      offer this option.
yann@47
   199
yann@45
   200
config ARCH_ABI
yann@45
   201
    string
yann@45
   202
    prompt "Generate code for the specific ABI"
yann@2788
   203
    depends on ARCH_SUPPORTS_WITH_ABI
yann@45
   204
    default ""
yann@45
   205
    help
yann@45
   206
      Generate code for the given ABI.
yann@45
   207
yann@47
   208
      This is the configuration flag --with-abi=XXXX, and the runtime flag
yann@47
   209
      -mabi=XXX.
yann@47
   210
yann@45
   211
      Pick a value from the gcc manual for your choosen gcc version and your
yann@45
   212
      target CPU.
yann@45
   213
antony@2564
   214
      Leave blank if you don't know, or if your target architecture does not
yann@45
   215
      offer this option.
yann@45
   216
yann@1
   217
config ARCH_CPU
yann@1
   218
    string
yann@1
   219
    prompt "Emit assembly for CPU"
yann@2788
   220
    depends on ARCH_SUPPORTS_WITH_CPU
yann@1
   221
    default ""
yann@1
   222
    help
yann@283
   223
      This specifies the name of the target processor. GCC uses this name
yann@1
   224
      to determine what kind of instructions it can emit when generating
yann@1
   225
      assembly code.
yann@1
   226
      
yann@47
   227
      This is the configuration flag --with-cpu=XXXX, and the runtime flag
yann@47
   228
      -mcpu=XXX.
yann@47
   229
yann@1
   230
      Pick a value from the gcc manual for your choosen gcc version and your
yann@1
   231
      target CPU.
yann@1
   232
      
yann@1
   233
      Leave blank if you don't know, or if your target architecture does not
yann@1
   234
      offer this option.
yann@1
   235
yann@1
   236
config ARCH_TUNE
yann@1
   237
    string
yann@1
   238
    prompt "Tune for CPU"
yann@2788
   239
    depends on ARCH_SUPPORTS_WITH_TUNE
yann@1
   240
    default ""
yann@1
   241
    help
yann@1
   242
      This option is very similar to the ARCH_CPU option (above), except
yann@1
   243
      that instead of specifying the actual target processor type, and hence
yann@1
   244
      restricting which instructions can be used, it specifies that GCC should
yann@1
   245
      tune the performance of the code as if the target were of the type
yann@1
   246
      specified in this option, but still choosing the instructions that it
yann@1
   247
      will generate based on the cpu specified by the ARCH_CPU option
yann@1
   248
      (above), or a (command-line) -mcpu= option.
yann@1
   249
      
yann@47
   250
      This is the configuration flag --with-tune=XXXX, and the runtime flag
yann@47
   251
      -mtune=XXX.
yann@1
   252
      
yann@1
   253
      Pick a value from the gcc manual for your choosen gcc version and your
yann@1
   254
      target CPU.
yann@1
   255
      
yann@1
   256
      Leave blank if you don't know, or if your target architecture does not
yann@1
   257
      offer this option.
yann@1
   258
yann@1
   259
config ARCH_FPU
yann@1
   260
    string
yann@47
   261
    prompt "Use specific FPU"
yann@2788
   262
    depends on ARCH_SUPPORTS_WITH_FPU
yann@1
   263
    default ""
yann@1
   264
    help
yann@1
   265
      On some targets (eg. ARM), you can specify the kind of FPU to emit
yann@1
   266
      code for.
yann@47
   267
yann@47
   268
      This is the configuration flag --with-fpu=XXX, and the runtime flag
yann@47
   269
      -mfpu=XXX.
yann@1
   270
      
yann@1
   271
      See below wether to actually emit FP opcodes, or to emulate them.
yann@1
   272
      
yann@1
   273
      Pick a value from the gcc manual for your choosen gcc version and your
yann@1
   274
      target CPU.
yann@1
   275
      
yann@1
   276
      Leave blank if you don't know, or if your target architecture does not
yann@1
   277
      offer this option.
yann@1
   278
yann@1
   279
choice
yann@1
   280
    bool
yann@1
   281
    prompt "Floating point:"
yann@2794
   282
    depends on ARCH_SUPPORTS_WITH_FLOAT
yann@1
   283
yann@1
   284
config ARCH_FLOAT_HW
yann@1
   285
    bool
yann@1
   286
    prompt "hardware (FPU)"
yann@1
   287
    help
yann@1
   288
      Emit hardware floating point opcodes.
yann@1
   289
      
yann@1
   290
      If you've got a processor with a FPU, then you want that.
yann@1
   291
      If your hardware has no FPU, you still can use HW floating point, but
yann@1
   292
      need to compile support for FPU emulation in your kernel. Needless to
yann@1
   293
      say that emulating the FPU is /slooowwwww/...
yann@1
   294
      
yann@1
   295
      One situation you'd want HW floating point without a FPU is if you get
yann@1
   296
      binary blobs from different vendors that are compiling this way and
yann@1
   297
      can't (don't wan't to) change.
yann@1
   298
michael@2739
   299
config ARCH_FLOAT_SOFTFP
michael@2739
   300
    bool
yann@3140
   301
    prompt "softfp (FPU)"
yann@2788
   302
    depends on ARCH_SUPPORTS_SOFTFP
michael@2739
   303
    help
michael@2739
   304
      Emit hardware floating point opcodes but use the software
michael@2739
   305
      floating point calling convention.
michael@2739
   306
michael@2739
   307
      Architectures such as ARM use different registers for passing
michael@2739
   308
      floating point values depending on if they're in software mode
michael@2739
   309
      or hardware mode.  softfp emits FPU instructions but uses the
michael@2739
   310
      software FP calling convention allowing softfp code to
michael@2739
   311
      interoperate with legacy software only code.
michael@2739
   312
michael@2739
   313
      If in doubt, use 'software' or 'hardware' mode instead.
michael@2739
   314
yann@3140
   315
config ARCH_FLOAT_SW
yann@3140
   316
    bool
yann@3140
   317
    prompt "software (no FPU)"
yann@3140
   318
    help
yann@3140
   319
      Do not emit any hardware floating point opcode.
yann@3140
   320
      
yann@3140
   321
      If your processor has no FPU, then you most probably want this, as it
yann@3140
   322
      is faster than emulating the FPU in the kernel.
yann@3140
   323
yann@1
   324
endchoice
yann@1
   325
yann@1
   326
config TARGET_CFLAGS
yann@1
   327
    string
yann@41
   328
    prompt "Target CFLAGS"
yann@1
   329
    default ""
yann@1
   330
    help
yann@1
   331
      Used to add specific options when compiling libraries of the toolchain,
yann@1
   332
      that will run on the target (eg. libc.so).
yann@1
   333
      
yann@531
   334
      Note that the options above for ARCH, ABI, CPU, TUNE and FPU will be
antony@2564
   335
      automatically used. You don't need to specify them here.
yann@1
   336
      
yann@1
   337
      Leave blank if you don't know better.
yann@1
   338
yann@767
   339
config TARGET_LDFLAGS
yann@767
   340
    string
yann@767
   341
    prompt "Target LDFLAGS"
yann@767
   342
    default ""
yann@767
   343
    help
yann@767
   344
      Used to add specific options when linking libraries of the toolchain,
yann@767
   345
      that will run on your target.
yann@767
   346
      
yann@767
   347
      Leave blank if you don't know better.
yann@767
   348
michael@2737
   349
config ARCH_FLOAT
michael@2737
   350
    string
yann@2794
   351
    default ""       if ! ARCH_SUPPORTS_WITH_FLOAT
michael@2737
   352
    default "hard"   if ARCH_FLOAT_HW
michael@2737
   353
    default "soft"   if ARCH_FLOAT_SW
michael@2739
   354
    default "softfp" if ARCH_FLOAT_SOFTFP
michael@2737
   355
yann@2413
   356
source "config.gen/arch.in.2"
yann@2413
   357
yann@1
   358
endmenu