config/cc/gcc.in.2
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Sun May 11 23:43:52 2014 +0200 (2014-05-11)
changeset 3320 78af1c99bc6d
parent 3279 c4b4bb58f639
permissions -rw-r--r--
scripts/functions: add target_endian_le and target_endian_be

We currently define target_endian_el and target_endian_eb to be the
tuple extension depending on endianness, defined to be respectively
'el' or 'eb' according to the endianness.

Some architecture do not use 'el' or 'eb', but use 'le' or 'be'.

Provide that as well, as two new variables: target_endian_le and
target_endian_be.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Cody P Schafer <dev@codyps.com>
yann@2415
     1
# gcc configuration options
yann@2144
     2
yann@2415
     3
config CC_ENABLE_CXX_FLAGS
yann@2415
     4
    string
yann@2415
     5
    prompt "Flags to pass to --enable-cxx-flags"
yann@2415
     6
    default ""
yann@2415
     7
    help
yann@2415
     8
      Enter here the value of the gcc's ./configure option --enable-cxx-flags.
yann@2415
     9
      Leave empty if you don't know better.
yann@2415
    10
      
yann@2415
    11
      Note: just pass in the option _value_, that is only the part that goes
yann@2415
    12
      after the '=' sign.
yann@2415
    13
yann@2467
    14
config CC_CORE_EXTRA_CONFIG_ARRAY
yann@2415
    15
    string
yann@2415
    16
    prompt "Core gcc extra config"
yann@2415
    17
    default ""
dev@3312
    18
    depends on CC_CORE_PASS_1_NEEDED || CC_CORE_PASS_2_NEEDED
yann@2415
    19
    help
yann@2415
    20
      Extra flags to pass onto ./configure when configuring the core gcc.
yann@2415
    21
      
yann@2415
    22
      The core gcc is a stripped down, C-only compiler needed to build
yann@2415
    23
      the C library. Kinda bootstrap gcc, if you wish.
yann@2469
    24
      
yann@2469
    25
      You can enter multiple arguments here, and arguments can contain spaces
yann@2469
    26
      if they are properly quoted (or escaped, but prefer quotes). Eg.:
yann@2469
    27
          --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
yann@2415
    28
yann@2467
    29
config CC_EXTRA_CONFIG_ARRAY
yann@2415
    30
    string
yann@2415
    31
    prompt "gcc extra config"
yann@2415
    32
    default ""
yann@2415
    33
    help
yann@2415
    34
      Extra flags to pass onto ./configure when configuring gcc.
yann@2469
    35
      
yann@2469
    36
      You can enter multiple arguments here, and arguments can contain spaces
yann@2469
    37
      if they are properly quoted (or escaped, but prefer quotes). Eg.:
yann@2469
    38
          --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
yann@2415
    39
yann@2415
    40
config STATIC_TOOLCHAIN
yann@2415
    41
    select CC_STATIC_LIBSTDCXX if CC_GCC_4_4_or_later
yann@2415
    42
yann@2415
    43
config CC_STATIC_LIBSTDCXX
yann@2041
    44
    bool
yann@2415
    45
    prompt "Link libstdc++ statically into the gcc binary"
yann@2041
    46
    default y
yann@2415
    47
    depends on CC_GCC_4_4_or_later
yann@2717
    48
    select WANTS_STATIC_LINK
yann@2041
    49
    help
yann@2415
    50
      Newer gcc versions use the PPL library which is C++ code.  Statically
yann@2415
    51
      linking libstdc++ increases the likeliness that the gcc binary will
yann@2415
    52
      run on machines other than the one which it was built on, without
yann@2415
    53
      having to worry about distributing the matching version of libstdc++
yann@2415
    54
      along with it.
yann@2415
    55
yann@2814
    56
config CC_GCC_SYSTEM_ZLIB
yann@2814
    57
    bool
yann@2814
    58
    prompt "Use system zlib"
yann@2814
    59
    help
yann@2814
    60
      Do not use bundled zlib, and use the zlib already available for
yann@2814
    61
      the host (eg. the system library).
yann@2814
    62
      
yann@2814
    63
      If you want to build a static toolchain, you will need to also
yann@2814
    64
      install the static version of zlib for your host.
yann@2814
    65
      
yann@2814
    66
      If unsure, say 'n'.
yann@2814
    67
yann@2415
    68
#-----------------------------------------------------------------------------
yann@2415
    69
# Optimisation features
yann@2415
    70
yann@2415
    71
comment "Optimisation features"
yann@2041
    72
