config/cc/gcc.in.2
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Jun 27 18:04:50 2011 +0200 (2011-06-27)
changeset 2523 b1bf9ca6db1a
parent 2522 ff2481a6e60f
child 2526 e5fb003a354c
permissions -rw-r--r--
cc/gcc: add MIPS spercific configure options

Add the following MIPS specific options when configuring gcc:
--with(out)-llsc
--with(out)-synci
--with(out)-mips-plt
--with-divide=type

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.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@2500
    47
    depends on CONFIGURE_has_static_libstdcxx
yann@2415
    48
    depends on CC_GCC_4_4_or_later
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@2415
    56
#-----------------------------------------------------------------------------
yann@2415
    57
# Optimisation features
yann@2415
    58
yann@2415
    59
comment "Optimisation features"
yann@2041
    60
yann@2122
    61
config CC_GCC_USE_GRAPHITE
yann@2122
    62
    bool
yann@2122
    63
    prompt "Enable GRAPHITE loop optimisations"
yann@2122
    64
    default y
yann@2122
    65
    depends on CC_GCC_HAS_GRAPHITE
yann@2122
    66
    select CC_GCC_USE_PPL_CLOOG
yann@2122
    67
    help
yann@2122
    68
      Enable the GRAPHITE loop optimsations.
yann@2122
    69
      
yann@2122
    70
      This requires the PPL and CLooG companion libraries, and
yann@2122
    71
      those will be automatically build for you.
yann@2122
    72
      
yann@2122
    73
      On some systems (eg. Cygwin), PPL and/or CLooG may not
yann@2122
    74
      build properly (yet), so you'll have to say 'N' here.
yann@2122
    75
yann@2287
    76
# The way LTO works is a bit twisted.
yann@2287
    77
# See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
yann@2287
    78
# Basically:
yann@2287
    79
#   - if binutils has plugins: LTO is handled by ld/gold by loading
yann@2287
    80
#     the plugin when linking
yann@2287
    81
#   - if binutils does not have plugins: LTO is handled by collect2
yann@2287
    82
# In any case, LTO support does not depend on plugins, but takes
yann@2287
    83
# advantage of it
yann@2363
    84
# Also, only the 4.5 series needs libelf for LTO; 4.6 has dropped
yann@2363
    85
# the dependency.
yann@2122
    86
config CC_GCC_USE_LTO
yann@2122
    87
    bool
yann@2122
    88
    prompt "Enable LTO"
yann@2122
    89
    default y
yann@2122
    90
    depends on CC_GCC_HAS_LTO
yann@2362
    91
    select CC_GCC_USE_LIBELF if CC_GCC_4_5
yann@2122
    92
    help
yann@2122
    93
      Enable the Link Time Optimisations.
yann@2122
    94
      
yann@2122
    95
      This will require the libelf companion library, and it
yann@2122
    96
      wil be build automatically for you.
yann@2122
    97
yann@2415
    98
#-----------------------------------------------------------------------------
yann@2415
    99
comment "Settings for libraries running on target"
bryanhundven@2211
   100
yann@2415
   101
config CC_GCC_ENABLE_TARGET_OPTSPACE
js@2045
   102
    bool
yann@2415
   103
    prompt "Optimize gcc libs for size"
js@2045
   104
    default y
js@2045
   105
    help
yann@2415
   106
      Pass --enable-target-optspace to crossgcc's configure.
yann@2415
   107
      
yann@2415
   108
      This will compile crossgcc's libs with -Os.
js@2045
   109
yann@2144
   110
config CC_GCC_LIBMUDFLAP
yann@2144
   111
    bool
yann@2144
   112
    prompt "Compile libmudflap"
yann@2144
   113
    help
yann@2144
   114
      libmudflap is a pointer-use checking tool, which can detect
yann@2144
   115
      various mis-usages of pointers in C and (to some extents) C++.
yann@2144
   116
      
yann@2144
   117
      You should say 'N' here, as libmduflap generates instrumented
yann@2144
   118
      code (thus it is a bit bigger and a bit slower) and requires
