config/cc/gcc.in.2
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Wed May 18 23:00:46 2011 +0200 (2011-05-18)
changeset 2467 200836977ce6
parent 2415 ae9899116f19
child 2469 3b08a7927e55
permissions -rw-r--r--
config: rename variables that are arrays

Make it explicit that a variable is an array bu the name of the variable.
It will be used later when .config gets munged to allow both multiple
arguments and arguments with spaces at the same time to be passed from the
configuration down to the build scripts.

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