yann@3217
    73
# Defined in config/cc/gcc.in
yann@2122
    74
config CC_GCC_USE_GRAPHITE
yann@2122
    75
    prompt "Enable GRAPHITE loop optimisations"
yann@2122
    76
yann@2287
    77
# The way LTO works is a bit twisted.
yann@2287
    78
# See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
yann@2287
    79
# Basically:
yann@2287
    80
#   - if binutils has plugins: LTO is handled by ld/gold by loading
yann@2287
    81
#     the plugin when linking
yann@2287
    82
#   - if binutils does not have plugins: LTO is handled by collect2
yann@2287
    83
# In any case, LTO support does not depend on plugins, but takes
yann@2287
    84
# advantage of it
yann@2363
    85
# Also, only the 4.5 series needs libelf for LTO; 4.6 has dropped
yann@2363
    86
# the dependency.
yann@3217
    87
# Defined in config/cc/gcc.in
yann@2122
    88
config CC_GCC_USE_LTO
yann@2122
    89
    prompt "Enable LTO"
yann@2122
    90
yann@2415
    91
#-----------------------------------------------------------------------------
yann@2415
    92
comment "Settings for libraries running on target"
bryanhundven@2211
    93
yann@2415
    94
config CC_GCC_ENABLE_TARGET_OPTSPACE
js@2045
    95
    bool
yann@2415
    96
    prompt "Optimize gcc libs for size"
js@2045
    97
    default y
js@2045
    98
    help
yann@2415
    99
      Pass --enable-target-optspace to crossgcc's configure.
yann@2415
   100
      
yann@2415
   101
      This will compile crossgcc's libs with -Os.
js@2045
   102
yann@2144
   103
config CC_GCC_LIBMUDFLAP
yann@2144
   104
    bool
yann@2144
   105
    prompt "Compile libmudflap"
yann@2144
   106
    help
yann@2144
   107
      libmudflap is a pointer-use checking tool, which can detect
yann@2144
   108
      various mis-usages of pointers in C and (to some extents) C++.
yann@2144
   109
      
yann@2144
   110
      You should say 'N' here, as libmduflap generates instrumented
yann@2144
   111
      code (thus it is a bit bigger and a bit slower) and requires
yann@2144
   112
      re-compilation and re-link, while it exists better run-time
yann@2144
   113
      alternatives (eg. DUMA, dmalloc...) that need neither re-
yann@2144
   114
      compilation nor re-link.
yann@2144
   115
yann@2145
   116
config CC_GCC_LIBGOMP
yann@2145
   117
    bool
yann@2145
   118
    prompt "Compile libgomp"
yann@2145
   119
    help
yann@2145
   120
      libgomp is "the GNU implementation of the OpenMP Application Programming
yann@2145
   121
      Interface (API) for multi-platform shared-memory parallel programming in
yann@2145
   122
      C/C++ and Fortran". See:
yann@2145
   123
        http://gcc.gnu.org/onlinedocs/libgomp/
yann@2145
   124
      
yann@2145
   125
      The default is 'N'. Say 'Y' if you need it, and report success/failure.
yann@2145
   126
yann@2146
   127
config CC_GCC_LIBSSP
yann@2146
   128
    bool
yann@2146
   129
    prompt "Compile libssp"
yann@2146
   130
    help
yann@2146
   131
      libssp is the run-time Stack-Smashing Protection library.
yann@2146
   132
      
yann@2146
   133
      The default is 'N'. Say 'Y' if you need it, and report success/failure.
yann@2146
   134
yann@2980
   135
config CC_GCC_LIBQUADMATH
yann@2980
   136
    bool
yann@2980
   137
    prompt "Compile libquadmath"
yann@2980
   138
    depends on CC_GCC_HAS_LIBQUADMATH
yann@2980
   139
    help
yann@2980
   140
      libquadmath is a library which provides quad-precision mathematical
yann@2980
   141
      functions on targets supporting the __float128 datatype. See:
yann@2980
   142
        http://gcc.gnu.org/onlinedocs/libquadmath/
yann@2980
   143
      
yann@2980
   144
      The default is 'N'. Say 'Y' if you need it, and report success/failure.
yann@2980
   145
yann@2144
   146
#-----------------------------------------------------------------------------
yann@2144
   147
yann@2041
   148
comment "Misc. obscure options."
yann@2041
   149
yann@2041
   150
config CC_CXA_ATEXIT
yann@2041
   151
    bool
yann@2041
   152
    prompt "Use __cxa_atexit"
yann@2041
   153
    default y
