config/libc/glibc-eglibc.in-common
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Thu Mar 26 18:47:34 2009 +0000 (2009-03-26)
changeset 1268 5594b05bc2d8
parent 1211 5dc29dbd1523
child 1314 34d1b285c5db
child 1366 5e5d1e6f55d3
permissions -rw-r--r--
Add support for building toolchains with gcc-4.4 snapshots.
Initial patch by Dmitry PLOTNIKOV: http://sourceware.org/ml/crossgcc/2009-03/msg00053.html
It [the toolchain] uses current ct-ng (nightly snapshot 20090324, latest
release 1.3.2 work also), glibc 2.9 (from CVS), binutils 2.19 and latest
snapshot of GCC 4.4.0 (as of March 20, 2009).

We have successfully built linux kernel 2.6.29 and a lot of other stuff
with this toolchain.

Here's the patch that adds GCC 4.4.0 to the ct-ng menu and enables it to
download a 4.4.0 snapshot from ftp.

Patch was adpated by me, mostly to better fit the configuration layout.

/trunk/scripts/build/cc/gcc.sh | 34 22 12 0 ++++++++++++++++++++++------------
/trunk/config/cc/gcc.in | 35 30 5 0 ++++++++++++++++++++++++++++++-----
2 files changed, 52 insertions(+), 17 deletions(-)
yann@922
     1
# This file contains the common configuration options
yann@922
     2
# that apply to both glibc and eglibc.
yann@922
     3
yann@1178
     4
if LIBC_glibc || LIBC_eglibc
yann@1178
     5
yann@922
     6
comment "glibc/eglibc common options"
yann@922
     7
yann@922
     8
config LIBC_GLIBC_EXTRA_CONFIG
yann@922
     9
    string
yann@922
    10
    prompt "extra config"
yann@922
    11
    default ""
yann@922
    12
    help
yann@922
    13
      Extra flags to pass onto ./configure when configuring.
yann@922
    14
yann@922
    15
      Eg.: --enable-static-nss
yann@922
    16
yann@1232
    17
config LIBC_GLIBC_CONFIGPARMS
yann@1232
    18
    string
yann@1232
    19
    prompt "Extra config params (READ HELP)"
yann@1232
    20
    default "" if ! ARCH_sh
yann@1232
    21
    default "no-z-defs=yes" if ARCH_sh
yann@1232
    22
    help
yann@1232
    23
      Some architectures need to set options in the file configparms.
yann@1232
    24
      This is the case for sh3/4, which really need to set configparms
yann@1232
    25
      to "no-z-defs=yes" as of gcc-3.4/glibc-2.3.2.
yann@1232
    26
      
yann@1232
    27
      Unless you are building a toolchain for sh3/4, you should leave that empty.
yann@1232
    28
      
yann@1232
    29
      Note: this is awkward, and doesn't work well if you need more than one
yann@1232
    30
            line in configparms
yann@1232
    31
yann@922
    32
config LIBC_GLIBC_EXTRA_CFLAGS
yann@922
    33
    string
yann@922
    34
    prompt "extra target CFLAGS"
yann@922
    35
    default ""
yann@922
    36
    help
yann@922
    37
      Extra target CFLAGS to use when building.
yann@922
    38
yann@922
    39
config LIBC_EXTRA_CC_ARGS
yann@922
    40
    string
yann@922
    41
    prompt "gcc extra flags"
yann@922
    42
    default ""
yann@922
    43
    help
yann@922
    44
      Extra flags to pass gcc when building.
yann@922
    45
yann@922
    46
      Seldom used, except for sparc64 which seems to need the flag -64
yann@922
    47
      to be passed onto gcc.
yann@922
    48
yann@922
    49
config LIBC_GLIBC_USE_PORTS
yann@922
    50
    bool
yann@922
    51
    prompt "Use the ports addon"
yann@922
    52
    default n
yann@922
    53
    help
yann@922
    54
      The ports addon contains some architecture ports that are not available
yann@922
    55
      in the official distribution.
yann@922
    56
yann@922
    57
      For example, this is the case for ARM with for 2.4 and above.
yann@922
    58
yann@922
    59
      Say n only if you're sure that your architecture is in the official
yann@922
    60
      distribution for your chosen version.
yann@922
    61
yann@922
    62
config LIBC_ADDONS_LIST
yann@922
    63
    string
yann@922
    64
    prompt "Extra addons"
yann@922
    65
    default ""
yann@922
    66
    help
yann@922
    67
      Extra addons to include. Space separated list.
yann@922
    68
yann@922
    69
      You need to specify neither linuxthreads nor nptl, as they are added
yann@922
    70
      automagically for you depending on the threading model you choosed
yann@922
    71
      earlier.
yann@922
    72
yann@922
    73
      Eg.: crypt        (for very old libces)
yann@922
    74
yann@922
    75
if KERNEL_linux
yann@922
    76
yann@922
    77
choice
yann@922
    78
    bool
yann@922
    79
    prompt "Minimum supported kernel version"
yann@922
    80
    default LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS
yann@922
    81
yann@922
    82
config LIBC_GLIBC_KERNEL_VERSION_NONE
yann@922
    83
    bool
