config/cc/gcc.in.2
author "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
Tue May 31 19:55:59 2011 +0200 (2011-05-31)
changeset 2486 328816f6e606
parent 2484 d1a8c2ae7946
child 2487 481cd34691f0
permissions -rw-r--r--
gcc: add a CC_GCC_HAS_PKGVERSION_BUGURL option

This patch adds a blind option CC_GCC_HAS_PKGVERSION_BUGURL to test the support
of --with-pkgversion and --with-bugurl by GCC's configure.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
yann@2415
     1
# gcc configuration options
yann@2144
     2
yann@2415
     3
config CC_PKGVERSION
yann@2415
     4
    string
yann@2415
     5
    prompt "gcc ID string"
benoit@2486
     6
    depends on CC_GCC_HAS_PKGVERSION_BUGURL
yann@2415
     7
    default "crosstool-NG-${CT_VERSION}"
yann@2415
     8
    help
yann@2415
     9
      Specify a string that identifies your package. You may wish to include
yann@2415
    10
      a build number or build date. This version string will be included in
yann@2415
    11
      the output of gcc --version.
yann@2415
    12
yann@2415
    13
      This is passed to the configure flag --with-pkgversion.
yann@2415
    14
yann@2415
    15
config CC_BUGURL
yann@2415
    16
    string
yann@2415
    17
    prompt "gcc bug URL"
benoit@2486
    18
    depends on CC_GCC_HAS_PKGVERSION_BUGURL
yann@2415
    19
    default ""
yann@2415
    20
    help
yann@2415
    21
      Specify the URL that users should visit if they wish to report a bug.
yann@2415
    22
yann@2415
    23
config CC_ENABLE_CXX_FLAGS
yann@2415
    24
    string
yann@2415
    25
    prompt "Flags to pass to --enable-cxx-flags"
yann@2415
    26
    default ""
yann@2415
    27
    help
yann@2415
    28
      Enter here the value of the gcc's ./configure option --enable-cxx-flags.
yann@2415
    29
      Leave empty if you don't know better.
yann@2415
    30
      
yann@2415
    31
      Note: just pass in the option _value_, that is only the part that goes
yann@2415
    32
      after the '=' sign.
yann@2415
    33
yann@2467
    34
config CC_CORE_EXTRA_CONFIG_ARRAY
yann@2415
    35
    string
yann@2415
    36
    prompt "Core gcc extra config"
yann@2415
    37
    default ""
yann@2415
    38
    help
yann@2415
    39
      Extra flags to pass onto ./configure when configuring the core gcc.
yann@2415
    40
      
yann@2415
    41
      The core gcc is a stripped down, C-only compiler needed to build
yann@2415
    42
      the C library. Kinda bootstrap gcc, if you wish.
yann@2469
    43
      
yann@2469
    44
      You can enter multiple arguments here, and arguments can contain spaces
yann@2469
    45
      if they are properly quoted (or escaped, but prefer quotes). Eg.:
yann@2469
    46
          --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
yann@2415
    47
yann@2467
    48
config CC_EXTRA_CONFIG_ARRAY
yann@2415
    49
    string
yann@2415
    50
    prompt "gcc extra config"
yann@2415
    51
    default ""
yann@2415
    52
    depends on ! BARE_METAL
yann@2415
    53
    help
yann@2415
    54
      Extra flags to pass onto ./configure when configuring gcc.
yann@2469
    55
      
yann@2469
    56
      You can enter multiple arguments here, and arguments can contain spaces
yann@2469
    57
      if they are properly quoted (or escaped, but prefer quotes). Eg.:
yann@2469
    58
          --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
yann@2415
    59
yann@2415
    60
config STATIC_TOOLCHAIN
yann@2415
    61
    select CC_STATIC_LIBSTDCXX if CC_GCC_4_4_or_later
yann@2415
    62
yann@2415
    63
config CC_STATIC_LIBSTDCXX
yann@2041
    64
    bool
yann@2415
    65
    prompt "Link libstdc++ statically into the gcc binary"
yann@2041
    66
    default y
yann@2415
    67
    depends on CC_GCC_4_4_or_later
yann@2041
    68
    help