yann@2041
   154
    depends on ! BARE_METAL
yann@2041
   155
    help
yann@2041
   156
      If you get the missing symbol "__cxa_atexit" when building C++ programs,
yann@2041
   157
      you might want to try disabling this option.
yann@2041
   158
yann@2041
   159
config CC_GCC_DISABLE_PCH
yann@2041
   160
    bool
yann@2041
   161
    prompt "Do not build PCH"
yann@2041
   162
    help
yann@2041
   163
      Say 'y' here to not use Pre-Compiled Headers in the resulting toolchain.
yann@2041
   164
      at the expense of speed when compiling C++ code.
yann@2041
   165
      
yann@2041
   166
      For some configurations (most notably canadian?), PCH are broken, and
yann@2041
   167
      need to be disabled. Please see:
yann@2041
   168
        http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40974
yann@2041
   169
yann@2042
   170
config CC_GCC_SJLJ_EXCEPTIONS
yann@2042
   171
    tristate
yann@2041
   172
    prompt "Use sjlj for exceptions"
yann@2054
   173
    depends on ! BARE_METAL
yann@2042
   174
    default m
yann@2041
   175
    help
yann@2042
   176
      'sjlj' is short for setjmp/longjmp.
yann@2041
   177
      
yann@2042
   178
      On some architectures, stack unwinding during exception handling
yann@2042
   179
      works perfectly well without using sjlj, while on some others,
yann@2042
   180
      use of sjlj is required for proper stack unwinding.
yann@2041
   181
      
yann@2042
   182
       Option  | sjlj use           | Associated ./configure switch
yann@2042
   183
      ---------+--------------------+--------------------------------
yann@2042
   184
         Y     | forcibly used      | --enable-sjlj-exceptions
yann@2042
   185
         M     | auto               | (none, ./configure decides)
yann@2042
   186
         N     | forcibly not used  | --disable-sjlj-exceptions
yann@2041
   187
      
yann@2042
   188
      It should be safe to say 'M' or 'N'.
yann@2042
   189
      
yann@2042
   190
      It can happen that ./configure is wrong in some cases. Known
yann@2042
   191
      case is for ARM big endian, where you should say 'N'.
yann@2043
   192
yann@2143
   193
config CC_GCC_LDBL_128
yann@2143
   194
    tristate
yann@2143
   195
    prompt "Enable 128-bit long doubles"
yann@2143
   196
    default m
yann@2143
   197
    depends on CC_GCC_4_2_or_later
yann@2143
   198
    help
yann@2143
   199
      Saying 'Y' will force gcc to use 128-bit wide long doubles
yann@2143
   200
      Saying 'N' will force gcc to use 64-bit wide long doubles
yann@2143
   201
      Saying 'M' will let gcc choose (default is 128-bit for
yann@2143
   202
                 glibc >= 2.4, 64-bit otherwise)
yann@2143
   203
      
yann@2143
   204
      If in doubt, keep the default, ie. 'M'.
yann@2521
   205
yann@2521
   206
config CC_GCC_BUILD_ID
yann@2521
   207
    bool
yann@2521
   208
    prompt "Enable build-id"
yann@2521
   209
    depends on CC_GCC_HAS_BUILD_ID
yann@2521
   210
    help
yann@2521
   211
      Tells GCC to pass --build-id option to the linker for all final
yann@2521
   212
      links (links performed without the -r or --relocatable option),
yann@2521
   213
      if the linker supports it. If you say 'y' here, but your linker
yann@2521
   214
      does not support --build-id option, a warning is issued and this
yann@2521
   215
      option is ignored.
yann@2521
   216
      
yann@2521
   217
      The default is off.
yann@2522
   218
yann@2522
   219
choice CC_GCC_LNK_HASH_STYLE_CHOICE
yann@2522
   220
    bool
yann@2522
   221
    prompt "linker hash style"
yann@2522
   222
    depends on CC_GCC_HAS_LNK_HASH_STYLE
yann@2948
   223
    depends on BINUTILS_HAS_HASH_STYLE
yann@2522
   224
yann@2522
   225
config CC_GCC_LNK_HASH_STYLE_DEFAULT
yann@2522
   226
    bool
yann@2522
   227
    prompt "Default"
yann@2522
   228
    help
yann@2522
   229
      Do not specify any value, and use the default value (sysv).
yann@2522
   230
yann@2522
   231
config CC_GCC_LNK_HASH_STYLE_SYSV
yann@2522
   232
    bool
yann@2522
   233
    prompt "sysv"
