config/cc/gcc.in.2
author "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
Wed May 25 20:23:48 2011 +0200 (2011-05-25)
changeset 2476 7690196856ce
parent 2467 200836977ce6
child 2484 d1a8c2ae7946
permissions -rw-r--r--
debug/gdb: fix runtime sysroot

This patch sets the runtime sysroot to fix the following GDB warning:
"Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code."

The sysroot can later be changed within gdb with the `set sysroot`
command if necessary.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
yann@2415
     1
# gcc configuration options
yann@2144
     2
yann@2415
     3
config CC_PKGVERSION
yann@2415
     4
    string
yann@2415
     5
    prompt "gcc ID string"
yann@2415
     6
    depends on CC_GCC_4_3_or_later
yann@2415
     7
    default "crosstool-NG-${CT_VERSION}"
yann@2415
     8
    help
yann@2415
     9
      Specify a string that identifies your package. You may wish to include
yann@2415
    10
      a build number or build date. This version string will be included in
yann@2415
    11
      the output of gcc --version.
yann@2415
    12
yann@2415
    13
      This is passed to the configure flag --with-pkgversion.
yann@2415
    14
yann@2415
    15
config CC_BUGURL
yann@2415
    16
    string
yann@2415
    17
    prompt "gcc bug URL"
yann@2415
    18
    depends on CC_GCC_4_3_or_later
yann@2415
    19
    default ""
yann@2415
    20
    help
yann@2415
    21
      Specify the URL that users should visit if they wish to report a bug.
yann@2415
    22
yann@2415
    23
config CC_ENABLE_CXX_FLAGS
yann@2415
    24
    string
yann@2415
    25
    prompt "Flags to pass to --enable-cxx-flags"
yann@2415
    26
    default ""
yann@2415
    27
    help
yann@2415
    28
      Enter here the value of the gcc's ./configure option --enable-cxx-flags.
yann@2415
    29
      Leave empty if you don't know better.
yann@2415
    30
      
yann@2415
    31
      Note: just pass in the option _value_, that is only the part that goes
yann@2415
    32
      after the '=' sign.
yann@2415
    33
yann@2467
    34
config CC_CORE_EXTRA_CONFIG_ARRAY
yann@2415
    35
    string
yann@2415
    36
    prompt "Core gcc extra config"
yann@2415
    37
    default ""
yann@2415
    38
    help
yann@2415
    39
      Extra flags to pass onto ./configure when configuring the core gcc.
yann@2415
    40
      
yann@2415
    41
      The core gcc is a stripped down, C-only compiler needed to build
yann@2415
    42
      the C library. Kinda bootstrap gcc, if you wish.
yann@2469
    43
      
yann@2469
    44
      You can enter multiple arguments here, and arguments can contain spaces
yann@2469
    45
      if they are properly quoted (or escaped, but prefer quotes). Eg.:
yann@2469
    46
          --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
yann@2415
    47
yann@2467
    48
config CC_EXTRA_CONFIG_ARRAY
yann@2415
    49
    string
yann@2415
    50
    prompt "gcc extra config"
yann@2415
    51
    default ""
yann@2415
    52
    depends on ! BARE_METAL
yann@2415
    53
    help
yann@2415
    54
      Extra flags to pass onto ./configure when configuring gcc.
yann@2469
    55
      
yann@2469
    56
      You can enter multiple arguments here, and arguments can contain spaces
yann@2469
    57
      if they are properly quoted (or escaped, but prefer quotes). Eg.:
yann@2469
    58
          --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
yann@2415
    59
yann@2415
    60
config STATIC_TOOLCHAIN
yann@2415
    61
    select CC_STATIC_LIBSTDCXX if CC_GCC_4_4_or_later
yann@2415
    62
yann@2415
    63
config CC_STATIC_LIBSTDCXX
yann@2041
    64
    bool
yann@2415
    65
    prompt "Link libstdc++ statically into the gcc binary"
yann@2041
    66
    default y
yann@2415
    67
    depends on CC_GCC_4_4_or_later
yann@2041
    68
    help
yann@2415
    69
      Newer gcc versions use the PPL library which is C++ code.  Statically
yann@2415
    70
      linking libstdc++ increases the likeliness that the gcc binary will