yann@922
    84
    prompt "Let ./configure decide"
yann@922
    85
    help
yann@922
    86
      Let ./configure decide what minimum kernel version glibc/eglibc
yann@922
    87
      will be able to run against.
yann@922
    88
      
yann@922
    89
      This will inclde legacy compatibility code for older kernels in
yann@922
    90
      the C library, thus ensuring that it will run on a large number
yann@922
    91
      of old kernels.
yann@922
    92
      
yann@922
    93
      The minimum kernel version supported will be dependent upon the
yann@922
    94
      target you build for. For example:
yann@922
    95
        alpha*-*-linux-gnu      Requires Linux 2.6.9 for NPTL
yann@922
    96
        sh[34]-*-linux-gnu      Requires Linux 2.6.11
yann@922
    97
        powerpc*                Requires Linux 2.4.19
yann@922
    98
        arm*-*-linux-*gnueabi   Requires Linux 2.6.16
yann@922
    99
yann@922
   100
config LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS
yann@922
   101
    bool
yann@922
   102
    prompt "Same as kernel headers (default)"
yann@922
   103
    help
yann@922
   104
      Normaly, you'll want glibc/eglibc to run against the same kernel
yann@922
   105
      version as the one used for the headers.
yann@922
   106
      
yann@922
   107
      This is the default.
yann@922
   108
      
yann@922
   109
      If enabled, crosstool-ng will use the chosen version of kernel
yann@922
   110
      headers for the glibc minimum kernel version supported, which is
yann@922
   111
      what gets passed to "--enable-kernel=" when configuring glibc.
yann@922
   112
      
yann@922
   113
      Enabling this will ensure that no legacy compatibility code for
yann@922
   114
      older kernels is built into your C libraries, but it will
yann@922
   115
      be unable to run on kernel versions older than whichever kernel
yann@922
   116
      headers version you've built the toolchain for.
yann@922
   117
      
yann@922
   118
      If you know for sure that your toolchain will never need to build
yann@922
   119
      applications that will run under a kernel version older than your
yann@922
   120
      chosen kernel headers version (CT_KERNEL_VERSION), you can choose
yann@922
   121
      "y" here.
yann@922
   122
yann@922
   123
config LIBC_GLIBC_KERNEL_VERSION_CHOSEN
yann@922
   124
    bool
yann@922
   125
    prompt "Specific kernel version"
yann@922
   126
    help
yann@922
   127
      Specify the earliest Linux kernel version you want glibc to
yann@922
   128
      include support for.  This does not have to match the kernel
yann@922
   129
      headers version used for your toolchain.  This controls what is
yann@922
   130
      passed to the "--enable-kernel=" option to the glibc configure
yann@922
   131
      script.
yann@922
   132
yann@922
   133
      If you want to be able to statically link programs with your
yann@922
   134
      toolchain's C library, make sure this kernel version is lower than
yann@922
   135
      all kernels you wish to support to avoid "FATAL: kernel too old"
yann@922
   136
      errors.  The higher the version you specify, the less legacy code
yann@922
   137
      will be built into libc.
yann@922
   138
yann@922
   139
      Most people can leave this at the default value of "2.6.9".
yann@922
   140
yann@922
   141
if LIBC_GLIBC_KERNEL_VERSION_CHOSEN
yann@922
   142
yann@922
   143
config LIBC_GLIBC_MIN_KERNEL_VERSION
yann@922
   144
    string
yann@922
   145
    prompt "Minimum kernel version to support"
yann@922
   146
    default "2.6.9"
yann@922
   147
    help
yann@922
   148
      Enter here the lowest kernel version glibc/eglibc will be able to
yann@922
   149
      run against.
yann@922
   150
      
yann@922
   151
      The minimum kernel version supported will be dependent upon the
yann@922
   152
      target you build for. For example:
yann@922
   153
        alpha*-*-linux-gnu      Requires Linux 2.6.9 for NPTL
yann@922
   154
        sh[34]-*-linux-gnu      Requires Linux 2.6.11
yann@922
   155
        powerpc*                Requires Linux 2.4.19
yann@922
   156
        arm*-*-linux-*gnueabi   Requires Linux 2.6.16
yann@922
   157
      
yann@922
   158
      Note that no sanity check is performed by crosstool-NG to ensure
yann@922
   159
      that the value you enter here is appropriate for your target.
yann@922
   160
yann@922
   161
endif # LIBC_GLIBC_KERNEL_VERSION_CHOSEN
yann@922
   162
yann@922
   163
endchoice
yann@922
   164
yann@922
   165
config LIBC_GLIBC_MIN_KERNEL
yann@922
   166
    string
yann@922
   167
    default ""                            if LIBC_GLIBC_KERNEL_VERSION_NONE
yann@922
   168
    default KERNEL_VERSION                if LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS
yann@1211
   169
    default LIBC_GLIBC_MIN_KERNEL_VERSION if LIBC_GLIBC_KERNEL_VERSION_CHOSEN
yann@922
   170
yann@922
   171
endif # KERNEL_linux
yann@1178
   172
yann@1178
   173
endif # LIBC_glibc || LIBC_eglibc