yann@2144
   119
      re-compilation and re-link, while it exists better run-time
yann@2144
   120
      alternatives (eg. DUMA, dmalloc...) that need neither re-
yann@2144
   121
      compilation nor re-link.
yann@2144
   122
yann@2145
   123
config CC_GCC_LIBGOMP
yann@2145
   124
    bool
yann@2145
   125
    prompt "Compile libgomp"
yann@2145
   126
    help
yann@2145
   127
      libgomp is "the GNU implementation of the OpenMP Application Programming
yann@2145
   128
      Interface (API) for multi-platform shared-memory parallel programming in
yann@2145
   129
      C/C++ and Fortran". See:
yann@2145
   130
        http://gcc.gnu.org/onlinedocs/libgomp/
yann@2145
   131
      
yann@2145
   132
      The default is 'N'. Say 'Y' if you need it, and report success/failure.
yann@2145
   133
yann@2146
   134
config CC_GCC_LIBSSP
yann@2146
   135
    bool
yann@2146
   136
    prompt "Compile libssp"
yann@2146
   137
    help
yann@2146
   138
      libssp is the run-time Stack-Smashing Protection library.
yann@2146
   139
      
yann@2146
   140
      The default is 'N'. Say 'Y' if you need it, and report success/failure.
yann@2146
   141
yann@2144
   142
#-----------------------------------------------------------------------------
yann@2144
   143
yann@2041
   144
comment "Misc. obscure options."
yann@2041
   145
yann@2041
   146
config CC_CXA_ATEXIT
yann@2041
   147
    bool
yann@2041
   148
    prompt "Use __cxa_atexit"
yann@2041
   149
    default y
yann@2041
   150
    depends on ! BARE_METAL
yann@2041
   151
    help
yann@2041
   152
      If you get the missing symbol "__cxa_atexit" when building C++ programs,
yann@2041
   153
      you might want to try disabling this option.
yann@2041
   154
yann@2041
   155
config CC_GCC_DISABLE_PCH
yann@2041
   156
    bool
yann@2041
   157
    prompt "Do not build PCH"
yann@2041
   158
    help
yann@2041
   159
      Say 'y' here to not use Pre-Compiled Headers in the resulting toolchain.
yann@2041
   160
      at the expense of speed when compiling C++ code.
yann@2041
   161
      
yann@2041
   162
      For some configurations (most notably canadian?), PCH are broken, and
yann@2041
   163
      need to be disabled. Please see:
yann@2041
   164
        http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40974
yann@2041
   165
yann@2042
   166
config CC_GCC_SJLJ_EXCEPTIONS
yann@2042
   167
    tristate
yann@2041
   168
    prompt "Use sjlj for exceptions"
yann@2054
   169
    depends on ! BARE_METAL
yann@2042
   170
    default m
yann@2041
   171
    help
yann@2042
   172
      'sjlj' is short for setjmp/longjmp.
yann@2041
   173
      
yann@2042
   174
      On some architectures, stack unwinding during exception handling
yann@2042
   175
      works perfectly well without using sjlj, while on some others,
yann@2042
   176
      use of sjlj is required for proper stack unwinding.
yann@2041
   177
      
yann@2042
   178
       Option  | sjlj use           | Associated ./configure switch
yann@2042
   179
      ---------+--------------------+--------------------------------
yann@2042
   180
         Y     | forcibly used      | --enable-sjlj-exceptions
yann@2042
   181
         M     | auto               | (none, ./configure decides)
yann@2042
   182
         N     | forcibly not used  | --disable-sjlj-exceptions
yann@2041
   183
      
yann@2042
   184
      It should be safe to say 'M' or 'N'.
yann@2042
   185
      
yann@2042
   186
      It can happen that ./configure is wrong in some cases. Known
yann@2042
   187
      case is for ARM big endian, where you should say 'N'.
yann@2043
   188
yann@2143
   189
config CC_GCC_LDBL_128
yann@2143
   190
    tristate