yann@2415
    69
      Newer gcc versions use the PPL library which is C++ code.  Statically
yann@2415
    70
      linking libstdc++ increases the likeliness that the gcc binary will
yann@2415
    71
      run on machines other than the one which it was built on, without
yann@2415
    72
      having to worry about distributing the matching version of libstdc++
yann@2415
    73
      along with it.
yann@2415
    74
yann@2415
    75
#-----------------------------------------------------------------------------
yann@2415
    76
# Optimisation features
yann@2415
    77
yann@2415
    78
comment "Optimisation features"
yann@2041
    79
yann@2122
    80
config CC_GCC_USE_GRAPHITE
yann@2122
    81
    bool
yann@2122
    82
    prompt "Enable GRAPHITE loop optimisations"
yann@2122
    83
    default y
yann@2122
    84
    depends on CC_GCC_HAS_GRAPHITE
yann@2122
    85
    select CC_GCC_USE_PPL_CLOOG
yann@2122
    86
    help
yann@2122
    87
      Enable the GRAPHITE loop optimsations.
yann@2122
    88
      
yann@2122
    89
      This requires the PPL and CLooG companion libraries, and
yann@2122
    90
      those will be automatically build for you.
yann@2122
    91
      
yann@2122
    92
      On some systems (eg. Cygwin), PPL and/or CLooG may not
yann@2122
    93
      build properly (yet), so you'll have to say 'N' here.
yann@2122
    94
yann@2287
    95
# The way LTO works is a bit twisted.
yann@2287
    96
# See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
yann@2287
    97
# Basically:
yann@2287
    98
#   - if binutils has plugins: LTO is handled by ld/gold by loading
yann@2287
    99
#     the plugin when linking
yann@2287
   100
#   - if binutils does not have plugins: LTO is handled by collect2
yann@2287
   101
# In any case, LTO support does not depend on plugins, but takes
yann@2287
   102
# advantage of it
yann@2363
   103
# Also, only the 4.5 series needs libelf for LTO; 4.6 has dropped
yann@2363
   104
# the dependency.
yann@2122
   105
config CC_GCC_USE_LTO
yann@2122
   106
    bool
yann@2122
   107
    prompt "Enable LTO"
yann@2122
   108
    default y
yann@2122
   109
    depends on CC_GCC_HAS_LTO
yann@2362
   110
    select CC_GCC_USE_LIBELF if CC_GCC_4_5
yann@2122
   111
    help
yann@2122
   112
      Enable the Link Time Optimisations.
yann@2122
   113
      
yann@2122
   114
      This will require the libelf companion library, and it
yann@2122
   115
      wil be build automatically for you.
yann@2122
   116
yann@2415
   117
#-----------------------------------------------------------------------------
yann@2415
   118
comment "Settings for libraries running on target"
bryanhundven@2211
   119
yann@2415
   120
config CC_GCC_ENABLE_TARGET_OPTSPACE
js@2045
   121
    bool
yann@2415
   122
    prompt "Optimize gcc libs for size"
js@2045
   123
    default y
js@2045
   124
    help
yann@2415
   125
      Pass --enable-target-optspace to crossgcc's configure.
yann@2415
   126
      
yann@2415
   127
      This will compile crossgcc's libs with -Os.
js@2045
   128
yann@2144
   129
config CC_GCC_LIBMUDFLAP
yann@2144
   130
    bool
yann@2144
   131
    prompt "Compile libmudflap"
yann@2144
   132
    help
yann@2144
   133
      libmudflap is a pointer-use checking tool, which can detect
yann@2144
   134
      various mis-usages of pointers in C and (to some extents) C++.
yann@2144
   135
      
yann@2144
   136
      You should say 'N' here, as libmduflap generates instrumented
yann@2144
   137
      code (thus it is a bit bigger and a bit slower) and requires
yann@2144
   138
      re-compilation and re-link, while it exists better run-time
yann@2144
   139
      alternatives (eg. DUMA, dmalloc...) that need neither re-
yann@2144
   140
      compilation nor re-link.
yann@2144
   141
yann@2145
   142
config CC_GCC_LIBGOMP
yann@2145
   143
    bool
yann@2145
   144
    prompt "Compile libgomp"
yann@2145
   145
    help
