config/cc/gcc.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Feb 22 23:27:42 2011 +0100 (2011-02-22)
changeset 2316 9139319423fd
parent 2302 e85077497eb1
child 2361 e65be7e72d8a
permissions -rw-r--r--
cc/gcc: do not build plugins for static toolchains

Plugins are shared objects, and when building a toolchain statically,
the gcc build system breaks havok (although there is no hard technical
reasons it should not be possible)...

And consequently, do not enable plugin supoprt in binutils.

Reported-by: Thomas Spurden <thomas@ado.is-a-geek.net>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 # Compiler options
     2 
     3 config CC_gcc
     4     select CC_SUPPORT_CXX
     5     select CC_SUPPORT_FORTRAN
     6     select CC_SUPPORT_JAVA
     7     select CC_SUPPORT_ADA
     8     select CC_SUPPORT_OBJC
     9     select CC_SUPPORT_OBJCXX
    10     help
    11       gcc is the full-blown GNU compiler. This is what most people will choose.
    12       
    13       gcc supports many languages, a powerful code parser, optimised binary
    14       output, and lots of other features.
    15 
    16 choice
    17     bool
    18     prompt "gcc version"
    19 # Don't remove next line
    20 # CT_INSERT_VERSION_BELOW
    21 
    22 config CC_V_linaro_4_5_2011_02_0
    23     bool
    24     prompt "linaro-4.5-2011.02-0 (EXPERIMENTAL)"
    25     depends on EXPERIMENTAL
    26     select CC_GCC_4_5_or_later
    27 
    28 config CC_V_4_5_2
    29     bool
    30     prompt "4.5.2 (EXPERIMENTAL)"
    31     depends on EXPERIMENTAL
    32     select CC_GCC_4_5_or_later
    33 
    34 config CC_V_4_5_1
    35     bool
    36     prompt "4.5.1 (EXPERIMENTAL)"
    37     depends on EXPERIMENTAL
    38     select CC_GCC_4_5_or_later
    39 
    40 config CC_V_4_5_0
    41     bool
    42     prompt "4.5.0 (EXPERIMENTAL)"
    43     depends on EXPERIMENTAL
    44     select CC_GCC_4_5_or_later
    45 
    46 
    47 config CC_V_linaro_4_4_2011_02_0
    48     bool
    49     prompt "linaro-4.4-2011.02-0 (EXPERIMENTAL)"
    50     depends on EXPERIMENTAL
    51     select CC_GCC_4_4_or_later
    52 
    53 config CC_V_4_4_5
    54     bool
    55     prompt "4.4.5"
    56     select CC_GCC_4_4_or_later
    57 
    58 config CC_V_4_4_4
    59     bool
    60     prompt "4.4.4"
    61     select CC_GCC_4_4_or_later
    62 
    63 config CC_V_4_4_3
    64     bool
    65     prompt "4.4.3"
    66     select CC_GCC_4_4_or_later
    67 
    68 config CC_V_4_4_2
    69     bool
    70     prompt "4.4.2"
    71     select CC_GCC_4_4_or_later
    72 
    73 config CC_V_4_4_1
    74     bool
    75     prompt "4.4.1"
    76     select CC_GCC_4_4_or_later
    77 
    78 config CC_V_4_4_0
    79     bool
    80     prompt "4.4.0"
    81     select CC_GCC_4_4_or_later
    82 
    83 config CC_V_4_3_5
    84     bool
    85     prompt "4.3.5"
    86     select CC_GCC_4_3_or_later
    87 
    88 config CC_V_4_3_4
    89     bool
    90     prompt "4.3.4"
    91     select CC_GCC_4_3_or_later
    92 
    93 config CC_V_4_3_3
    94     bool
    95     prompt "4.3.3"
    96     select CC_GCC_4_3_or_later
    97 
    98 config CC_V_4_3_2
    99     bool
   100     prompt "4.3.2"
   101     select CC_GCC_4_3_or_later
   102 
   103 config CC_V_4_3_1
   104     bool
   105     prompt "4.3.1"
   106     select CC_GCC_4_3_or_later
   107 
   108 config CC_V_4_2_4
   109     bool
   110     prompt "4.2.4"
   111     select CC_GCC_4_2_or_later
   112 
   113 config CC_V_4_2_3
   114     bool
   115     prompt "4.2.3 (OBSOLETE)"
   116     select CC_GCC_4_2_or_later
   117     depends on OBSOLETE
   118 
   119 config CC_V_4_2_2
   120     bool
   121     prompt "4.2.2"
   122     select CC_GCC_4_2_or_later
   123 
   124 config CC_V_4_2_1
   125     bool
   126     prompt "4.2.1 (OBSOLETE)"
   127     select CC_GCC_4_2_or_later
   128     depends on OBSOLETE
   129 
   130 config CC_V_4_2_0
   131     bool
   132     prompt "4.2.0 (OBSOLETE)"
   133     select CC_GCC_4_2_or_later
   134     depends on OBSOLETE
   135 
   136 config CC_V_4_1_2
   137     bool
   138     prompt "4.1.2 (OBSOLETE)"
   139     depends on OBSOLETE
   140 
   141 config CC_V_4_0_4
   142     bool
   143     prompt "4.0.4 (OBSOLETE)"
   144     depends on OBSOLETE
   145 
   146 config CC_V_3_4_6
   147     bool
   148     prompt "3.4.6 (OBSOLETE)"
   149     depends on OBSOLETE
   150 
   151 endchoice
   152 
   153 config CC_GCC_4_2_or_later
   154     bool
   155     default n
   156 
   157 config CC_GCC_4_3_or_later
   158     bool
   159     default n
   160     select CC_GCC_4_2_or_later
   161     select CC_GCC_USE_GMP_MPFR
   162 
   163 config CC_GCC_4_4_or_later
   164     bool
   165     default n
   166     select CC_GCC_4_3_or_later
   167     select CC_GCC_HAS_GRAPHITE
   168 
   169 config CC_GCC_4_5_or_later
   170     bool
   171     default n
   172     select CC_GCC_4_4_or_later
   173     select CC_GCC_USE_MPC
   174     select CC_GCC_HAS_LTO
   175 
   176 config CC_GCC_HAS_GRAPHITE
   177     bool
   178     default n
   179 
   180 # The way LTO works is a bit twisted.
   181 # See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
   182 # Basically:
   183 #   - if binutils has plugins: LTO is handled by ld/gold by loading
   184 #     the plugin when linking
   185 #   - if binutils does not have plugins: LTO is handled by collect2
   186 # In any case, LTO support does not depend on plugins, but takes
   187 # advantage of it
   188 config CC_GCC_HAS_LTO
   189     bool
   190     default n
   191 
   192 # Only enable gcc's support for plugins if binutils has it as well
   193 # They are usefull only when doing LTO, but it does no harm enabling
   194 # them even without LTO.
   195 config CC_GCC_ENABLE_PLUGINS
   196     bool
   197     depends on BINUTILS_PLUGINS
   198     depends on ! STATIC_TOOLCHAIN
   199     default y
   200 
   201 # If binutils installs gold, enable support for gold in gcc
   202 config CC_GCC_GOLD
   203     bool
   204     depends on BINUTILS_GOLD_INSTALLED
   205     default y
   206 
   207 config CC_GCC_USE_GMP_MPFR
   208     bool
   209     default n
   210     select GMP_NEEDED
   211     select MPFR_NEEDED
   212 
   213 config CC_GCC_USE_PPL_CLOOG
   214     bool
   215     default n
   216     select PPL_NEEDED
   217     select CLOOG_NEEDED
   218 
   219 config CC_GCC_USE_MPC
   220     bool
   221     default n
   222     select MPC_NEEDED
   223 
   224 config CC_GCC_USE_LIBELF
   225     bool
   226     default n
   227     select LIBELF_NEEDED
   228 
   229 config CC_VERSION
   230     string
   231 # Don't remove next line
   232 # CT_INSERT_VERSION_STRING_BELOW
   233     default "linaro-4.5-2011.02-0" if CC_V_linaro_4_5_2011_02_0
   234     default "4.5.2" if CC_V_4_5_2
   235     default "4.5.1" if CC_V_4_5_1
   236     default "4.5.0" if CC_V_4_5_0
   237     default "linaro-4.4-2011.02-0" if CC_V_linaro_4_4_2011_02_0
   238     default "4.4.5" if CC_V_4_4_5
   239     default "4.4.4" if CC_V_4_4_4
   240     default "4.4.3" if CC_V_4_4_3
   241     default "4.4.2" if CC_V_4_4_2
   242     default "4.4.1" if CC_V_4_4_1
   243     default "4.4.0" if CC_V_4_4_0
   244     default "4.3.5" if CC_V_4_3_5
   245     default "4.3.4" if CC_V_4_3_4
   246     default "4.3.3" if CC_V_4_3_3
   247     default "4.3.2" if CC_V_4_3_2
   248     default "4.3.1" if CC_V_4_3_1
   249     default "4.3.0" if CC_V_4_3_0
   250     default "4.2.4" if CC_V_4_2_4
   251     default "4.2.3" if CC_V_4_2_3
   252     default "4.2.2" if CC_V_4_2_2
   253     default "4.2.1" if CC_V_4_2_1
   254     default "4.2.0" if CC_V_4_2_0
   255     default "4.1.2" if CC_V_4_1_2
   256     default "4.0.4" if CC_V_4_0_4
   257     default "3.4.6" if CC_V_3_4_6
   258 
   259 config CC_LANG_JAVA_USE_ECJ
   260     bool
   261     default y
   262     depends on CC_LANG_JAVA
   263     depends on CC_GCC_4_3_or_later
   264 
   265 config CC_PKGVERSION
   266     string
   267     prompt "gcc ID string"
   268     depends on CC_GCC_4_3_or_later
   269     default "crosstool-NG-${CT_VERSION}"
   270     help
   271       Specify a string that identifies your package. You may wish to include
   272       a build number or build date. This version string will be included in
   273       the output of gcc --version.
   274 
   275       This is passed to the configure flag --with-pkgversion.
   276 
   277 config CC_BUGURL
   278     string
   279     prompt "gcc bug URL"
   280     depends on CC_GCC_4_3_or_later
   281     default ""
   282     help
   283       Specify the URL that users should visit if they wish to report a bug.
   284 
   285 config CC_ENABLE_CXX_FLAGS
   286     string
   287     prompt "Flags to pass to --enable-cxx-flags"
   288     default ""
   289     help
   290       Enter here the value of the gcc's ./configure option --enable-cxx-flags.
   291       Leave empty if you don't know better.
   292       
   293       Note: just pass in the option _value_, that is only the part that goes
   294       after the '=' sign.
   295 
   296 config CC_CORE_EXTRA_CONFIG
   297     string
   298     prompt "Core gcc extra config"
   299     default ""
   300     help
   301       Extra flags to pass onto ./configure when configuring the core gcc.
   302       
   303       The core gcc is a stripped down, C-only compiler needed to build
   304       the C library. Kinda bootstrap gcc, if you wish.
   305 
   306 config CC_EXTRA_CONFIG
   307     string
   308     prompt "gcc extra config"
   309     default ""
   310     depends on ! BARE_METAL
   311     help
   312       Extra flags to pass onto ./configure when configuring gcc.