config/cc/gcc.in.2
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Wed Jun 25 23:33:01 2014 +0200 (2014-06-25)
changeset 3325 069f43a215cc
parent 3279 c4b4bb58f639
permissions -rw-r--r--
all: fix wildcard to work with make-4.x

In make-3.8x, the $(wildacrd) function would sort the entries,
while in make-4.x, it would just return the entries in any
unpredictable order [*]

Use the $(sort) function to get reproducible behaviour.

[*] Well, most probably the roder the entries appear when read
from readdir()

Reported-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
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 ""
dev@3312
    18
    depends on CC_CORE_PASS_1_NEEDED || CC_CORE_PASS_2_NEEDED
yann@2415
    19
    help
yann@2415
    20
      Extra flags to pass onto ./configure when configuring the core gcc.
yann@2415
    21
      
yann@2415
    22
      The core gcc is a stripped down, C-only compiler needed to build
yann@2415
    23
      the C library. Kinda bootstrap gcc, if you wish.
yann@2469
    24
      
yann@2469
    25
      You can enter multiple arguments here, and arguments can contain spaces
yann@2469
    26
      if they are properly quoted (or escaped, but prefer quotes). Eg.:
yann@2469
    27
          --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
yann@2415
    28
yann@2467
    29
config CC_EXTRA_CONFIG_ARRAY
yann@2415
    30
    string
yann@2415
    31
    prompt "gcc extra config"
yann@2415
    32
    default ""
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@3279
   258
choice CC_GCC_DEC_FLOATS_CHOICE
yann@3279
   259
    bool "Decimal floats"
yann@3279
   260
    default CC_GCC_DEC_FLOATS_AUTO
yann@3279
   261
    help
yann@3279
   262
      Choose what type of decimal floats to support.
yann@3279
   263
      
yann@3279
   264
      Note that using decimal floats requires a C library that provides
yann@3279
   265
      support for fenv (namely, the fenv.h header).  This is the case
yann@3279
   266
      for (e)glibc, and uClibc on x86/32.  For other C libraries, or
yann@3279
   267
      uClibc on other archs, this might not be the case, so you should
yann@3279
   268
      disable support for decimal floats.
yann@3279
   269
      
yann@3279
   270
      The default is to let ./configure decide.
yann@3279
   271
yann@3279
   272
config CC_GCC_DEC_FLOAT_AUTO
yann@3279
   273
    bool "auto"
yann@3279
   274
    help
yann@3279
   275
      Let ./configure decide. If you say 'y' here, gcc will default to:
yann@3279
   276
        - 'bid' for x86 (32- and 64-bit)
yann@3279
   277
        - 'dpd' for powerpc
yann@3279
   278
        - 'no' for the other architectures
yann@3279
   279
yann@3279
   280
config CC_GCC_DEC_FLOAT_BID
yann@3279
   281
    bool "bid"
yann@3279
   282
    help
yann@3279
   283
      Use the 'binary integer decimal' format for decimal floats.
yann@3279
   284
yann@3279
   285
config CC_GCC_DEC_FLOAT_DPD
yann@3279
   286
    bool "dpd"
yann@3279
   287
    help
yann@3279
   288
      Use the 'densely packed decimal' for decimal floats.
yann@3279
   289
yann@3279
   290
config CC_GCC_DEC_FLOATS_NO
yann@3279
   291
    bool "no"
yann@3279
   292
    help
yann@3279
   293
      Do not support decimal floats. The default.
yann@3279
   294
yann@3279
   295
endchoice # CC_GCC_DEC_FLOATS_CHOICE
yann@3279
   296
yann@3279
   297
config CC_GCC_DEC_FLOATS
yann@3279
   298
    string
yann@3279
   299
    default ""      if CC_GCC_DEC_FLOATS_AUTO
yann@3279
   300
    default "bid"   if CC_GCC_DEC_FLOATS_BID
yann@3279
   301
    default "dpd"   if CC_GCC_DEC_FLOATS_DPD
yann@3279
   302
    default "no"    if CC_GCC_DEC_FLOATS_NO
yann@3279
   303
yann@2523
   304
#-----------------------------------------------------------------------------
yann@2523
   305
yann@2523
   306
config CC_GCC_HAS_ARCH_OPTIONS
yann@2523
   307
    bool
yann@2523
   308
yann@2523
   309
comment "archictecture-specific options"
yann@2523
   310
    depends on CC_GCC_HAS_ARCH_OPTIONS
yann@2523
   311
yann@2523
   312
if ARCH_mips
yann@2523
   313
source "config/cc/gcc.in.mips"
yann@2523
   314
endif # ARCH_mips