config/cc/gcc.in.2
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Wed May 18 23:42:57 2011 +0200 (2011-05-18)
changeset 2469 3b08a7927e55
parent 2467 200836977ce6
child 2484 d1a8c2ae7946
permissions -rw-r--r--
config: document array-capable variables

Update help entries for thos variables that accept multiple
arguments with spaces (aka. array-capable variables).

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