config/cc/gcc.in.2
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Sep 12 20:54:54 2010 +0200 (2010-09-12)
changeset 2122 eb837be50f8f
parent 2054 2ec4260a4692
child 2143 c7126e94e286
permissions -rw-r--r--
cc/gcc: do not force use of non-vital companion libraries

While GMP and MPFR are required by gcc>=4.3 (to build the frontends),
and MPC is required by gcc>=4.5, the other libs are not. If they are
present then gcc will enable advanced features; if they are missing,
then gcc will (should) simply disable those features.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 config CC_GCC_ENABLE_TARGET_OPTSPACE
     2     bool
     3     prompt "Optimize gcc libs for size"
     4     default y
     5     help
     6       Pass --enable-target-optspace to crossgcc's configure.
     7       
     8       This will compile crossgcc's libs with -Os.
     9 
    10 config CC_GCC_USE_GRAPHITE
    11     bool
    12     prompt "Enable GRAPHITE loop optimisations"
    13     default y
    14     depends on CC_GCC_HAS_GRAPHITE
    15     select CC_GCC_USE_PPL_CLOOG
    16     help
    17       Enable the GRAPHITE loop optimsations.
    18       
    19       This requires the PPL and CLooG companion libraries, and
    20       those will be automatically build for you.
    21       
    22       On some systems (eg. Cygwin), PPL and/or CLooG may not
    23       build properly (yet), so you'll have to say 'N' here.
    24 
    25 config CC_GCC_USE_LTO
    26     bool
    27     prompt "Enable LTO"
    28     default y
    29     depends on CC_GCC_HAS_LTO
    30     select CC_GCC_USE_LIBELF
    31     help
    32       Enable the Link Time Optimisations.
    33       
    34       This will require the libelf companion library, and it
    35       wil be build automatically for you.
    36 
    37 config CC_STATIC_LIBSTDCXX
    38     bool
    39     prompt "Link libstdc++ statically into the gcc binary"
    40     default y
    41     depends on CC_GCC_4_4_or_later
    42     help
    43       Newer gcc versions use the PPL library which is C++ code.  Statically
    44       linking libstdc++ increases the likeliness that the gcc binary will
    45       run on machines other than the one which it was built on, without
    46       having to worry about distributing the matching version of libstdc++
    47       along with it.
    48 
    49 comment "Misc. obscure options."
    50 
    51 config CC_CXA_ATEXIT
    52     bool
    53     prompt "Use __cxa_atexit"
    54     default y
    55     depends on ! BARE_METAL
    56     help
    57       If you get the missing symbol "__cxa_atexit" when building C++ programs,
    58       you might want to try disabling this option.
    59 
    60 config CC_GCC_DISABLE_PCH
    61     bool
    62     prompt "Do not build PCH"
    63     default n
    64     help
    65       Say 'y' here to not use Pre-Compiled Headers in the resulting toolchain.
    66       at the expense of speed when compiling C++ code.
    67       
    68       For some configurations (most notably canadian?), PCH are broken, and
    69       need to be disabled. Please see:
    70         http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40974
    71 
    72 config CC_GCC_SJLJ_EXCEPTIONS
    73     tristate
    74     prompt "Use sjlj for exceptions"
    75     depends on ! BARE_METAL
    76     default m
    77     help
    78       'sjlj' is short for setjmp/longjmp.
    79       
    80       On some architectures, stack unwinding during exception handling
    81       works perfectly well without using sjlj, while on some others,
    82       use of sjlj is required for proper stack unwinding.
    83       
    84        Option  | sjlj use           | Associated ./configure switch
    85       ---------+--------------------+--------------------------------
    86          Y     | forcibly used      | --enable-sjlj-exceptions
    87          M     | auto               | (none, ./configure decides)
    88          N     | forcibly not used  | --disable-sjlj-exceptions
    89       
    90       It should be safe to say 'M' or 'N'.
    91       
    92       It can happen that ./configure is wrong in some cases. Known
    93       case is for ARM big endian, where you should say 'N'.
    94 
    95 config CC_GCC_LIBMUDFLAP
    96     bool
    97     prompt "Compile libmudflap"
    98     default n
    99     help
   100       libmudflap is a pointer-use checking tool, which can detect
   101       various mis-usages of pointers in C and (to some extents) C++.
   102       
   103       You should say 'N' here, as libmduflap generates instrumented
   104       code (thus it is a bit bigger and a bit slower) and requires
   105       re-compilation and re-link, while it exists better run-time
   106       alternatives (eg. DUMA, dmalloc...) that need neither re-
   107       compilation nor re-link.