config/target.in
author "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
Mon Apr 16 15:25:36 2012 +0200 (2012-04-16)
changeset 2941 13e40098fffc
parent 2794 561bce585313
child 3140 d9e78e89b3f6
permissions -rw-r--r--
cc/gcc: update Linaro GCC revisions to 2012.04

Update Linaro GCC with the latest available revisions.

The 4.7 revision is also released, but the infrastructure is not yet ready for
it in CT-NG.

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