yann@2415
    71
      run on machines other than the one which it was built on, without
yann@2415
    72
      having to worry about distributing the matching version of libstdc++
yann@2415
    73
      along with it.
yann@2415
    74
yann@2415
    75
#-----------------------------------------------------------------------------
yann@2415
    76
# Optimisation features
yann@2415
    77
yann@2415
    78
comment "Optimisation features"
yann@2041
    79
yann@2122
    80
config CC_GCC_USE_GRAPHITE
yann@2122
    81
    bool
yann@2122
    82
    prompt "Enable GRAPHITE loop optimisations"
yann@2122
    83
    default y
yann@2122
    84
    depends on CC_GCC_HAS_GRAPHITE
yann@2122
    85
    select CC_GCC_USE_PPL_CLOOG
yann@2122
    86
    help
yann@2122
    87
      Enable the GRAPHITE loop optimsations.
yann@2122
    88
      
yann@2122
    89
      This requires the PPL and CLooG companion libraries, and
yann@2122
    90
      those will be automatically build for you.
yann@2122
    91
      
yann@2122
    92
      On some systems (eg. Cygwin), PPL and/or CLooG may not
yann@2122
    93
      build properly (yet), so you'll have to say 'N' here.
yann@2122
    94
yann@2287
    95
# The way LTO works is a bit twisted.
yann@2287
    96
# See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
yann@2287
    97
# Basically:
yann@2287
    98
#   - if binutils has plugins: LTO is handled by ld/gold by loading
yann@2287
    99
#     the plugin when linking
yann@2287
   100
#   - if binutils does not have plugins: LTO is handled by collect2
yann@2287
   101
# In any case, LTO support does not depend on plugins, but takes
yann@2287
   102
# advantage of it
yann@2363
   103
# Also, only the 4.5 series needs libelf for LTO; 4.6 has dropped
yann@2363
   104
# the dependency.
yann@2122
   105
config CC_GCC_USE_LTO
yann@2122
   106
    bool
yann@2122
   107
    prompt "Enable LTO"
yann@2122
   108
    default y
yann@2122
   109
    depends on CC_GCC_HAS_LTO
yann@2362
   110
    select CC_GCC_USE_LIBELF if CC_GCC_4_5
yann@2122
   111
    help
yann@2122
   112
      Enable the Link Time Optimisations.
yann@2122
   113
      
yann@2122
   114
      This will require the libelf companion library, and it
yann@2122
   115
      wil be build automatically for you.
yann@2122
   116
yann@2415
   117
#-----------------------------------------------------------------------------
yann@2415
   118
comment "Settings for libraries running on target"
bryanhundven@2211
   119
yann@2415
   120
config CC_GCC_ENABLE_TARGET_OPTSPACE
js@2045
   121
    bool
yann@2415
   122
    prompt "Optimize gcc libs for size"
js@2045
   123
    default y
js@2045
   124
    help
yann@2415
   125
      Pass --enable-target-optspace to crossgcc's configure.
yann@2415
   126
      
yann@2415
   127
      This will compile crossgcc's libs with -Os.
js@2045
   128
yann@2144
   129
config CC_GCC_LIBMUDFLAP
yann@2144
   130
    bool
yann@2144
   131
    prompt "Compile libmudflap"
yann@2144
   132
    default n
yann@2144
   133
    help
yann@2144
   134
      libmudflap is a pointer-use checking tool, which can detect
yann@2144
   135
      various mis-usages of pointers in C and (to some extents) C++.
yann@2144
   136
      
yann@2144
   137
      You should say 'N' here, as libmduflap generates instrumented
yann@2144
   138
      code (thus it is a bit bigger and a bit slower) and requires
yann@2144
   139
      re-compilation and re-link, while it exists better run-time
yann@2144
   140
      alternatives (eg. DUMA, dmalloc...) that need neither re-
yann@2144
   141
      compilation nor re-link.
yann@2144
   142
yann@2145
   143
config CC_GCC_LIBGOMP
yann@2145
   144
    bool
yann@2145
   145
    prompt "Compile libgomp"
yann@2145
   146
    default n
yann@2145
   147
    help
yann@2145
   148
      libgomp is "the GNU implementation of the OpenMP Application Programming
