[toolchain] fix eglibc INET_ANL option selection
[openwrt.git] / toolchain / eglibc / config / Config.in
1 config EGLIBC_OPTION_EGLIBC_ADVANCED_INET6
2         bool "IPv6 Advanced Sockets API support (RFC3542)"
3         default y
4         select EGLIBC_OPTION_EGLIBC_INET
5         help
6           This option group includes the functions specified by RFC 3542,
7           "Advanced Sockets Application Program Interface (API) for
8           IPv6".
9
10           This option group includes the following functions:
11
12                 inet6_opt_append
13                 inet6_opt_find
14                 inet6_opt_finish
15                 inet6_opt_get_val
16                 inet6_opt_init
17                 inet6_option_alloc
18                 inet6_option_append
19                 inet6_option_find
20                 inet6_option_init
21                 inet6_option_next
22                 inet6_option_space
23                 inet6_opt_next
24                 inet6_opt_set_val
25                 inet6_rth_add
26                 inet6_rth_getaddr
27                 inet6_rth_init
28                 inet6_rth_reverse
29                 inet6_rth_segments
30                 inet6_rth_space
31
32
33 config EGLIBC_OPTION_EGLIBC_BACKTRACE
34         bool "Functions for producing backtraces"
35         default y
36         help
37           This option group includes functions for producing a list of
38           the function calls that are currently active in a thread, from
39           within the thread itself.  These functions are often used
40           within signal handlers, to produce diagnostic output.
41
42           This option group includes the following functions:
43
44                 backtrace
45                 backtrace_symbols
46                 backtrace_symbols_fd
47
48
49 config EGLIBC_OPTION_EGLIBC_BIG_MACROS
50         bool "Use extensive inline code"
51         default y
52         depends EGLIBC_VERSION_2_11 ||  EGLIBC_VERSION_2_12
53         help
54           This option group specifies whether certain pieces of code
55           should be inlined to achieve maximum speed.  If this option
56           group is not selected, function calls will be used instead,
57           hence reducing the library footprint.
58
59
60 config EGLIBC_OPTION_EGLIBC_BSD
61         bool "BSD-specific functions, and their compatibility stubs"
62         default y
63         help
64           This option group includes functions specific to BSD kernels.
65           A number of these functions have stub versions that are also
66           included in libraries built for non-BSD systems for
67           compatibility.
68
69           This option group includes the following functions:
70
71                 chflags
72                 fchflags
73                 lchmod
74                 revoke
75                 setlogin
76
77
78 config EGLIBC_OPTION_EGLIBC_CXX_TESTS
79         bool "Tests that link against the standard C++ library."
80         default y
81         select EGLIBC_OPTION_POSIX_WIDE_CHAR_DEVICE_IO
82         select EGLIBC_OPTION_EGLIBC_LIBM
83         help
84           This option group does not include any C library functions;
85           instead, it controls which EGLIBC tests an ordinary 'make
86           tests' runs.  With this group disabled, tests that would
87           normally link against the standard C++ library are not
88           run.
89
90           The standard C++ library depends on the math library 'libm' and
91           the wide character I/O functions included in EGLIBC.  If those
92           option groups are disabled, this test must also be disabled.
93
94
95 config EGLIBC_OPTION_EGLIBC_CATGETS
96         bool "Functions for accessing message catalogs"
97         default y
98         select EGLIBC_OPTION_EGLIBC_LOCALE_CODE
99         help
100           This option group includes functions for accessing message
101           catalogs: catopen, catclose, and catgets.
102
103           This option group depends on the EGLIBC_OPTION_EGLIBC_LOCALE_CODE
104           option group; if you disable that, you must also disable this.
105
106
107 config EGLIBC_OPTION_EGLIBC_CHARSETS
108         bool "iconv/gconv character set conversion libraries"
109         default y
110         help
111
112           This option group includes support for character sets other
113           than ASCII (ANSI_X3.4-1968) and Unicode and ISO-10646 in their
114           various encodings.  This affects both the character sets
115           supported by the wide and multibyte character functions, and
116           those supported by the 'iconv' functions.
117
118           With this option group disabled, EGLIBC supports only the
119           following character sets:
120
121                 ANSI_X3.4         - ASCII
122                 ANSI_X3.4-1968
123                 ANSI_X3.4-1986
124                 ASCII
125                 CP367
126                 CSASCII
127                 IBM367
128                 ISO-IR-6
129                 ISO646-US
130                 ISO_646.IRV:1991
131                 OSF00010020
132                 US
133                 US-ASCII
134
135                 10646-1:1993      - ISO 10646, in big-endian UCS4 form
136                 10646-1:1993/UCS4
137                 CSUCS4
138                 ISO-10646
139                 ISO-10646/UCS4
140                 OSF00010104
141                 OSF00010105
142                 OSF00010106
143                 UCS-4
144                 UCS-4BE
145                 UCS4
146
147                 UCS-4LE           - ISO 10646, in little-endian UCS4 form
148
149                 ISO-10646/UTF-8   - ISO 10646, in UTF-8 form
150                 ISO-10646/UTF8
151                 ISO-IR-193
152                 OSF05010001
153                 UTF-8
154                 UTF8
155
156                 ISO-10646/UCS2    - ISO 10646, in target-endian UCS2 form
157                 OSF00010100
158                 OSF00010101
159                 OSF00010102
160                 UCS-2
161                 UCS2
162
163                 UCS-2BE           - ISO 10646, in big-endian UCS2 form
164                 UNICODEBIG
165
166                 UCS-2LE           - ISO 10646, in little-endian UCS2 form
167                 UNICODELITTLE
168
169                 WCHAR_T           - EGLIBC's internal form (target-endian,
170                                                         32-bit ISO 10646)
171
172
173 config EGLIBC_OPTION_EGLIBC_CRYPT
174         bool "Encryption library"
175         default y
176         depends EGLIBC_VERSION_2_12
177         help
178           This option group includes the `libcrypt' library which
179           provides functions for one-way encryption.  Supported
180           encryption algorithms include MD5, SHA-256, SHA-512 and DES.
181
182
183 config EGLIBC_OPTION_EGLIBC_CRYPT_UFC
184         bool "Ultra fast `crypt' implementation"
185         default y
186         depends EGLIBC_VERSION_2_12
187         select EGLIBC_OPTION_EGLIBC_CRYPT
188         help
189           This option group provides ultra fast DES-based implementation of
190           the `crypt' function.  When this option group is disabled,
191           (a) the library will not provide the setkey[_r] and encrypt[_r]
192           functions and (b) the crypt[_r] function will return NULL and set the
193           errno to ENOSYS if /salt/ passed does not correspond to either MD5,
194           SHA-256 or SHA-512 algorithm.
195
196
197 config EGLIBC_OPTION_EGLIBC_DB_ALIASES
198         bool "Functions for accessing the mail aliases database"
199         default y
200         help
201           This option group includes functions for looking up mail
202           aliases in '/etc/aliases' or using nsswitch.  It includes the
203           following functions:
204
205                 endaliasent
206                 getaliasbyname
207                 getaliasbyname_r
208                 getaliasent
209                 getaliasent_r
210                 setaliasent
211
212           When this option group is disabled, the NSS service libraries
213           also lack support for querying their mail alias tables.
214
215
216 config EGLIBC_OPTION_EGLIBC_ENVZ
217         bool "Functions for handling envz-style environment vectors."
218         default y
219         help
220           This option group contains functions for creating and operating
221           on envz vectors.  An "envz vector" is a vector of strings in a
222           contiguous block of memory, where each element is a name-value
223           pair, and elements are separated from their neighbors by null
224           characters.
225
226           This option group includes the following functions:
227
228                 envz_add        envz_merge 
229                 envz_entry      envz_remove
230                 envz_get        envz_strip 
231
232
233 config EGLIBC_OPTION_EGLIBC_FCVT
234         bool "Functions for converting floating-point numbers to strings"
235         default y
236         depends EGLIBC_VERSION_2_10 || EGLIBC_VERSION_2_11 ||  EGLIBC_VERSION_2_12
237         help
238           This option group includes functions for converting
239           floating-point numbers to strings.
240
241           This option group includes the following functions:
242
243                 ecvt           qecvt
244                 ecvt_r         qecvt_r
245                 fcvt           qfcvt
246                 fcvt_r         qfcvt_r
247                 gcvt           qgcvt
248
249
250 config EGLIBC_OPTION_EGLIBC_FMTMSG
251         bool "Functions for formatting messages"
252         default y
253         depends EGLIBC_VERSION_2_10 || EGLIBC_VERSION_2_11 ||  EGLIBC_VERSION_2_12
254         help
255           This option group includes the following functions:
256
257                 addseverity    fmtmsg
258
259
260 config EGLIBC_OPTION_EGLIBC_FSTAB
261         bool "Access functions for 'fstab'"
262         default y
263         help
264           This option group includes functions for reading the mount
265           point specification table, '/etc/fstab'.  These functions are
266           not included in the POSIX standard, which provides the
267           'getmntent' family of functions instead.
268
269           This option group includes the following functions:
270
271                 endfsent       getfsspec
272                 getfsent       setfsent
273                 getfsfile
274
275
276 config EGLIBC_OPTION_EGLIBC_FTRAVERSE
277         bool "Functions for traversing file hierarchies"
278         default y
279         depends EGLIBC_VERSION_2_10 || EGLIBC_VERSION_2_11 ||  EGLIBC_VERSION_2_12
280         help
281           This option group includes functions for traversing file
282           UNIX file hierachies.
283
284           This option group includes the following functions:
285
286                 fts_open       ftw
287                 fts_read       nftw
288                 fts_children   ftw64
289                 fts_set        nftw64
290                 fts_close
291
292
293 config EGLIBC_OPTION_EGLIBC_GETLOGIN
294         bool "The getlogin function"
295         default y
296         select EGLIBC_OPTION_EGLIBC_UTMP
297         help
298           This function group includes the 'getlogin' and 'getlogin_r'
299           functions, which return the user name associated by the login
300           activity with the current process's controlling terminal.
301
302           With this option group disabled, the 'glob' function will not
303           fall back on 'getlogin' to find the user's login name for tilde
304           expansion when the 'HOME' environment variable is not set.
305
306
307 config EGLIBC_OPTION_EGLIBC_IDN
308         bool "International domain names support"
309         default y
310         depends EGLIBC_VERSION_2_12
311         help
312           This option group includes the `libcidn' library which
313           provides support for international domain names.
314
315
316 config EGLIBC_OPTION_EGLIBC_INET
317         bool "Networking support"
318         default y
319         help
320           This option group includes networking-specific functions and
321           data.  With EGLIBC_OPTION_EGLIBC_INET disabled, the EGLIBC
322           installation and API changes as follows:
323
324           - The following libraries are not installed:
325
326                 libanl
327                 libnsl
328                 libnss_compat
329                 libnss_dns
330                 libnss_hesiod
331                 libnss_nis
332                 libnss_nisplus
333                 libresolv
334                  
335           - The following functions and variables are omitted from libc:
336
337                 authdes_create           hstrerror              svc_fdset
338                 authdes_getucred         htonl                  svc_getreq
339                 authdes_pk_create        htons                  svc_getreq_common
340                 authnone_create          if_freenameindex       svc_getreq_poll
341                 authunix_create          if_indextoname         svc_getreqset
342                 authunix_create_default  if_nameindex           svc_max_pollfd
343                 bindresvport             if_nametoindex         svc_pollfd
344                 callrpc                  in6addr_any            svcraw_create
345                 cbc_crypt                in6addr_loopback       svc_register
346                 clnt_broadcast           inet6_opt_append       svc_run
347                 clnt_create              inet6_opt_find         svc_sendreply
348                 clnt_pcreateerror        inet6_opt_finish       svctcp_create
349                 clnt_perrno              inet6_opt_get_val      svcudp_bufcreate
350                 clnt_perror              inet6_opt_init         svcudp_create
351                 clntraw_create           inet6_option_alloc     svcudp_enablecache
352                 clnt_spcreateerror       inet6_option_append    svcunix_create
353                 clnt_sperrno             inet6_option_find      svcunixfd_create
354                 clnt_sperror             inet6_option_init      svc_unregister
355                 clnttcp_create           inet6_option_next      user2netname
356                 clntudp_bufcreate        inet6_option_space     xdecrypt
357                 clntudp_create           inet6_opt_next         xdr_accepted_reply
358                 clntunix_create          inet6_opt_set_val      xdr_array
359                 des_setparity            inet6_rth_add          xdr_authdes_cred
360                 ecb_crypt                inet6_rth_getaddr      xdr_authdes_verf
361                 endaliasent              inet6_rth_init         xdr_authunix_parms
362                 endhostent               inet6_rth_reverse      xdr_bool
363                 endnetent                inet6_rth_segments     xdr_bytes
364                 endnetgrent              inet6_rth_space        xdr_callhdr
365                 endprotoent              inet_addr              xdr_callmsg
366                 endrpcent                inet_aton              xdr_char
367                 endservent               inet_lnaof             xdr_cryptkeyarg
368                 ether_aton               inet_makeaddr          xdr_cryptkeyarg2
369                 ether_aton_r             inet_netof             xdr_cryptkeyres
370                 ether_hostton            inet_network           xdr_des_block
371                 ether_line               inet_nsap_addr         xdr_double
372                 ether_ntoa               inet_nsap_ntoa         xdr_enum
373                 ether_ntoa_r             inet_ntoa              xdr_float
374                 ether_ntohost            inet_ntop              xdr_free
375                 freeaddrinfo             inet_pton              xdr_getcredres
376                 freeifaddrs              innetgr                xdr_hyper
377                 gai_strerror             iruserok               xdr_int
378                 getaddrinfo              iruserok_af            xdr_int16_t
379                 getaliasbyname           key_decryptsession     xdr_int32_t
380                 getaliasbyname_r         key_decryptsession_pk  xdr_int64_t
381                 getaliasent              key_encryptsession     xdr_int8_t
382                 getaliasent_r            key_encryptsession_pk  xdr_keybuf
383                 gethostbyaddr            key_gendes             xdr_key_netstarg
384                 gethostbyaddr_r          key_get_conv           xdr_key_netstres
385                 gethostbyname            key_secretkey_is_set   xdr_keystatus
386                 gethostbyname2           key_setnet             xdr_long
387                 gethostbyname2_r         key_setsecret          xdr_longlong_t
388                 gethostbyname_r          netname2host           xdrmem_create
389                 gethostent               netname2user           xdr_netnamestr
390                 gethostent_r             ntohl                  xdr_netobj
391                 getifaddrs               ntohs                  xdr_opaque
392                 getipv4sourcefilter      passwd2des             xdr_opaque_auth
393                 get_myaddress            pmap_getmaps           xdr_pmap
394                 getnameinfo              pmap_getport           xdr_pmaplist
395                 getnetbyaddr             pmap_rmtcall           xdr_pointer
396                 getnetbyaddr_r           pmap_set               xdr_quad_t
397                 getnetbyname             pmap_unset             xdrrec_create
398                 getnetbyname_r           rcmd                   xdrrec_endofrecord
399                 getnetent                rcmd_af                xdrrec_eof
400                 getnetent_r              registerrpc            xdrrec_skiprecord
401                 getnetgrent              res_init               xdr_reference
402                 getnetgrent_r            rexec                  xdr_rejected_reply
403                 getnetname               rexec_af               xdr_replymsg
404                 getprotobyname           rexecoptions           xdr_rmtcall_args
405                 getprotobyname_r         rpc_createerr          xdr_rmtcallres
406                 getprotobynumber         rresvport              xdr_short
407                 getprotobynumber_r       rresvport_af           xdr_sizeof
408                 getprotoent              rtime                  xdrstdio_create
409                 getprotoent_r            ruserok                xdr_string
410                 getpublickey             ruserok_af             xdr_u_char
411                 getrpcbyname             ruserpass              xdr_u_hyper
412                 getrpcbyname_r           setaliasent            xdr_u_int
413                 getrpcbynumber           sethostent             xdr_uint16_t
414                 getrpcbynumber_r         setipv4sourcefilter    xdr_uint32_t
415                 getrpcent                setnetent              xdr_uint64_t
416                 getrpcent_r              setnetgrent            xdr_uint8_t
417                 getrpcport               setprotoent            xdr_u_long
418                 getsecretkey             setrpcent              xdr_u_longlong_t
419                 getservbyname            setservent             xdr_union
420                 getservbyname_r          setsourcefilter        xdr_unixcred
421                 getservbyport            svcauthdes_stats       xdr_u_quad_t
422                 getservbyport_r          svcerr_auth            xdr_u_short
423                 getservent               svcerr_decode          xdr_vector
424                 getservent_r             svcerr_noproc          xdr_void
425                 getsourcefilter          svcerr_noprog          xdr_wrapstring
426                 h_errlist                svcerr_progvers        xencrypt
427                 h_errno                  svcerr_systemerr       xprt_register
428                 herror                   svcerr_weakauth        xprt_unregister
429                 h_nerr                   svc_exit
430                 host2netname             svcfd_create
431
432           - The rpcgen, nscd, and rpcinfo commands are not installed.
433
434           - The 'rpc' file (a text file listing RPC services) is not installed.
435
436           Socket-related system calls do not fall in this option group,
437           because many are also used for other inter-process
438           communication mechanisms.  For example, the 'syslog' routines
439           use Unix-domain sockets to communicate with the syslog daemon;
440           syslog is valuable in non-networked contexts.
441
442
443 config EGLIBC_OPTION_EGLIBC_INET_ANL
444         bool "Asynchronous name lookup"
445         default y
446         depends EGLIBC_VERSION_2_12
447         select EGLIBC_OPTION_EGLIBC_INET
448         help
449           This option group includes the `libanl' library which
450           provides support for asynchronous name lookup.
451
452
453 config EGLIBC_OPTION_EGLIBC_LIBM
454         bool "libm (math library)"
455         default y
456         help
457           This option group includes the 'libm' library, containing
458           mathematical functions.  If this option group is omitted, then
459           an EGLIBC installation does not include shared or unshared versions
460           of the math library.
461
462           Note that this does not remove all floating-point related
463           functionality from EGLIBC; for example, 'printf' and 'scanf'
464           can still print and read floating-point values with this option
465           group disabled.
466
467           Note that the ISO Standard C++ library 'libstdc++' depends on
468           EGLIBC's math library 'libm'.  If you disable this option
469           group, you will not be able to build 'libstdc++' against the
470           resulting EGLIBC installation.
471
472
473 config EGLIBC_OPTION_EGLIBC_LIBM_BIG
474         bool "Math library size"
475         default y
476         depends EGLIBC_VERSION_2_12
477         help
478           This option group enables default configuration of the math library.
479           Not selecting this option group removes most of the extended and
480           double precision math functions and replaces them with wrappers
481           to the single precision couterparts.
482           Doing so greatly degrades quality of calculations carried
483           out by the functions of the math library, but also significantly
484           reduces the size of the libm.
485           This option group is useful for systems that do not rely on precise
486           floating point math.
487
488
489 config EGLIBC_OPTION_EGLIBC_LOCALES
490         bool "Locale definitions"
491         default y
492         help
493           This option group includes all locale definitions other than
494           that for the "C" locale.  If this option group is omitted, then
495           only the "C" locale is supported.
496
497
498 config EGLIBC_OPTION_EGLIBC_LOCALE_CODE
499         bool "Locale functions"
500         default y
501         select EGLIBC_OPTION_POSIX_C_LANG_WIDE_CHAR if EGLIBC_VERSION_2_8 || EGLIBC_VERSION_2_9 || EGLIBC_VERSION_2_10 || EGLIBC_VERSION_2_11 ||  EGLIBC_VERSION_2_12
502         help
503           This option group includes locale support functions, programs,
504           and libraries.  With EGLIBC_OPTION_EGLIBC_LOCALE_CODE disabled,
505           EGLIBC supports only the 'C' locale (also known as 'POSIX'),
506           and ignores the settings of the 'LANG' and 'LC_*' environment
507           variables.
508
509           With EGLIBC_OPTION_EGLIBC_LOCALE_CODE disabled, the following
510           functions are omitted from libc:
511
512                 duplocale   localeconv  nl_langinfo    rpmatch  strfmon_l
513                 freelocale  newlocale   nl_langinfo_l  strfmon  uselocale
514
515           Furthermore, only the LC_CTYPE and LC_TIME categories of the
516           standard "C" locale are available.
517
518           The EGLIBC_OPTION_EGLIBC_CATGETS option group depends on this option
519           group; if you disable EGLIBC_OPTION_EGLIBC_LOCALE_CODE, you must also
520           disable EGLIBC_OPTION_EGLIBC_CATGETS.
521
522
523 config EGLIBC_OPTION_EGLIBC_MEMUSAGE
524         bool "Memory profiling library"
525         default y
526         depends EGLIBC_VERSION_2_11 ||  EGLIBC_VERSION_2_12
527         help
528           This option group includes the `libmemusage' library and
529           the `memusage' and `memusagestat' utilities.
530           These components provide memory profiling functions.
531
532           EGLIBC_OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE
533
534           Libmemusage library buffers the profiling data in memory
535           before writing it out to disk.  By default, the library
536           allocates 1.5M buffer, which can be substantial for some
537           systems.  EGLIBC_OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE option
538           allows to change the default buffer size.  It specifies
539           the number of entries the buffer should have.
540           On most architectures one buffer entry amounts to 48 bytes,
541           so setting this option to the value of 512 will reduce the size of
542           the memory buffer to 24K.
543
544
545 config EGLIBC_OPTION_EGLIBC_NIS
546         bool "Support for NIS, NIS+, and the special 'compat' services."
547         default y
548         select EGLIBC_OPTION_EGLIBC_INET
549         select EGLIBC_OPTION_EGLIBC_SUNRPC
550         help
551           This option group includes the NIS, NIS+, and 'compat' Name
552           Service Switch service libraries.  When it is disabled, those
553           services libraries are not installed; you should remove any
554           references to them from your 'nsswitch.conf' file.
555
556           This option group depends on the EGLIBC_OPTION_EGLIBC_INET option
557           group; you must enable that to enable this option group.
558
559
560 config EGLIBC_OPTION_EGLIBC_NSSWITCH
561         bool "Name service switch (nsswitch) support"
562         default y
563         select EGLIBC_OPTION_EGLIBC_INET
564         help
565
566           This option group includes support for the 'nsswitch' facility.
567           With this option group enabled, all EGLIBC functions for
568           accessing various system databases (passwords and groups;
569           networking; aliases; public keys; and so on) consult the
570           '/etc/nsswitch.conf' configuration file to decide how to handle
571           queries.
572
573           With this option group disabled, EGLIBC uses a fixed list of
574           services to satisfy queries on each database, as requested by
575           configuration files specified when EGLIBC is built.  Your
576           'option-groups.config' file must set the following two
577           variables:
578
579           EGLIBC_OPTION_EGLIBC_NSSWITCH_FIXED_CONFIG
580
581                 Set this to the name of a file whose contents observe the
582                 same syntax as an ordinary '/etc/nsswitch.conf' file.  The
583                 EGLIBC build process parses this file just as EGLIBC would
584                 at run time if EGLIBC_NSSWITCH were enabled, and
585                 produces a C library that uses the nsswitch service
586                 libraries to search for database entries as this file
587                 specifies, instead of consulting '/etc/nsswitch.conf' at run
588                 time.
589
590                 This should be an absolute filename.  The EGLIBC build
591                 process may use it from several different working
592                 directories.  It may include references to Makefile
593                 variables like 'common-objpfx' (the top of the build tree,
594                 with a trailing slash), or '..' (the top of the source tree,
595                 with a trailing slash).
596
597                 The EGLIBC source tree includes a sample configuration file
598                 named 'nss/fixed-nsswitch.conf'; for simple configurations,
599                 you will probably want to delete references to databases not
600                 needed on your system.
601
602           EGLIBC_OPTION_EGLIBC_NSSWITCH_FIXED_FUNCTIONS
603
604                 The EGLIBC build process uses this file to decide which
605                 functions to make available from which service libraries.
606                 The file 'nss/fixed-nsswitch.functions' serves as a sample
607                 configuration file for this setting, and explains its syntax
608                 and meaning in more detail.
609
610                 This should be an absolute file name.  The EGLIBC build
611                 process may use it from several different working
612                 directories.  It may include references to Makefile
613                 variables like 'common-objpfx' (the top of the build tree,
614                 with a trailing slash), or '..' (the top of the source tree,
615                 with a trailing slash).
616
617                 Be sure to mention each function in each service you wish to
618                 use.  If you do not mention a service's function here, the
619                 EGLIBC database access functions will not find it, even if
620                 it is listed in the EGLIBC_OPTION_EGLIBC_NSSWITCH_FIXED_CONFIG
621                 file.
622
623           In this arrangement, EGLIBC will not use the 'dlopen' and
624           'dlsym' functions to find database access functions.  Instead,
625           libc hard-codes references to the service libraries' database
626           access functions.  You must explicitly link your program
627           against the name service libraries (those whose names start
628           with 'libnss_', in the sysroot's '/lib' directory) whose
629           functions you intend to use.  This arrangement helps
630           system-wide static analysis tools decide which functions a
631           system actually uses.
632
633           Note that some nsswitch service libraries require other option
634           groups to be enabled; for example, the EGLIBC_OPTION_EGLIBC_INET
635           option group must be enabled to use the 'libnss_dns.so.2'
636           service library, which uses the Domain Name System network
637           protocol to answer queries.
638
639
640 config EGLIBC_OPTION_EGLIBC_RCMD
641         bool "Support for 'rcmd' and related library functions"
642         default y
643         select EGLIBC_OPTION_EGLIBC_INET
644         help
645           This option group includes functions for running commands on
646           remote machines via the 'rsh' protocol, and doing authentication
647           related to those functions.  This also includes functions that
648           use the 'rexec' protocol.
649
650           This option group includes the following functions:
651
652                 rcmd            ruserok
653                 rcmd_af         ruserok_af
654                 rexec           iruserok
655                 rexec_af        iruserok_af
656                 rresvport       ruserpass
657                 rresvport_af
658
659
660 config EGLIBC_OPTION_EGLIBC_RTLD_DEBUG
661         bool "Runtime linker debug print outs"
662         default y
663         depends EGLIBC_VERSION_2_12
664         help
665           This option group enables debug output of the runtime linker
666           which is activated via LD_DEBUG and LD_TRACE_PRELINKING
667           environment variables.  Disabling this option group yields
668           a smaller runtime linker binary.
669           BEWARE: Disabling this option group is likely to break
670           the `ldd' utility which may also be used by the prelinker.
671           In particular, the `--unused' ldd option will not work correctly.
672
673
674 config EGLIBC_OPTION_EGLIBC_SPAWN
675         bool "Support for POSIX posix_spawn functions"
676         default y
677         help
678           This option group includes the POSIX functions for executing
679           programs in child processes without using 'fork' or 'vfork'.
680
681           This option group includes the following functions:
682
683                 posix_spawn
684                 posix_spawnattr_destroy
685                 posix_spawnattr_getflags
686                 posix_spawnattr_getpgroup
687                 posix_spawnattr_getschedparam
688                 posix_spawnattr_getschedpolicy
689                 posix_spawnattr_getsigdefault
690                 posix_spawnattr_getsigmask
691                 posix_spawnattr_init
692                 posix_spawnattr_setflags
693                 posix_spawnattr_setpgroup
694                 posix_spawnattr_setschedparam
695                 posix_spawnattr_setschedpolicy
696                 posix_spawnattr_setsigdefault
697                 posix_spawnattr_setsigmask
698                 posix_spawn_file_actions_addclose
699                 posix_spawn_file_actions_adddup2
700                 posix_spawn_file_actions_addopen
701                 posix_spawn_file_actions_destroy
702                 posix_spawn_file_actions_init
703                 posix_spawnp
704
705           This option group also provides the ability for the iconv,
706           localedef, and locale programs to operate transparently on
707           compressed charset definitions.  When this option group is
708           disabled, those programs will only operate on uncompressed
709           charmap files.
710
711
712 config EGLIBC_OPTION_EGLIBC_STREAMS
713         bool "Support for accessing STREAMS."
714         default y
715         help
716           This option group includes functions for reading and writing
717           messages to and from STREAMS.  The STREAMS interface provides a
718           uniform mechanism for implementing networking services and other
719           character-based I/O.  (STREAMS are not to be confused with
720           <stdio.h> FILE objects, also called 'streams'.)
721
722           This option group includes the following functions:
723
724                 getmsg          putpmsg
725                 getpmsg         fattach
726                 isastream       fdetach
727                 putmsg
728
729
730 config EGLIBC_OPTION_EGLIBC_SUNRPC
731         bool "Support for the Sun 'RPC' protocol."
732         default y
733         select EGLIBC_OPTION_EGLIBC_INET
734         help
735           This option group includes support for the Sun RPC protocols,
736           including the 'rpcgen' and 'rpcinfo' programs.
737
738
739 config EGLIBC_OPTION_EGLIBC_UTMP
740         bool "Older access functions for 'utmp' login records"
741         default y
742         help
743           This option group includes the older 'utent' family of
744           functions for accessing user login records in the 'utmp' file.
745           POSIX omits these functions in favor of the 'utxent' family,
746           and they are obsolete on systems other than Linux.
747
748           This option group includes the following functions:
749
750                 endutent
751                 getutent
752                 getutent_r
753                 getutid
754                 getutid_r
755                 getutline
756                 getutline_r
757                 logwtmp
758                 pututline
759                 setutent
760                 updwtmp
761                 utmpname
762
763           This option group includes the following libraries:
764
765                 libutil.so (and libutil.a)
766
767
768 config EGLIBC_OPTION_EGLIBC_UTMPX
769         bool "POSIX access functions for 'utmp' login records"
770         default y
771         select EGLIBC_OPTION_EGLIBC_UTMP    
772         help
773           This option group includes the POSIX functions for reading and
774           writing user login records in the 'utmp' file (usually
775           '/var/run/utmp').  The POSIX functions operate on 'struct
776           utmpx' structures, as opposed to the family of older 'utent'
777           functions, which operate on 'struct utmp' structures.
778
779           This option group includes the following functions:
780
781                 endutxent
782                 getutmp
783                 getutmpx
784                 getutxent
785                 getutxid
786                 getutxline
787                 pututxline
788                 setutxent
789                 updwtmpx
790                 utmpxname
791
792
793 config EGLIBC_OPTION_EGLIBC_WORDEXP
794         bool "Shell-style word expansion"
795         default y
796         help
797           This option group includes the 'wordexp' function for
798           performing word expansion in the manner of the shell, and the
799           accompanying 'wordfree' function.
800
801
802 config EGLIBC_OPTION_POSIX_C_LANG_WIDE_CHAR
803         bool "ISO C library wide character functions, excluding I/O"
804         default y
805         depends EGLIBC_VERSION_2_8 || EGLIBC_VERSION_2_9 || EGLIBC_VERSION_2_10 || EGLIBC_VERSION_2_11 ||  EGLIBC_VERSION_2_12
806         help
807           This option group includes the functions defined by the ISO C
808           standard for working with wide and multibyte characters in
809           memory.  Functions for reading and writing wide and multibyte
810           characters from and to files call in the
811           EGLIBC_OPTION_POSIX_WIDE_CHAR_DEVICE_IO option group.
812
813           This option group includes the following functions:
814
815                 btowc         mbsinit       wcscspn       wcstoll
816                 iswalnum      mbsrtowcs     wcsftime      wcstombs
817                 iswalpha      mbstowcs      wcslen        wcstoul
818                 iswblank      mbtowc        wcsncat       wcstoull
819                 iswcntrl      swprintf      wcsncmp       wcstoumax
820                 iswctype      swscanf       wcsncpy       wcsxfrm
821                 iswdigit      towctrans     wcspbrk       wctob
822                 iswgraph      towlower      wcsrchr       wctomb
823                 iswlower      towupper      wcsrtombs     wctrans
824                 iswprint      vswprintf     wcsspn        wctype
825                 iswpunct      vswscanf      wcsstr        wmemchr
826                 iswspace      wcrtomb       wcstod        wmemcmp
827                 iswupper      wcscat        wcstof        wmemcpy
828                 iswxdigit     wcschr        wcstoimax     wmemmove
829                 mblen         wcscmp        wcstok        wmemset
830                 mbrlen        wcscoll       wcstol
831                 mbrtowc       wcscpy        wcstold
832
833
834 config EGLIBC_OPTION_POSIX_REGEXP
835         bool "Regular expressions"
836         default y
837         help
838           This option group includes the POSIX regular expression
839           functions, and the associated non-POSIX extensions and
840           compatibility functions.
841
842           With EGLIBC_OPTION_POSIX_REGEXP disabled, the following functions are
843           omitted from libc:
844
845                 re_comp                 re_max_failures         regcomp
846                 re_compile_fastmap      re_search               regerror
847                 re_compile_pattern      re_search_2             regexec
848                 re_exec                 re_set_registers        regfree
849                 re_match                re_set_syntax           rpmatch
850                 re_match_2              re_syntax_options
851
852           Furthermore, the compatibility regexp interface defined in the
853           <regexp.h> header file, 'compile', 'step', and 'advance', is
854           omitted.
855
856
857 config EGLIBC_OPTION_POSIX_REGEXP_GLIBC
858         bool "Regular expressions from GLIBC"
859         default y
860         depends EGLIBC_VERSION_2_10 || EGLIBC_VERSION_2_11 ||  EGLIBC_VERSION_2_12
861         select EGLIBC_OPTION_POSIX_REGEXP
862         help
863           This option group specifies which regular expression
864           library to use.  The choice is between regex
865           implementation from GLIBC and regex implementation from
866           libiberty.  The GLIBC variant is fully POSIX conformant and
867           optimized for speed; regex from libiberty is more than twice
868           as small while still is enough for most practical purposes.
869
870
871 config EGLIBC_OPTION_POSIX_WIDE_CHAR_DEVICE_IO
872         bool "Input and output functions for wide characters"
873         default y
874         select EGLIBC_OPTION_POSIX_C_LANG_WIDE_CHAR if EGLIBC_VERSION_2_8 || EGLIBC_VERSION_2_9 || EGLIBC_VERSION_2_10 || EGLIBC_VERSION_2_11 ||  EGLIBC_VERSION_2_12
875         help
876           This option group includes functions for reading and writing
877           wide characters to and from <stdio.h> streams.
878
879           This option group includes the following functions:
880
881                 fgetwc        fwprintf      putwchar      vwscanf
882                 fgetws        fwscanf       ungetwc       wprintf
883                 fputwc        getwc         vfwprintf     wscanf
884                 fputws        getwchar      vfwscanf
885                 fwide         putwc         vwprintf
886
887           This option group further includes the following unlocked
888           variants of the above functions:
889
890                 fgetwc_unlocked           getwc_unlocked
891                 fgetws_unlocked           getwchar_unlocked
892                 fputwc_unlocked           putwc_unlocked
893                 fputws_unlocked           putwchar_unlocked
894                                         
895           Note that the GNU standard C++ library, 'libstdc++.so', uses
896           some of these functions; you will not be able to link or run
897           C++ programs if you disable this option group.
898
899           This option group also affects the behavior of the following
900           functions:
901
902                 fdopen
903                 fopen
904                 fopen64
905                 freopen
906                 freopen64
907
908           These functions all take an OPENTYPE parameter which may
909           contain a string of the form ",ccs=CHARSET", indicating that
910           the underlying file uses the character set named CHARSET.
911           This produces a wide-oriented stream, which is only useful
912           when the functions included in this option group are present.
913           If the user attempts to open a file specifying a character set
914           in the OPENTYPE parameter, and EGLIBC was built with this
915           option group disabled, the function returns NULL, and sets
916           errno to EINVAL.