yann@2522
   234
    help
yann@2522
   235
      Force use of the SYSV hash style.
yann@2522
   236
yann@2522
   237
config CC_GCC_LNK_HASH_STYLE_GNU
yann@2522
   238
    bool
yann@2522
   239
    prompt "gnu"
yann@2522
   240
    help
yann@2522
   241
      Force use of the GNU hash style.
yann@2522
   242
yann@2522
   243
config CC_GCC_LNK_HASH_STYLE_BOTH
yann@2522
   244
    bool
yann@2522
   245
    prompt "both"
yann@2522
   246
    help
yann@2522
   247
      Force use of both hash styles.
yann@2522
   248
yann@2522
   249
endchoice # CC_GCC_LNK_HASH_STYLE_CHOICE
yann@2522
   250
yann@2522
   251
config CC_GCC_LNK_HASH_STYLE
yann@2522
   252
    string
yann@2522
   253
    default ""      if CC_GCC_LNK_HASH_STYLE_DEFAULT
yann@2522
   254
    default "sysv"  if CC_GCC_LNK_HASH_STYLE_SYSV
yann@2522
   255
    default "gnu"   if CC_GCC_LNK_HASH_STYLE_GNU
yann@2522
   256
    default "both"  if CC_GCC_LNK_HASH_STYLE_BOTH
yann@2523
   257
yann@3279
   258
choice CC_GCC_DEC_FLOATS_CHOICE
yann@3279
   259
    bool "Decimal floats"
yann@3279
   260
    default CC_GCC_DEC_FLOATS_AUTO
yann@3279
   261
    help
yann@3279
   262
      Choose what type of decimal floats to support.
yann@3279
   263
      
yann@3279
   264
      Note that using decimal floats requires a C library that provides
yann@3279
   265
      support for fenv (namely, the fenv.h header).  This is the case
yann@3279
   266
      for (e)glibc, and uClibc on x86/32.  For other C libraries, or
yann@3279
   267
      uClibc on other archs, this might not be the case, so you should
yann@3279
   268
      disable support for decimal floats.
yann@3279
   269
      
yann@3279
   270
      The default is to let ./configure decide.
yann@3279
   271
yann@3279
   272
config CC_GCC_DEC_FLOAT_AUTO
yann@3279
   273
    bool "auto"
yann@3279
   274
    help
yann@3279
   275
      Let ./configure decide. If you say 'y' here, gcc will default to:
yann@3279
   276
        - 'bid' for x86 (32- and 64-bit)
yann@3279
   277
        - 'dpd' for powerpc
yann@3279
   278
        - 'no' for the other architectures
yann@3279
   279
yann@3279
   280
config CC_GCC_DEC_FLOAT_BID
yann@3279
   281
    bool "bid"
yann@3279
   282
    help
yann@3279
   283
      Use the 'binary integer decimal' format for decimal floats.
yann@3279
   284
yann@3279
   285
config CC_GCC_DEC_FLOAT_DPD
yann@3279
   286
    bool "dpd"
yann@3279
   287
    help
yann@3279
   288
      Use the 'densely packed decimal' for decimal floats.
yann@3279
   289
yann@3279
   290
config CC_GCC_DEC_FLOATS_NO
yann@3279
   291
    bool "no"
yann@3279
   292
    help
yann@3279
   293
      Do not support decimal floats. The default.
yann@3279
   294
yann@3279
   295
endchoice # CC_GCC_DEC_FLOATS_CHOICE
yann@3279
   296
yann@3279
   297
config CC_GCC_DEC_FLOATS
yann@3279
   298
    string
yann@3279
   299
    default ""      if CC_GCC_DEC_FLOATS_AUTO
yann@3279
   300
    default "bid"   if CC_GCC_DEC_FLOATS_BID
yann@3279
   301
    default "dpd"   if CC_GCC_DEC_FLOATS_DPD
yann@3279
   302
    default "no"    if CC_GCC_DEC_FLOATS_NO
yann@3279
   303
yann@2523
   304
#-----------------------------------------------------------------------------
yann@2523
   305
yann@2523
   306
config CC_GCC_HAS_ARCH_OPTIONS
yann@2523
   307
    bool
yann@2523
   308
yann@2523
   309
comment "archictecture-specific options"
yann@2523
   310
    depends on CC_GCC_HAS_ARCH_OPTIONS
yann@2523
   311
yann@2523
   312
if ARCH_mips
yann@2523
   313
source "config/cc/gcc.in.mips"
yann@2523
   314
endif # ARCH_mips