config/cc/gcc.in.2
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Tue Jul 31 22:27:29 2012 +0200 (2012-07-31)
changeset 3018 7776e8369284
parent 2948 3396ce2c25ef
child 3150 1d6fd9bde73c
permissions -rw-r--r--
complibs/cloog: create missing m4 dir

Because we now patch configure.in and configure, the Makefile quicks
in a re-build rule as the source files are now more recent than the
bundled generated files, and that fails because the m4 directory
is missing, although on some systems where aclocal is not installed,
the re-build rule does nothing (except a warning).

Always create tht directory.

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