yann@2145
   146
      libgomp is "the GNU implementation of the OpenMP Application Programming
yann@2145
   147
      Interface (API) for multi-platform shared-memory parallel programming in
yann@2145
   148
      C/C++ and Fortran". See:
yann@2145
   149
        http://gcc.gnu.org/onlinedocs/libgomp/
yann@2145
   150
      
yann@2145
   151
      The default is 'N'. Say 'Y' if you need it, and report success/failure.
yann@2145
   152
yann@2146
   153
config CC_GCC_LIBSSP
yann@2146
   154
    bool
yann@2146
   155
    prompt "Compile libssp"
yann@2146
   156
    help
yann@2146
   157
      libssp is the run-time Stack-Smashing Protection library.
yann@2146
   158
      
yann@2146
   159
      The default is 'N'. Say 'Y' if you need it, and report success/failure.
yann@2146
   160
yann@2144
   161
#-----------------------------------------------------------------------------
yann@2144
   162
yann@2041
   163
comment "Misc. obscure options."
yann@2041
   164
yann@2041
   165
config CC_CXA_ATEXIT
yann@2041
   166
    bool
yann@2041
   167
    prompt "Use __cxa_atexit"
yann@2041
   168
    default y
yann@2041
   169
    depends on ! BARE_METAL
yann@2041
   170
    help
yann@2041
   171
      If you get the missing symbol "__cxa_atexit" when building C++ programs,
yann@2041
   172
      you might want to try disabling this option.
yann@2041
   173
yann@2041
   174
config CC_GCC_DISABLE_PCH
yann@2041
   175
    bool
yann@2041
   176
    prompt "Do not build PCH"
yann@2041
   177
    help
yann@2041
   178
      Say 'y' here to not use Pre-Compiled Headers in the resulting toolchain.
yann@2041
   179
      at the expense of speed when compiling C++ code.
yann@2041
   180
      
yann@2041
   181
      For some configurations (most notably canadian?), PCH are broken, and
yann@2041
   182
      need to be disabled. Please see:
yann@2041
   183
        http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40974
yann@2041
   184
yann@2042
   185
config CC_GCC_SJLJ_EXCEPTIONS
yann@2042
   186
    tristate
yann@2041
   187
    prompt "Use sjlj for exceptions"
yann@2054
   188
    depends on ! BARE_METAL
yann@2042
   189
    default m
yann@2041
   190
    help
yann@2042
   191
      'sjlj' is short for setjmp/longjmp.
yann@2041
   192
      
yann@2042
   193
      On some architectures, stack unwinding during exception handling
yann@2042
   194
      works perfectly well without using sjlj, while on some others,
yann@2042
   195
      use of sjlj is required for proper stack unwinding.
yann@2041
   196
      
yann@2042
   197
       Option  | sjlj use           | Associated ./configure switch
yann@2042
   198
      ---------+--------------------+--------------------------------
yann@2042
   199
         Y     | forcibly used      | --enable-sjlj-exceptions
yann@2042
   200
         M     | auto               | (none, ./configure decides)
yann@2042
   201
         N     | forcibly not used  | --disable-sjlj-exceptions
yann@2041
   202
      
yann@2042
   203
      It should be safe to say 'M' or 'N'.
yann@2042
   204
      
yann@2042
   205
      It can happen that ./configure is wrong in some cases. Known
yann@2042
   206
      case is for ARM big endian, where you should say 'N'.
yann@2043
   207
yann@2143
   208
config CC_GCC_LDBL_128
yann@2143
   209
    tristate
yann@2143
   210
    prompt "Enable 128-bit long doubles"
yann@2143
   211
    default m
yann@2143
   212
    depends on CC_GCC_4_2_or_later
yann@2143
   213
    help
yann@2143
   214
      Saying 'Y' will force gcc to use 128-bit wide long doubles
yann@2143
   215
      Saying 'N' will force gcc to use 64-bit wide long doubles
yann@2143
   216
      Saying 'M' will let gcc choose (default is 128-bit for
yann@2143
   217
                 glibc >= 2.4, 64-bit otherwise)
yann@2143
   218
      
yann@2143
   219
      If in doubt, keep the default, ie. 'M'.