config/kernel/linux.in
author Anthony Foiani <anthony.foiani@gmail.com>
Thu May 19 23:06:16 2011 +0200 (2011-05-19)
changeset 2461 ec30b191f0e3
parent 2444 896cb0d36c1a
child 2473 f3f2fa66706b
permissions -rw-r--r--
complibs/ppl: build only C and C++ interfaces for PPL

By default, PPL wants to build interfaces for any of a variety of
langauges it finds on the local host (python, java, possibly perl, also
more esoteric languages such as ocaml and prolog).

These extra interfaces can double the compile time for the library. For
single-process builds, I found a savings of more than 40%:

default / j1: 716s total, 143.2s avg, 0.52s stdev
just_c / j1: 406s total, 81.2s avg, 0.33s stdev
just_c_cpp / j1: 413s total, 82.6s avg, 0.22s stdev

And for multi-process builds, it approached 50%:

default / j4: 625s total, 125.0s avg, 0.57s stdev
just_c / j4: 338s total, 67.6s avg, 1.25s stdev
just_c_cpp / j4: 327s total, 65.4s avg, 0.36s stdev

Since the PPL we build within ct-ng is only used by GCC, we only need to
build the C and C++ interfaces.

Signed-Off-By: Anthony Foiani <anthony.foiani@gmail.com>
yann@448
     1
# Linux kernel options
yann@448
     2
yann@2444
     3
## select KERNEL_SUPPORTS_SHARED_LIBS
yann@2444
     4
##
yann@2444
     5
## help Build a toolchain targeting systems running Linux as a kernel.
yann@2446
     6
yann@2446
     7
choice
yann@2446
     8
    bool
yann@2446
     9
    prompt "Get kernel headers from:"
yann@2446
    10
yann@2446
    11
config KERNEL_LINUX_INSTALL
yann@2446
    12
    bool
yann@2446
    13
    prompt "kernel's 'headers_install'"
yann@2446
    14
    help
yann@2446
    15
      This will make use of the new headers_install rule in recent kernels.
yann@2446
    16
      This is most probably what you want to use.
yann@2446
    17
yann@2446
    18
config KERNEL_LINUX_USE_CUSTOM_HEADERS
yann@2446
    19
    bool
yann@2446
    20
    prompt "pre-installed headers tree"
yann@2446
    21
    help
yann@2446
    22
      If you have some pre-installed kernel headers lying around, you can
yann@2446
    23
      enter the path to these headers, below, they will be copied from
yann@2446
    24
      there, and into the toolchain's sysroot.
yann@2446
    25
      
yann@2446
    26
      Note:
yann@2446
    27
      This will *not* let you use a complete kernel tree!
yann@2446
    28
      If you want to use your own full kernel tree, then you want to
yann@2446
    29
      say 'Y' to KERNEL_LINUX_INSTALL, above, and select KERNEL_LINUX_CUSTOM.
yann@2446
    30
yann@2446
    31
endchoice
yann@2446
    32
yann@2446
    33
if KERNEL_LINUX_INSTALL
yann@2446
    34
yann@2446
    35
choice
yann@2446
    36
    bool
yann@2446
    37
    prompt "Linux kernel version"
yann@2446
    38
# Don't remove next line
yann@2446
    39
# CT_INSERT_VERSION_BELOW
yann@2446
    40
yann@2446
    41
config KERNEL_V_2_6_38_4
yann@2446
    42
    bool
yann@2446
    43
    prompt "2.6.38.4"
yann@2446
    44
yann@2446
    45
config KERNEL_V_2_6_38_3
yann@2446
    46
    bool
yann@2446
    47
    prompt "2.6.38.3"
yann@2446
    48
yann@2446
    49
config KERNEL_V_2_6_38_2
yann@2446
    50
    bool
yann@2446
    51
    prompt "2.6.38.2"
yann@2446
    52
yann@2446
    53
config KERNEL_V_2_6_38_1
yann@2446
    54
    bool
yann@2446
    55
    prompt "2.6.38.1"
yann@2446
    56
yann@2446
    57
config KERNEL_V_2_6_38
yann@2446
    58
    bool
yann@2446
    59
    prompt "2.6.38"
yann@2446
    60
yann@2446
    61
