config/cc/gcc.in.2
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Sun May 05 17:59:00 2013 +0200 (2013-05-05)
changeset 3217 15eedf548d33
parent 3150 1d6fd9bde73c
child 3279 c4b4bb58f639
permissions -rw-r--r--
cc/gcc: add preliminray support for 4.8

This means:
- introduce the new symbols for 4.8
- do not always select PPL if graphite is selected

Reported-by: "Plotnikov Dmitry" <leitz@ispras.ru>
[Dmitry did a preliminray patch to add gcc-4.8 support,
which this patch is inspired from]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
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 ""
yann@2415
    18
    help
yann@2415
    19
      Extra flags to pass onto ./configure when configuring the core gcc.
yann@2415
    20
      
yann@2415
    21
      The core gcc is a stripped down, C-only compiler needed to build
yann@2415
    22
      the C library. Kinda bootstrap gcc, if you wish.
yann@2469
    23
      
yann@2469
    24
      You can enter multiple arguments here, and arguments can contain spaces
yann@2469
    25
      if they are properly quoted (or escaped, but prefer quotes). Eg.:
yann@2469
    26
          --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
yann@2415
    27
yann@2467
    28
config CC_EXTRA_CONFIG_ARRAY
yann@2415
    29
    string
yann@2415
    30
    prompt "gcc extra config"
yann@2415
    31
    default ""
yann@2415
    32
    depends on ! BARE_METAL
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@2523
   258
#-----------------------------------------------------------------------------
yann@2523
   259
yann@2523
   260
config CC_GCC_HAS_ARCH_OPTIONS
yann@2523
   261
    bool
yann@2523
   262
yann@2523
   263
comment "archictecture-specific options"
yann@2523
   264
    depends on CC_GCC_HAS_ARCH_OPTIONS
yann@2523
   265
yann@2523
   266
if ARCH_mips
yann@2523
   267
source "config/cc/gcc.in.mips"
yann@2523
   268
endif # ARCH_mips