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>
     1 # gcc configuration options
     2 
     3 config CC_ENABLE_CXX_FLAGS
     4     string
     5     prompt "Flags to pass to --enable-cxx-flags"
     6     default ""
     7     help
     8       Enter here the value of the gcc's ./configure option --enable-cxx-flags.
     9       Leave empty if you don't know better.
    10       
    11       Note: just pass in the option _value_, that is only the part that goes
    12       after the '=' sign.
    13 
    14 config CC_CORE_EXTRA_CONFIG_ARRAY
    15     string
    16     prompt "Core gcc extra config"
    17     default ""
    18     depends on CC_CORE_PASS_1_NEEDED || CC_CORE_PASS_2_NEEDED
    19     help
    20       Extra flags to pass onto ./configure when configuring the core gcc.
    21       
    22       The core gcc is a stripped down, C-only compiler needed to build
    23       the C library. Kinda bootstrap gcc, if you wish.
    24       
    25       You can enter multiple arguments here, and arguments can contain spaces
    26       if they are properly quoted (or escaped, but prefer quotes). Eg.:
    27           --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
    28 
    29 config CC_EXTRA_CONFIG_ARRAY
    30     string
    31     prompt "gcc extra config"
    32     default ""
    33     help
    34       Extra flags to pass onto ./configure when configuring gcc.
    35       
    36       You can enter multiple arguments here, and arguments can contain spaces
    37       if they are properly quoted (or escaped, but prefer quotes). Eg.:
    38           --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
    39 
    40 config STATIC_TOOLCHAIN
    41     select CC_STATIC_LIBSTDCXX if CC_GCC_4_4_or_later
    42 
    43 config CC_STATIC_LIBSTDCXX
    44     bool
    45     prompt "Link libstdc++ statically into the gcc binary"
    46     default y
    47     depends on CC_GCC_4_4_or_later
    48     select WANTS_STATIC_LINK
    49     help
    50       Newer gcc versions use the PPL library which is C++ code.  Statically
    51       linking libstdc++ increases the likeliness that the gcc binary will
    52       run on machines other than the one which it was built on, without
    53       having to worry about distributing the matching version of libstdc++
    54       along with it.
    55 
    56 config CC_GCC_SYSTEM_ZLIB
    57     bool
    58     prompt "Use system zlib"
    59     help
    60       Do not use bundled zlib, and use the zlib already available for
    61       the host (eg. the system library).
    62       
    63       If you want to build a static toolchain, you will need to also
    64       install the static version of zlib for your host.
    65       
    66       If unsure, say 'n'.
    67 
    68 #-----------------------------------------------------------------------------
    69 # Optimisation features
    70 
    71 comment "Optimisation features"
    72 
    73 # Defined in config/cc/gcc.in
    74 config CC_GCC_USE_GRAPHITE
    75     prompt "Enable GRAPHITE loop optimisations"
    76 
    77 # The way LTO works is a bit twisted.
    78 # See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
    79 # Basically:
    80 #   - if binutils has plugins: LTO is handled by ld/gold by loading
    81 #     the plugin when linking
    82 #   - if binutils does not have plugins: LTO is handled by collect2
    83 # In any case, LTO support does not depend on plugins, but takes
    84 # advantage of it
    85 # Also, only the 4.5 series needs libelf for LTO; 4.6 has dropped
    86 # the dependency.
    87 # Defined in config/cc/gcc.in
    88 config CC_GCC_USE_LTO
    89     prompt "Enable LTO"
    90 
    91 #-----------------------------------------------------------------------------
    92 comment "Settings for libraries running on target"
    93 
    94 config CC_GCC_ENABLE_TARGET_OPTSPACE
    95     bool
    96     prompt "Optimize gcc libs for size"
    97     default y
    98     help
    99       Pass --enable-target-optspace to crossgcc's configure.
   100       
   101       This will compile crossgcc's libs with -Os.
   102 
   103 config CC_GCC_LIBMUDFLAP
   104     bool
   105     prompt "Compile libmudflap"
   106     help
   107       libmudflap is a pointer-use checking tool, which can detect
   108       various mis-usages of pointers in C and (to some extents) C++.
   109       
   110       You should say 'N' here, as libmduflap generates instrumented
   111       code (thus it is a bit bigger and a bit slower) and requires
   112       re-compilation and re-link, while it exists better run-time
   113       alternatives (eg. DUMA, dmalloc...) that need neither re-
   114       compilation nor re-link.
   115 
   116 config CC_GCC_LIBGOMP
   117     bool
   118     prompt "Compile libgomp"
   119     help
   120       libgomp is "the GNU implementation of the OpenMP Application Programming
   121       Interface (API) for multi-platform shared-memory parallel programming in
   122       C/C++ and Fortran". See:
   123         http://gcc.gnu.org/onlinedocs/libgomp/
   124       
   125       The default is 'N'. Say 'Y' if you need it, and report success/failure.
   126 
   127 config CC_GCC_LIBSSP
   128     bool
   129     prompt "Compile libssp"
   130     help
   131       libssp is the run-time Stack-Smashing Protection library.
   132       
   133       The default is 'N'. Say 'Y' if you need it, and report success/failure.
   134 
   135 config CC_GCC_LIBQUADMATH
   136     bool
   137     prompt "Compile libquadmath"
   138     depends on CC_GCC_HAS_LIBQUADMATH
   139     help
   140       libquadmath is a library which provides quad-precision mathematical
   141       functions on targets supporting the __float128 datatype. See:
   142         http://gcc.gnu.org/onlinedocs/libquadmath/
   143       
   144       The default is 'N'. Say 'Y' if you need it, and report success/failure.
   145 
   146 #-----------------------------------------------------------------------------
   147 
   148 comment "Misc. obscure options."
   149 
   150 config CC_CXA_ATEXIT
   151     bool
   152     prompt "Use __cxa_atexit"
   153     default y
   154     depends on ! BARE_METAL
   155     help
   156       If you get the missing symbol "__cxa_atexit" when building C++ programs,
   157       you might want to try disabling this option.
   158 
   159 config CC_GCC_DISABLE_PCH
   160     bool
   161     prompt "Do not build PCH"
   162     help
   163       Say 'y' here to not use Pre-Compiled Headers in the resulting toolchain.
   164       at the expense of speed when compiling C++ code.
   165       
   166       For some configurations (most notably canadian?), PCH are broken, and
   167       need to be disabled. Please see:
   168         http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40974
   169 
   170 config CC_GCC_SJLJ_EXCEPTIONS
   171     tristate
   172     prompt "Use sjlj for exceptions"
   173     depends on ! BARE_METAL
   174     default m
   175     help
   176       'sjlj' is short for setjmp/longjmp.
   177       
   178       On some architectures, stack unwinding during exception handling
   179       works perfectly well without using sjlj, while on some others,
   180       use of sjlj is required for proper stack unwinding.
   181       
   182        Option  | sjlj use           | Associated ./configure switch
   183       ---------+--------------------+--------------------------------
   184          Y     | forcibly used      | --enable-sjlj-exceptions
   185          M     | auto               | (none, ./configure decides)
   186          N     | forcibly not used  | --disable-sjlj-exceptions
   187       
   188       It should be safe to say 'M' or 'N'.
   189       
   190       It can happen that ./configure is wrong in some cases. Known
   191       case is for ARM big endian, where you should say 'N'.
   192 
   193 config CC_GCC_LDBL_128
   194     tristate
   195     prompt "Enable 128-bit long doubles"
   196     default m
   197     depends on CC_GCC_4_2_or_later
   198     help
   199       Saying 'Y' will force gcc to use 128-bit wide long doubles
   200       Saying 'N' will force gcc to use 64-bit wide long doubles
   201       Saying 'M' will let gcc choose (default is 128-bit for
   202                  glibc >= 2.4, 64-bit otherwise)
   203       
   204       If in doubt, keep the default, ie. 'M'.
   205 
   206 config CC_GCC_BUILD_ID
   207     bool
   208     prompt "Enable build-id"
   209     depends on CC_GCC_HAS_BUILD_ID
   210     help
   211       Tells GCC to pass --build-id option to the linker for all final
   212       links (links performed without the -r or --relocatable option),
   213       if the linker supports it. If you say 'y' here, but your linker
   214       does not support --build-id option, a warning is issued and this
   215       option is ignored.
   216       
   217       The default is off.
   218 
   219 choice CC_GCC_LNK_HASH_STYLE_CHOICE
   220     bool
   221     prompt "linker hash style"
   222     depends on CC_GCC_HAS_LNK_HASH_STYLE
   223     depends on BINUTILS_HAS_HASH_STYLE
   224 
   225 config CC_GCC_LNK_HASH_STYLE_DEFAULT
   226     bool
   227     prompt "Default"
   228     help
   229       Do not specify any value, and use the default value (sysv).
   230 
   231 config CC_GCC_LNK_HASH_STYLE_SYSV
   232     bool
   233     prompt "sysv"
   234     help
   235       Force use of the SYSV hash style.
   236 
   237 config CC_GCC_LNK_HASH_STYLE_GNU
   238     bool
   239     prompt "gnu"
   240     help
   241       Force use of the GNU hash style.
   242 
   243 config CC_GCC_LNK_HASH_STYLE_BOTH
   244     bool
   245     prompt "both"
   246     help
   247       Force use of both hash styles.
   248 
   249 endchoice # CC_GCC_LNK_HASH_STYLE_CHOICE
   250 
   251 config CC_GCC_LNK_HASH_STYLE
   252     string
   253     default ""      if CC_GCC_LNK_HASH_STYLE_DEFAULT
   254     default "sysv"  if CC_GCC_LNK_HASH_STYLE_SYSV
   255     default "gnu"   if CC_GCC_LNK_HASH_STYLE_GNU
   256     default "both"  if CC_GCC_LNK_HASH_STYLE_BOTH
   257 
   258 choice CC_GCC_DEC_FLOATS_CHOICE
   259     bool "Decimal floats"
   260     default CC_GCC_DEC_FLOATS_AUTO
   261     help
   262       Choose what type of decimal floats to support.
   263       
   264       Note that using decimal floats requires a C library that provides
   265       support for fenv (namely, the fenv.h header).  This is the case
   266       for (e)glibc, and uClibc on x86/32.  For other C libraries, or
   267       uClibc on other archs, this might not be the case, so you should
   268       disable support for decimal floats.
   269       
   270       The default is to let ./configure decide.
   271 
   272 config CC_GCC_DEC_FLOAT_AUTO
   273     bool "auto"
   274     help
   275       Let ./configure decide. If you say 'y' here, gcc will default to:
   276         - 'bid' for x86 (32- and 64-bit)
   277         - 'dpd' for powerpc
   278         - 'no' for the other architectures
   279 
   280 config CC_GCC_DEC_FLOAT_BID
   281     bool "bid"
   282     help
   283       Use the 'binary integer decimal' format for decimal floats.
   284 
   285 config CC_GCC_DEC_FLOAT_DPD
   286     bool "dpd"
   287     help
   288       Use the 'densely packed decimal' for decimal floats.
   289 
   290 config CC_GCC_DEC_FLOATS_NO
   291     bool "no"
   292     help
   293       Do not support decimal floats. The default.
   294 
   295 endchoice # CC_GCC_DEC_FLOATS_CHOICE
   296 
   297 config CC_GCC_DEC_FLOATS
   298     string
   299     default ""      if CC_GCC_DEC_FLOATS_AUTO
   300     default "bid"   if CC_GCC_DEC_FLOATS_BID
   301     default "dpd"   if CC_GCC_DEC_FLOATS_DPD
   302     default "no"    if CC_GCC_DEC_FLOATS_NO
   303 
   304 #-----------------------------------------------------------------------------
   305 
   306 config CC_GCC_HAS_ARCH_OPTIONS
   307     bool
   308 
   309 comment "archictecture-specific options"
   310     depends on CC_GCC_HAS_ARCH_OPTIONS
   311 
   312 if ARCH_mips
   313 source "config/cc/gcc.in.mips"
   314 endif # ARCH_mips