config KERNEL_V_2_6_37_6
yann@2446
    62
    bool
yann@2446
    63
    prompt "2.6.37.6"
yann@2446
    64
yann@2446
    65
config KERNEL_V_2_6_36_4
yann@2446
    66
    bool
yann@2446
    67
    prompt "2.6.36.4"
yann@2446
    68
yann@2446
    69
config KERNEL_V_2_6_35_13
yann@2446
    70
    bool
yann@2446
    71
    prompt "2.6.35.13 (longterm)"
yann@2446
    72
    help
yann@2446
    73
      The Linux 2.6.35 tree is a "longterm" maintenance branch.
yann@2446
    74
      
yann@2446
    75
      It is intended to fill the niche for users who are not using distribution
yann@2446
    76
      kernels but want to use a regression-free kernel for a longer time.
yann@2446
    77
      
yann@2446
    78
      Critical bug fixes to later 2.6 releases are often ported to this branch
yann@2446
    79
      which makes 2.6.35 a very useful base for many embedded developers seeking
yann@2446
    80
      stable APIs or those who do not need the latest bleeding edge features.
yann@2446
    81
      
yann@2446
    82
      ... and no, this kernel has not undergone any specific QA testing.
yann@2446
    83
      
yann@2446
    84
      See the original announcement by Andi Kleen in the following mailing
yann@2446
    85
      list entry:
yann@2446
    86
        http://marc.info/?l=linux-kernel&m=129136895415202&w=4
yann@2446
    87
yann@2446
    88
config KERNEL_V_2_6_34_9
yann@2446
    89
    bool
yann@2446
    90
    prompt "2.6.34.9"
yann@2446
    91
yann@2446
    92
config KERNEL_V_2_6_33_12
yann@2446
    93
    bool
yann@2446
    94
    prompt "2.6.33.12"
yann@2446
    95
yann@2446
    96
config KERNEL_V_2_6_32_39
yann@2446
    97
    bool
yann@2446
    98
    prompt "2.6.32.39 (longterm)"
yann@2446
    99
    help
yann@2446
   100
      The Linux 2.6.32 tree is a "longterm" maintenance branch.
yann@2446
   101
      
yann@2446
   102
      It is intended to fill the niche for users who are not using distribution
yann@2446
   103
      kernels but want to use a regression-free kernel for a longer time.
yann@2446
   104
      
yann@2446
   105
      Critical bug fixes to later 2.6 releases are often ported to this branch
yann@2446
   106
      which makes 2.6.32 a very useful base for many embedded developers seeking
yann@2446
   107
      stable APIs or those who do not need the latest bleeding edge features.
yann@2446
   108
      
yann@2446
   109
      ... and no, this kernel has not undergone any specific QA testing.
yann@2446
   110
      
yann@2446
   111
      See the original announcement by Greg Kroah-Hartman in the following
yann@2446
   112
      mailing list entry:
yann@2446
   113
        http://marc.info/?l=linux-kernel&m=126384198403392&w=4
yann@2446
   114
yann@2446
   115
config KERNEL_V_2_6_31_14
yann@2446
   116
    bool
yann@2446
   117
    prompt "2.6.31.14"
yann@2446
   118
yann@2446
   119
config KERNEL_V_2_6_27_58
yann@2446
   120
    bool
yann@2446
   121
    prompt "2.6.27.58 (longterm)"
yann@2446
   122
    help
yann@2446
   123
      The Linux 2.6.27 tree is a "longterm" maintenance branch.
yann@2446
   124
      
yann@2446
   125
      It is intended to fill the niche for users who are not using distribution
yann@2446
   126
      kernels but want to use a regression-free kernel for a longer time.
yann@2446
   127
      
yann@2446
   128
      Critical bug fixes to later 2.6 releases are often ported to this branch
yann@2446
   129
      which makes 2.6.27 a very useful base for many embedded developers seeking
yann@2446
   130
      stable APIs or those who do not need the latest bleeding edge features.
yann@2446
   131
      
yann@2446
   132
      ... and no, this kernel has not undergone any specific QA testing.
yann@2446
   133
      
yann@2446
   134
      See the original announcement by Adrian Bunk in the following mailing list
yann@2446
   135
      entry:
