Note: List of all the utilities and libraries included into Glibc is available from the "Linux From Sratch" project page.
This information is valid for glibc versions 2.x, x >= 2.
GCONV_PATH Directories in which iconv() looks for character encoding libraries
I18NPATH Used by locale tools to find locale input files (char maps etc)
LOCPATH Set locale data path, not for suid or sgid programs
OUTPUT_CHARSET Used by message catalog loader
NLSPATH Directories in which catopen() looks for message catalogs
LANG Which message catalog to use
LANGUAGE Overrides LANG and LC_* settings for message catalogs
LC_ALL Overrides the locales selected by other LC_* variables
LC_CTYPE Character classification and case conversion
LC_COLLATE Collation order (string sorting)
LC_TIME Date and time formats
LC_NUMERIC Non-monetary numeric form
LC_MONETARY Monetary formats
LC_MESSAGES Formats of informative and diagnostic messages and interactive responses
For generic info on C-library locales, see 'info libc Locale'.
LD_BIND_NOT Flag: if set, Don't update the GOT (global offset table) and PLT (procedure linkage table) after resolving a symbol
LD_BIND_NOW Flag: Resolve all symbols at program startup, useful with debugger
LD_DEBUG Output verbose debugging information about the dynamic linker. If set to 'all' prints all debugging information it has, if set to 'help' prints a help message
LD_DEBUG_PATH Filename for LD_DEBUG output (otherwise it goes to stdout)
LD_DYNAMIC_WEAK Allow weak symbols to be overridden (old glibc behaviour)
LD_HWCAP_MASK Set hardware capability / platform mask
LD_LIBRARY_PATH A colon-separated list of directories in which to search for ELF libraries at execution-time
LD_PRELOAD A whitespace-separated list of additional, user-specified, ELF shared libraries to be loaded before all others. This can be used to selectively override functions in other shared libraries. For setuid/setgid ELF binaries, only libraries in the standard search directories that are also setuid will be loaded
LD_ORIGIN_PATH Path where the binary is found
LD_PROFILE Shared object to be profiled
LD_PROFILE_OUTPUT File where LD_PROFILE output should be stored, default is stdout
LD_SHOW_AUXV Show auxiliary array passed up from the kernel
LD_TRACE_LOADED_OBJECTS Flag: if set, list dependencies instead of running (like ldd!)
LD_WARN Flag: if set, warn about about undefined symbols
LD_VERBOSE Flag: If set, output symbol versioning information about the program if querying information about it (see LD_TRACE_LOADED_OBJECTS)
For more information on dynamic linker, see 'man ld.so'.
Note: Dynamic linking code unsets certain environment variables for suid binaries. These environment variables are:
GCONV_PATH
HOSTALIASES
LD_AOUT_LIBRARY_PATH
LD_AOUT_PRELOAD
LD_DEBUG_OUTPUT
LD_LIBRARY_PATH
LD_ORIGIN_PATH
LD_PRELOAD
LD_PROFILE
LOCALDOMAIN
LOCPATH
MALLOC_TRACE
NLSPATH
RESOLV_HOST_CONF
RES_OPTIONS
TMPDIR
TZDIR
Unless there's a file '/etc/suid-debug', also MALLOC_CHECK_ variable is unset.
GMON_OUT_PREFIX Change -pg (gcc profiling option) output file from default 'gmon.out' to"${GMON_OUT_PREFIX}.${PID}" MALLOC_CHECK_ Set what to do when corrupt pointer is detected with malloc debugging: 0: do nothing 1: print an error message (default) 2: call abort()
MALLOC_MMAP_MAX_ MALLOC_MMAP_THRESHOLD_ MALLOC_TOP_PAD_ MALLOC_TRIM_THRESHOLD_ Above four variables are used for tuning glibc allocation routines. For (lots of) information on
their effect, see documentation in glibc malloc/malloc.c file ("MALLOC_TOP_PAD_" -> M_TOP_PAD etc). MALLOC_TRACE Set
malloc trace output file / enable mtrace() use, for example: 1. Add call to mtrace() to start of main() 2. Recompile
& link 3. Execute: MALLOC_TRACE=heap.log ./myprog 4. Execute: mtrace myprog heap.log -> list of memory
leaks
Note: 'mtrace' is a Perl script coming with glibc. For more information, see 'info libc "Memory Allocation" "Allocation Debugging"'.
MEMUSAGE_BUFFER_SIZE Size (number of elements) in internal buffer, 1=unbuffered
MEMUSAGE_NO_TIMER Flag: if NOT set, stack pointer is recorded at highest possible frequency
MEMUSAGE_OUTPUT Name of the output file
MEMUSAGE_PROG_NAME If not present, every program assumes it should do profiling.
Otherwise only the indicated program does profiling
MEMUSAGE_TRACE_MMAP Flag: if set, also mmap functions details are traced
Note: 'memusage' is a shell script coming with glibc which LD_PRELOADs binaries with memusage library understanding above variables.
PCPROFILE_OUTPUT Name of the FIFO for PC (program counter?) profile
SEGFAULT_OUTPUT_NAME Name of the output (backtrace etc) file (default is stderr)
SEGFAULT_SIGNALS List of signals generating segfault: segv, ill, bus, stkflt,
abrt, fpe
SEGFAULT_USE_ALTSTACK Flag: if set, allocate separate stack for segfaults
Note: 'catchsegv' is a shell script coming with glibc which LD_PRELOADs binaries with segfault library understanding above variables.
MSGVERB SEV_LEVEL Mask of msgfmt() values to print (label, severity, text, action, tag) and severity level
setting for msgfmt()
HOSTALIASES Filename for the host aliases file
LOCALDOMAIN Allows user to overide local domain name
RES_OPTIONS Set options at resolver init
RESOLV_HOST_CONF Filename for the host.conf file
RESOLV_ADD_TRIM_DOMAINS RESOLV_MULTI RESOLV_OVERRIDE_TRIM_DOMAINS RESOLV_REORDER RESOLV_SERV_ORDER RESOLV_SPOOF_CHECK Override default resolver behaviour
For more information, see 'man resolv.conf'.
DATEMSK Name of template file for getdate() function
HZ On platforms without itimer, this can be used to set clock resolution
TZ Set timezone / daylight savings time, see 'info libc TZ'
TZDIR Alternate path for timezone files (default is /usr/share/zoneinfo)
HOME User's home directory
IFS Field separator (e.g. in path lists)
PATH Paths from which executables can be run from
PWD Working directory
TMPDIR Temporary directory path
You can get some more information with 'info libc "Standard Environment".
POSIXLY_CORRECT - getopt: without this, arguments have to be given first - fnmatch: affect bracket handling in
filename patterns - makes localedef tool verbose
ARGP_HELP_FMT Set help output for argument parser
You can use 'getconf' utility compiled with glibc to query values in certain variables used by glibc. Here's a list
of variables supported by the Scratchbox glibc (ones not starting with underscore). You can get more info on some of
these with 'info libc "Variable Index"':
AIO_LISTIO_MAX
AIO_MAX
AIO_PRIO_DELTA_MAX
ARG_MAX
ATEXIT_MAX
BC_BASE_MAX
BC_DIM_MAX
BC_SCALE_MAX
BC_STRING_MAX
CHARCLASS_NAME_MAX
CHAR_BIT
CHAR_MAX
CHAR_MIN
CHILD_MAX
CLK_TCK
COLL_WEIGHTS_MAX
CS_PATH
DELAYTIMER_MAX
EQUIV_CLASS_MAX
EXPR_NEST_MAX
GNU_LIBC_VERSION
GNU_LIBPTHREAD_VERSION
HOST_NAME_MAX
INT_MAX
INT_MIN
IOV_MAX
LFS64_CFLAGS
LFS64_LDFLAGS
LFS64_LIBS
LFS64_LINTFLAGS
LFS_CFLAGS
LFS_LDFLAGS
LFS_LIBS
LFS_LINTFLAGS
LINE_MAX
LOGIN_NAME_MAX
LOGNAME_MAX
LONG_BIT
MB_LEN_MAX
MQ_OPEN_MAX
MQ_PRIO_MAX
NGROUPS_MAX
NL_ARGMAX
NL_LANGMAX
NL_MSGMAX
NL_NMAX
NL_SETMAX
NL_TEXTMAX
NSS_BUFLEN_GROUP
NSS_BUFLEN_PASSWD
NZERO
OPEN_MAX
PAGESIZE
PAGE_SIZE
PASS_MAX
PATH
POSIX2_BC_BASE_MAX
POSIX2_BC_DIM_MAX
POSIX2_BC_SCALE_MAX
POSIX2_BC_STRING_MAX
POSIX2_CHAR_TERM
POSIX2_COLL_WEIGHTS_MAX
POSIX2_C_BIND
POSIX2_C_DEV
POSIX2_C_VERSION
POSIX2_EXPR_NEST_MAX
POSIX2_FORT_DEV
POSIX2_FORT_RUN
POSIX2_LOCALEDEF
POSIX2_PBS
POSIX2_PBS_ACCOUNTING
POSIX2_PBS_LOCATE
POSIX2_PBS_MESSAGE
POSIX2_PBS_TRACK
POSIX2_RE_DUP_MAX
POSIX2_SW_DEV
POSIX2_UPE
POSIX2_VERSION
POSIX_V6_ILP32_OFF32_CFLAGS
POSIX_V6_ILP32_OFF32_LDFLAGS
POSIX_V6_ILP32_OFF32_LIBS
POSIX_V6_ILP32_OFF32_LINTFLAGS
POSIX_V6_ILP32_OFFBIG_CFLAGS
POSIX_V6_ILP32_OFFBIG_LDFLAGS
POSIX_V6_ILP32_OFFBIG_LIBS
POSIX_V6_ILP32_OFFBIG_LINTFLAGS
POSIX_V6_LP64_OFF64_CFLAGS
POSIX_V6_LP64_OFF64_LDFLAGS
POSIX_V6_LP64_OFF64_LIBS
POSIX_V6_LP64_OFF64_LINTFLAGS
POSIX_V6_LPBIG_OFFBIG_CFLAGS
POSIX_V6_LPBIG_OFFBIG_LDFLAGS
POSIX_V6_LPBIG_OFFBIG_LIBS
POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
PTHREAD_DESTRUCTOR_ITERATIONS
PTHREAD_KEYS_MAX
PTHREAD_STACK_MIN
PTHREAD_THREADS_MAX
RE_DUP_MAX
RTSIG_MAX
SCHAR_MAX
SCHAR_MIN
SEM_NSEMS_MAX
SEM_VALUE_MAX
SHRT_MAX
SHRT_MIN
SIGQUEUE_MAX
SSIZE_MAX
STREAM_MAX
SYMLOOP_MAX
TIMER_MAX
TTY_NAME_MAX
TZNAME_MAX
UCHAR_MAX
UINT_MAX
UIO_MAXIOV
ULONG_MAX
USHRT_MAX
WORD_BIT
XBS5_ILP32_OFF32_CFLAGS
XBS5_ILP32_OFF32_LDFLAGS
XBS5_ILP32_OFF32_LIBS
XBS5_ILP32_OFF32_LINTFLAGS
XBS5_ILP32_OFFBIG_CFLAGS
XBS5_ILP32_OFFBIG_LDFLAGS
XBS5_ILP32_OFFBIG_LIBS
XBS5_ILP32_OFFBIG_LINTFLAGS
XBS5_LP64_OFF64_CFLAGS
XBS5_LP64_OFF64_LDFLAGS
XBS5_LP64_OFF64_LIBS
XBS5_LP64_OFF64_LINTFLAGS
XBS5_LPBIG_OFFBIG_CFLAGS
XBS5_LPBIG_OFFBIG_LDFLAGS
XBS5_LPBIG_OFFBIG_LIBS
XBS5_LPBIG_OFFBIG_LINTFLAGS
You can use this script to recreate the above list:
#!/bin/sh
#
# Script for checking what options glibc getconf supports
# (i.e. what limits / options are set in glibc source)
src=~/glibc-2.3.2/posix/getconf.c
bin=/scratchbox/compilers/i386-linux-glibc/usr/bin/getconf
if [ ! -f $src ]; then
echo "ERROR: getconf source not found in:"
echo " '$src'"
exit
fi
if [ ! -f $bin ]; then
echo "ERROR: getconf binary not found in:"
echo " '$bin'"
exit
fi
# get all the possible variables in glibc getconf source
echo "List of glibc variables supported by getconf:"
for i in $(grep '{ "[A-Z_0-9]+"' $src|sed 's/^.*"([A-Z_0-9]+)".*$/1/'|sort) do
# check which of them have been compiled to the binary
$bin $i >/dev/null 2>&1
if [ $? -eq 0 ]; then
echo -e "t$i"
fi
done