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