yann@2446
   136
        http://marc.info/?l=linux-kernel&m=122375909403298&w=4
yann@2446
   137
      
yann@2446
   138
      It is now maintained by Greg Kroah-Hartman, see this mailing list entry:
yann@2446
   139
        http://marc.info/?l=linux-kernel&m=129133701916793&w=4
yann@2446
   140
yann@2446
   141
config KERNEL_LINUX_CUSTOM
yann@2446
   142
    bool
yann@2446
   143
    prompt "custom tarball"
yann@2446
   144
    help
yann@2446
   145
      Use a local tarball of a complete kernel source tree.
yann@2446
   146
yann@2446
   147
config KERNEL_LINUX_CUSTOM_TARBALL
yann@2446
   148
    string
yann@2446
   149
    prompt "Path to custom tarball"
yann@2446
   150
    depends on KERNEL_LINUX_CUSTOM
yann@2446
   151
    help
yann@2446
   152
      Enter here the path to the tarball of your full kernel tree.
yann@2446
   153
yann@2446
   154
endchoice
yann@2446
   155
yann@2446
   156
config KERNEL_VERSION
yann@2446
   157
    string
yann@2446
   158
# Don't remove next line
yann@2446
   159
# CT_INSERT_VERSION_STRING_BELOW
yann@2446
   160
    default "2.6.38.4" if KERNEL_V_2_6_38_4
yann@2446
   161
    default "2.6.38.3" if KERNEL_V_2_6_38_3
yann@2446
   162
    default "2.6.38.2" if KERNEL_V_2_6_38_2
yann@2446
   163
    default "2.6.38.1" if KERNEL_V_2_6_38_1
yann@2446
   164
    default "2.6.38" if KERNEL_V_2_6_38
yann@2446
   165
    default "2.6.37.6" if KERNEL_V_2_6_37_6
yann@2446
   166
    default "2.6.36.4" if KERNEL_V_2_6_36_4
yann@2446
   167
    default "2.6.35.13" if KERNEL_V_2_6_35_13
yann@2446
   168
    default "2.6.34.9" if KERNEL_V_2_6_34_9
yann@2446
   169
    default "2.6.33.12" if KERNEL_V_2_6_33_12
yann@2446
   170
    default "2.6.32.39" if KERNEL_V_2_6_32_39
yann@2446
   171
    default "2.6.31.14" if KERNEL_V_2_6_31_14
yann@2446
   172
    default "2.6.27.58" if KERNEL_V_2_6_27_58
yann@2446
   173
yann@2446
   174
endif # KERNEL_LINUX_INSTALL
yann@2446
   175
yann@2446
   176
if KERNEL_LINUX_USE_CUSTOM_HEADERS
yann@2446
   177
yann@2446
   178
config KERNEL_LINUX_CUSTOM_PATH
yann@2446
   179
    string
yann@2446
   180
    prompt "Path to custom headers directory/tarball"
yann@2446
   181
    help
yann@2446
   182
      See KERNEL_LINUX_CUSTOM_IS_TARBALL, below.
yann@2446
   183
yann@2446
   184
config KERNEL_LINUX_CUSTOM_IS_TARBALL
yann@2446
   185
    bool
yann@2446
   186
    prompt "This is a tarball"
yann@2446
   187
    default n
yann@2446
   188
    help
yann@2446
   189
      If you say 'n' here, the path above is expected to point to a directory
yann@2446
   190
      containing readily prepared headers
yann@2446
   191
      
yann@2446
   192
      If you say 'y' here, then the path above is expected to point to a
yann@2446
   193
      tarball of such a directory.
yann@2446
   194
      
yann@2446
   195
      Eg., if your headers are available in: /foo/bar/buz/my_hdrs/include,
yann@2446
   196
      say 'n' here, and enter: /foo/bar/buz/my_hdrs below.
yann@2446
   197
      
yann@2446
   198
      Now, passing a tarball around is easier than passing a directory, so
yann@2446
   199
      if you want to, you can make a tarball of /foo/bar/buz/my_hdrs/include,
yann@2446
   200
      say 'y' here, and enter the path to this tarball below.
yann@2446
   201
yann@2446
   202
endif # KERNEL_LINUX_USE_CUSTOM_HEADERS