config/libc/glibc-eglibc.in-common
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 # This file contains the common configuration options
     2 # that apply to both glibc and eglibc.
     3 
     4 # Some architectures require the ports addon. List them one by one here:
     5 # This list must be carefully in sync with the architectures names
     6 # we can find in config/arch/*
     7 config LIBC_GLIBC_MAY_FORCE_PORTS
     8     bool
     9     default y if ARCH_arm
    10     default y if ARCH_mips
    11     select LIBC_GLIBC_USE_PORTS
    12 
    13 # Force using the BFD linker during the toolchain build
    14 config LIBC_glibc_familly
    15     bool
    16     default y
    17     select BINUTILS_FORCE_LD_BFD
    18 
    19 config LIBC_GLIBC_EXTRA_CONFIG_ARRAY
    20     string
    21     prompt "extra config"
    22     default ""
    23     help
    24       Extra flags to pass onto ./configure when configuring.
    25 
    26       You can enter multiple arguments here, and arguments can contain spaces
    27       if they are properly quoted (or escaped, but prefer quotes). Eg.:
    28           --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
    29 
    30 config LIBC_GLIBC_CONFIGPARMS
    31     string
    32     prompt "Extra config params (READ HELP)"
    33     default "" if ! ARCH_sh
    34     default "no-z-defs=yes" if ARCH_sh
    35     help
    36       Some architectures need to set options in the file configparms.
    37       This is the case for sh3/4, which really need to set configparms
    38       to "no-z-defs=yes" as of gcc-3.4/glibc-2.3.2.
    39       
    40       Unless you are building a toolchain for sh3/4, you should leave that empty.
    41       
    42       Note: If you need to pass more than one value, separate them with
    43             '\n'. Eg.:  var1=val1\nvar2=val2
    44 
    45 config LIBC_GLIBC_EXTRA_CFLAGS
    46     string
    47     prompt "extra target CFLAGS"
    48     default ""
    49     help
    50       Extra target CFLAGS to use when building.
    51 
    52 config LIBC_EXTRA_CC_ARGS
    53     string
    54     prompt "gcc extra flags"
    55     default ""
    56     help
    57       Extra flags to pass gcc when building.
    58 
    59       Seldom used, except for sparc64 which seems to need the flag -64
    60       to be passed onto gcc.
    61 
    62 config LIBC_ENABLE_FORTIFIED_BUILD
    63     bool
    64     prompt "Enable fortified build (EXPERIMENTAL)"
    65     depends on EXPERIMENTAL
    66     default n
    67     help
    68       If you say 'y' here, then glibc will be using fortified versions
    69       of functions with format arguments (eg. vsyslog, printf...), and
    70       do a sanity check on the format at runtime, to avoid some of the
    71       common format string attacks.
    72       
    73       This is currently not supported, and will most probably result in
    74       a broken build, with an error message like:
    75         ../misc/syslog.c: In function '__vsyslog_chk':
    76         ../misc/syslog.c:123: sorry, unimplemented: inlining failed in
    77         call to 'syslog': function body not available
    78       
    79       If you are brave enough and want to debug the issue, then say 'y'
    80       here. Otherwise, be still and say 'n' (the default). ;-)
    81 
    82 
    83 config LIBC_DISABLE_VERSIONING
    84     bool
    85     prompt "Disable symbols versioning"
    86     default n
    87     help
    88       Do not include versioning information in the library objects.
    89 
    90 config LIBC_OLDEST_ABI
    91     string
    92     prompt "Oldest supported ABI"
    93     default ""
    94     help
    95       Set the oldest ABI supported by the C library.
    96       
    97       Setting this option, for example, to 2.2 will provide ABI support
    98       back to (e)glibc-2.2.
    99 
   100       If this option is not set, (e)glibc will choose for you.
   101 
   102 config LIBC_GLIBC_FORCE_UNWIND
   103     bool
   104     prompt "Force unwind support (READ HELP!)"
   105     default n
   106     help
   107       If your toolchain fails building while building the C library
   108       start files, or the complete C library, with a message like:
   109         configure: error: forced unwind support is required
   110       
   111       then you may try setting this to 'y'. Otherwise, leave it to 'n'.
   112       
   113       The issue seems to be related to building NPTL on old versions
   114       of glibc (and possibly eglibc as well) on some architectures
   115       (seen on s390, s390x and x86_64).
   116 
   117 config LIBC_GLIBC_USE_PORTS
   118     bool
   119     prompt "Use the ports addon"
   120     default n
   121     help
   122       The ports addon contains some architecture ports that are not available
   123       in the official distribution.
   124 
   125       For example, this is the case for ARM with glibc-2.4 and above.
   126 
   127       Say n only if you're sure that your architecture is in the official
   128       distribution for your chosen version.
   129 
   130 config LIBC_ADDONS_LIST
   131     string
   132     prompt "Extra addons"
   133     default ""
   134     help
   135       Extra addons to include. Space separated list.
   136 
   137       You need to specify neither linuxthreads nor nptl, as they are added
   138       automagically for you depending on the threading model you choosed
   139       earlier.
   140 
   141       Eg.: crypt        (for very old libces)
   142 
   143 if LIBC_GLIBC_USE_PORTS || ( LIBC_ADDONS_LIST != "" )
   144 comment "WARNING !!!                                            "
   145 comment "|  For glibc >= 2.8, it can happen that the tarballs    "
   146 comment "|  for the addons are not available for download.       "
   147 comment "|  If that happens, bad luck... Try a previous version  "
   148 comment "|  or try again later... :-(                            "
   149 endif
   150 
   151 if KERNEL_linux
   152 
   153 choice LIBC_GLIBC_SUPPORTED_KERNEL
   154     bool
   155     prompt "Minimum supported kernel version"
   156     default LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS
   157 
   158 config LIBC_GLIBC_KERNEL_VERSION_NONE
   159     bool
   160     prompt "Let ./configure decide"
   161     help
   162       Let ./configure decide what minimum kernel version glibc/eglibc
   163       will be able to run against.
   164       
   165       This will inclde legacy compatibility code for older kernels in
   166       the C library, thus ensuring that it will run on a large number
   167       of old kernels.
   168       
   169       The minimum kernel version supported will be dependent upon the
   170       target you build for. For example:
   171         alpha*-*-linux-gnu      Requires Linux 2.6.9 for NPTL
   172         sh[34]-*-linux-gnu      Requires Linux 2.6.11
   173         powerpc*                Requires Linux 2.4.19
   174         arm*-*-linux-*gnueabi   Requires Linux 2.6.16
   175 
   176 config LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS
   177     bool
   178     prompt "Same as kernel headers (default)"
   179     help
   180       Normaly, you'll want glibc/eglibc to run against the same kernel
   181       version as the one used for the headers.
   182       
   183       This is the default.
   184       
   185       If enabled, crosstool-ng will use the chosen version of kernel
   186       headers for the glibc minimum kernel version supported, which is
   187       what gets passed to "--enable-kernel=" when configuring glibc.
   188       
   189       Enabling this will ensure that no legacy compatibility code for
   190       older kernels is built into your C libraries, but it will
   191       be unable to run on kernel versions older than whichever kernel
   192       headers version you've built the toolchain for.
   193       
   194       If you know for sure that your toolchain will never need to build
   195       applications that will run under a kernel version older than your
   196       chosen kernel headers version (CT_KERNEL_VERSION), you can choose
   197       "y" here.
   198 
   199 config LIBC_GLIBC_KERNEL_VERSION_CHOSEN
   200     bool
   201     prompt "Specific kernel version"
   202     help
   203       Specify the earliest Linux kernel version you want glibc to
   204       include support for.  This does not have to match the kernel
   205       headers version used for your toolchain.  This controls what is
   206       passed to the "--enable-kernel=" option to the glibc configure
   207       script.
   208 
   209       If you want to be able to statically link programs with your
   210       toolchain's C library, make sure this kernel version is lower than
   211       all kernels you wish to support to avoid "FATAL: kernel too old"
   212       errors.  The higher the version you specify, the less legacy code
   213       will be built into libc.
   214 
   215       Most people can leave this at the default value of "2.6.9".
   216 
   217 if LIBC_GLIBC_KERNEL_VERSION_CHOSEN
   218 
   219 config LIBC_GLIBC_MIN_KERNEL_VERSION
   220     string
   221     prompt "Minimum kernel version to support"
   222     default "2.6.9"
   223     help
   224       Enter here the lowest kernel version glibc/eglibc will be able to
   225       run against.
   226       
   227       The minimum kernel version supported will be dependent upon the
   228       target you build for. For example:
   229         alpha*-*-linux-gnu      Requires Linux 2.6.9 for NPTL
   230         sh[34]-*-linux-gnu      Requires Linux 2.6.11
   231         powerpc*                Requires Linux 2.4.19
   232         arm*-*-linux-*gnueabi   Requires Linux 2.6.16
   233       
   234       Note that no sanity check is performed by crosstool-NG to ensure
   235       that the value you enter here is appropriate for your target.
   236 
   237 endif # LIBC_GLIBC_KERNEL_VERSION_CHOSEN
   238 
   239 endchoice
   240 
   241 config LIBC_GLIBC_MIN_KERNEL
   242     string
   243     default ""                            if LIBC_GLIBC_KERNEL_VERSION_NONE
   244     default KERNEL_VERSION                if LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS
   245     default LIBC_GLIBC_MIN_KERNEL_VERSION if LIBC_GLIBC_KERNEL_VERSION_CHOSEN
   246 
   247 endif # KERNEL_linux