config/cc/gcc.in.2
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Fri Jan 28 18:53:37 2011 +0100 (2011-01-28)
changeset 2287 61608c9365ab
parent 2211 2f67667ee385
child 2362 0888065f8c4d
permissions -rw-r--r--
cc/gcc: enable plugins if needed

Enabling plugins in binutils is not enough, and gcc also
needs to be ./configured with --enable-plugins, although
this is not documented anywhere... :-/

Reported-by: karthik duraisami <kdconstant@hotmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 # Misc library-related options
     2 
     3 config CC_GCC_ENABLE_TARGET_OPTSPACE
     4     bool
     5     prompt "Optimize gcc libs for size"
     6     default y
     7     help
     8       Pass --enable-target-optspace to crossgcc's configure.
     9       
    10       This will compile crossgcc's libs with -Os.
    11 
    12 config CC_GCC_USE_GRAPHITE
    13     bool
    14     prompt "Enable GRAPHITE loop optimisations"
    15     default y
    16     depends on CC_GCC_HAS_GRAPHITE
    17     select CC_GCC_USE_PPL_CLOOG
    18     help
    19       Enable the GRAPHITE loop optimsations.
    20       
    21       This requires the PPL and CLooG companion libraries, and
    22       those will be automatically build for you.
    23       
    24       On some systems (eg. Cygwin), PPL and/or CLooG may not
    25       build properly (yet), so you'll have to say 'N' here.
    26 
    27 # The way LTO works is a bit twisted.
    28 # See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
    29 # Basically:
    30 #   - if binutils has plugins: LTO is handled by ld/gold by loading
    31 #     the plugin when linking
    32 #   - if binutils does not have plugins: LTO is handled by collect2
    33 # In any case, LTO support does not depend on plugins, but takes
    34 # advantage of it
    35 config CC_GCC_USE_LTO
    36     bool
    37     prompt "Enable LTO"
    38     default y
    39     depends on CC_GCC_HAS_LTO
    40     select CC_GCC_USE_LIBELF
    41     help
    42       Enable the Link Time Optimisations.
    43       
    44       This will require the libelf companion library, and it
    45       wil be build automatically for you.
    46 
    47 config STATIC_TOOLCHAIN
    48     select CC_STATIC_LIBSTDCXX if CC_GCC_4_4_or_later
    49 
    50 config CC_STATIC_LIBSTDCXX
    51     bool
    52     prompt "Link libstdc++ statically into the gcc binary"
    53     default y
    54     depends on CC_GCC_4_4_or_later
    55     help
    56       Newer gcc versions use the PPL library which is C++ code.  Statically
    57       linking libstdc++ increases the likeliness that the gcc binary will
    58       run on machines other than the one which it was built on, without
    59       having to worry about distributing the matching version of libstdc++
    60       along with it.
    61 
    62 config CC_GCC_LIBMUDFLAP
    63     bool
    64     prompt "Compile libmudflap"
    65     default n
    66     help
    67       libmudflap is a pointer-use checking tool, which can detect
    68       various mis-usages of pointers in C and (to some extents) C++.
    69       
    70       You should say 'N' here, as libmduflap generates instrumented
    71       code (thus it is a bit bigger and a bit slower) and requires
    72       re-compilation and re-link, while it exists better run-time
    73       alternatives (eg. DUMA, dmalloc...) that need neither re-
    74       compilation nor re-link.
    75 
    76 config CC_GCC_LIBGOMP
    77     bool
    78     prompt "Compile libgomp"
    79     default n
    80     help
    81       libgomp is "the GNU implementation of the OpenMP Application Programming
    82       Interface (API) for multi-platform shared-memory parallel programming in
    83       C/C++ and Fortran". See:
    84         http://gcc.gnu.org/onlinedocs/libgomp/
    85       
    86       The default is 'N'. Say 'Y' if you need it, and report success/failure.
    87 
    88 config CC_GCC_LIBSSP
    89     bool
    90     prompt "Compile libssp"
    91     default n
    92     help
    93       libssp is the run-time Stack-Smashing Protection library.
    94       
    95       The default is 'N'. Say 'Y' if you need it, and report success/failure.
    96 
    97 #-----------------------------------------------------------------------------
    98 
    99 comment "Misc. obscure options."
   100 
   101 config CC_CXA_ATEXIT
   102     bool
   103     prompt "Use __cxa_atexit"
   104     default y
   105     depends on ! BARE_METAL
   106     help
   107       If you get the missing symbol "__cxa_atexit" when building C++ programs,
   108       you might want to try disabling this option.
   109 
   110 config CC_GCC_DISABLE_PCH
   111     bool
   112     prompt "Do not build PCH"
   113     default n
   114     help
   115       Say 'y' here to not use Pre-Compiled Headers in the resulting toolchain.
   116       at the expense of speed when compiling C++ code.
   117       
   118       For some configurations (most notably canadian?), PCH are broken, and
   119       need to be disabled. Please see:
   120         http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40974
   121 
   122 config CC_GCC_SJLJ_EXCEPTIONS
   123     tristate
   124     prompt "Use sjlj for exceptions"
   125     depends on ! BARE_METAL
   126     default m
   127     help
   128       'sjlj' is short for setjmp/longjmp.
   129       
   130       On some architectures, stack unwinding during exception handling
   131       works perfectly well without using sjlj, while on some others,
   132       use of sjlj is required for proper stack unwinding.
   133       
   134        Option  | sjlj use           | Associated ./configure switch
   135       ---------+--------------------+--------------------------------
   136          Y     | forcibly used      | --enable-sjlj-exceptions
   137          M     | auto               | (none, ./configure decides)
   138          N     | forcibly not used  | --disable-sjlj-exceptions
   139       
   140       It should be safe to say 'M' or 'N'.
   141       
   142       It can happen that ./configure is wrong in some cases. Known
   143       case is for ARM big endian, where you should say 'N'.
   144 
   145 config CC_GCC_LDBL_128
   146     tristate
   147     prompt "Enable 128-bit long doubles"
   148     default m
   149     depends on CC_GCC_4_2_or_later
   150     help
   151       Saying 'Y' will force gcc to use 128-bit wide long doubles
   152       Saying 'N' will force gcc to use 64-bit wide long doubles
   153       Saying 'M' will let gcc choose (default is 128-bit for
   154                  glibc >= 2.4, 64-bit otherwise)
   155       
   156       If in doubt, keep the default, ie. 'M'.