yann@2145
   149
      Interface (API) for multi-platform shared-memory parallel programming in
yann@2145
   150
      C/C++ and Fortran". See:
yann@2145
   151
        http://gcc.gnu.org/onlinedocs/libgomp/
yann@2145
   152
      
yann@2145
   153
      The default is 'N'. Say 'Y' if you need it, and report success/failure.
yann@2145
   154
yann@2146
   155
config CC_GCC_LIBSSP
yann@2146
   156
    bool
yann@2146
   157
    prompt "Compile libssp"
yann@2146
   158
    default n
yann@2146
   159
    help
yann@2146
   160
      libssp is the run-time Stack-Smashing Protection library.
yann@2146
   161
      
yann@2146
   162
      The default is 'N'. Say 'Y' if you need it, and report success/failure.
yann@2146
   163
yann@2144
   164
#-----------------------------------------------------------------------------
yann@2144
   165
yann@2041
   166
comment "Misc. obscure options."
yann@2041
   167
yann@2041
   168
config CC_CXA_ATEXIT
yann@2041
   169
    bool
yann@2041
   170
    prompt "Use __cxa_atexit"
yann@2041
   171
    default y
yann@2041
   172
    depends on ! BARE_METAL
yann@2041
   173
    help
yann@2041
   174
      If you get the missing symbol "__cxa_atexit" when building C++ programs,
yann@2041
   175
      you might want to try disabling this option.
yann@2041
   176
yann@2041
   177
config CC_GCC_DISABLE_PCH
yann@2041
   178
    bool
yann@2041
   179
    prompt "Do not build PCH"
yann@2041
   180
    default n
yann@2041
   181
    help
yann@2041
   182
      Say 'y' here to not use Pre-Compiled Headers in the resulting toolchain.
yann@2041
   183
      at the expense of speed when compiling C++ code.
yann@2041
   184
      
yann@2041
   185
      For some configurations (most notably canadian?), PCH are broken, and
yann@2041
   186
      need to be disabled. Please see:
yann@2041
   187
        http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40974
yann@2041
   188
yann@2042
   189
config CC_GCC_SJLJ_EXCEPTIONS
yann@2042
   190
    tristate
yann@2041
   191
    prompt "Use sjlj for exceptions"
yann@2054
   192
    depends on ! BARE_METAL
yann@2042
   193
    default m
yann@2041
   194
    help
yann@2042
   195
      'sjlj' is short for setjmp/longjmp.
yann@2041
   196
      
yann@2042
   197
      On some architectures, stack unwinding during exception handling
yann@2042
   198
      works perfectly well without using sjlj, while on some others,
yann@2042
   199
      use of sjlj is required for proper stack unwinding.
yann@2041
   200
      
yann@2042
   201
       Option  | sjlj use           | Associated ./configure switch
yann@2042
   202
      ---------+--------------------+--------------------------------
yann@2042
   203
         Y     | forcibly used      | --enable-sjlj-exceptions
yann@2042
   204
         M     | auto               | (none, ./configure decides)
yann@2042
   205
         N     | forcibly not used  | --disable-sjlj-exceptions
yann@2041
   206
      
yann@2042
   207
      It should be safe to say 'M' or 'N'.
yann@2042
   208
      
yann@2042
   209
      It can happen that ./configure is wrong in some cases. Known
yann@2042
   210
      case is for ARM big endian, where you should say 'N'.
yann@2043
   211
yann@2143
   212
config CC_GCC_LDBL_128
yann@2143
   213
    tristate
yann@2143
   214
    prompt "Enable 128-bit long doubles"
yann@2143
   215
    default m
yann@2143
   216
    depends on CC_GCC_4_2_or_later
yann@2143
   217
    help
yann@2143
   218
      Saying 'Y' will force gcc to use 128-bit wide long doubles
yann@2143
   219
      Saying 'N' will force gcc to use 64-bit wide long doubles
yann@2143
   220
      Saying 'M' will let gcc choose (default is 128-bit for
yann@2143
   221
                 glibc >= 2.4, 64-bit otherwise)
yann@2143
   222
      
yann@2143
   223
      If in doubt, keep the default, ie. 'M'.