yann@2143
   191
    prompt "Enable 128-bit long doubles"
yann@2143
   192
    default m
yann@2143
   193
    depends on CC_GCC_4_2_or_later
yann@2143
   194
    help
yann@2143
   195
      Saying 'Y' will force gcc to use 128-bit wide long doubles
yann@2143
   196
      Saying 'N' will force gcc to use 64-bit wide long doubles
yann@2143
   197
      Saying 'M' will let gcc choose (default is 128-bit for
yann@2143
   198
                 glibc >= 2.4, 64-bit otherwise)
yann@2143
   199
      
yann@2143
   200
      If in doubt, keep the default, ie. 'M'.
yann@2521
   201
yann@2521
   202
config CC_GCC_BUILD_ID
yann@2521
   203
    bool
yann@2521
   204
    prompt "Enable build-id"
yann@2521
   205
    depends on CC_GCC_HAS_BUILD_ID
yann@2521
   206
    help
yann@2521
   207
      Tells GCC to pass --build-id option to the linker for all final
yann@2521
   208
      links (links performed without the -r or --relocatable option),
yann@2521
   209
      if the linker supports it. If you say 'y' here, but your linker
yann@2521
   210
      does not support --build-id option, a warning is issued and this
yann@2521
   211
      option is ignored.
yann@2521
   212
      
yann@2521
   213
      The default is off.
yann@2522
   214
yann@2522
   215
choice CC_GCC_LNK_HASH_STYLE_CHOICE
yann@2522
   216
    bool
yann@2522
   217
    prompt "linker hash style"
yann@2522
   218
    depends on CC_GCC_HAS_LNK_HASH_STYLE
yann@2522
   219
yann@2522
   220
config CC_GCC_LNK_HASH_STYLE_DEFAULT
yann@2522
   221
    bool
yann@2522
   222
    prompt "Default"
yann@2522
   223
    help
yann@2522
   224
      Do not specify any value, and use the default value (sysv).
yann@2522
   225
yann@2522
   226
config CC_GCC_LNK_HASH_STYLE_SYSV
yann@2522
   227
    bool
yann@2522
   228
    prompt "sysv"
yann@2522
   229
    help
yann@2522
   230
      Force use of the SYSV hash style.
yann@2522
   231
yann@2522
   232
config CC_GCC_LNK_HASH_STYLE_GNU
yann@2522
   233
    bool
yann@2522
   234
    prompt "gnu"
yann@2522
   235
    help
yann@2522
   236
      Force use of the GNU hash style.
yann@2522
   237
yann@2522
   238
config CC_GCC_LNK_HASH_STYLE_BOTH
yann@2522
   239
    bool
yann@2522
   240
    prompt "both"
yann@2522
   241
    help
yann@2522
   242
      Force use of both hash styles.
yann@2522
   243
yann@2522
   244
endchoice # CC_GCC_LNK_HASH_STYLE_CHOICE
yann@2522
   245
yann@2522
   246
config CC_GCC_LNK_HASH_STYLE
yann@2522
   247
    string
yann@2522
   248
    default ""      if CC_GCC_LNK_HASH_STYLE_DEFAULT
yann@2522
   249
    default "sysv"  if CC_GCC_LNK_HASH_STYLE_SYSV
yann@2522
   250
    default "gnu"   if CC_GCC_LNK_HASH_STYLE_GNU
yann@2522
   251
    default "both"  if CC_GCC_LNK_HASH_STYLE_BOTH
yann@2523
   252
yann@2523
   253
#-----------------------------------------------------------------------------
yann@2523
   254
yann@2523
   255
config CC_GCC_HAS_ARCH_OPTIONS
yann@2523
   256
    bool
yann@2523
   257
yann@2523
   258
comment "archictecture-specific options"
yann@2523
   259
    depends on CC_GCC_HAS_ARCH_OPTIONS
yann@2523
   260
yann@2523
   261
if ARCH_mips
yann@2523
   262
source "config/cc/gcc.in.mips"
yann@2523
   263
endif # ARCH_mips