Config - access Perl configuration information
use Config;
if ($Config{usethreads}) {
print "has thread support\n"
}
π Check configuration variables directly via the %Config hash.
use Config qw(myconfig config_sh config_vars config_re);
π¦ Import specific functions for querying build-time configuration.
print myconfig();
π¨οΈ Print a human-readable summary of all configuration values.
print config_sh();
π Dump the entire config.sh shell variable listing.
print config_re();
π§Ύ Print the configuration as a Perl eval-able hash reference string.
config_vars(qw(osname archname));
π― Print specific config variables by name (here: OS name and architecture).
DESCRIPTION The Config module contains all the information that was available to the "Configure" program at Perl build time (over 900 values). Shell variables from the config.sh file (written by Configure) are stored in the readonly-variable %Config, indexed by their names. Values stored in config.sh as 'undef' are returned as undefined values. The perl "exists" function can be used to check if a named variable exists. For a description of the variables, please have a look at the Glossary file, as written in the Porting folder, or use the url: https://github.com/Perl/perl5/blob/blead/Porting/Glossary myconfig() Returns a textual summary of the major perl configuration values. See also "-V" in "Command Switches" in perlrun. config_sh() Returns the entire perl configuration information in the form of the original config.sh shell variable assignment script. config_re($regex) Like config_sh() but returns, as a list, only the config entries who's names match the $regex. config_vars(@names) Prints to STDOUT the values of the named configuration variable. Each is printed on a separate line in the form: name='value'; Names which are unknown are output as "name='UNKNOWN';". See also "-V:name" in "Command Switches" in perlrun. bincompat_options() Returns a list of C pre-processor options used when compiling this perl binary, which affect its binary compatibility with extensions. "bincompat_options()" and "non_bincompat_options()" are shown together in the output of "perl -V" as Compile-time options. non_bincompat_options() Returns a list of C pre-processor options used when compiling this perl binary, which do not affect binary compatibility with extensions. compile_date() Returns the compile date (as a string), equivalent to what is shown by "perl -V" local_patches() Returns a list of the names of locally applied patches, equivalent to what is shown by "perl -V". header_files() Returns a list of the header files that should be used as dependencies for XS code, for this version of Perl on this platform.π Here's a more sophisticated example of using %Config:
use Config;
use strict;
my %sig_num;
my @sig_name;
unless($Config{sig_name} && $Config{sig_num}) {
die "No sigs?";
} else {
my @names = split ' ', $Config{sig_name};
@sig_num{@names} = split ' ', $Config{sig_num};
foreach (@names) {
$sig_name[$sig_num{$_}] ||= $_;
}
}
print "signal #17 = $sig_name[17]\n";
if ($sig_num{ALRM}) {
print "SIGALRM is $sig_num{ALRM}\n";
}
β οΈ Because this information is not stored within the perl executable itself it is possible (but unlikely) that the information does not relate to the actual perl binary which is being used to access it.
π The Config module is installed into the architecture and version specific library directory ($Config{installarchlib}) and it checks the perl version number when loaded.
π§ The values stored in config.sh may be either single-quoted or double-quoted. Double-quoted strings are handy for those cases where you need to include escape sequences in the strings. To avoid runtime variable interpolation, any "$" and "@" characters are replaced by "\$" and "\@", respectively. This isn't foolproof, of course, so don't embed "\$" or "\@" in double-quoted strings unless you're willing to deal with the consequences. (The slashes will end up escaped and the "$" or "@" will trigger variable interpolation)
βΉοΈ Most Config variables are determined by the Configure script on platforms supported by it (which is most UNIX platforms). Some platforms have custom-made Config variables, and may thus not have some of the variables described below, or may have extraneous variables specific to that particular port. See the port specific documentation in such cases.
_a β From Unix.U: This variable defines the extension used for ordinary library files. For unix, it is .a. The . is included. Other possible values include .lib._exe β From Unix.U: This variable defines the extension used for executable files. DJGPP, Cygwin and OS/2 use .exe. Stratus VOS uses .pm. On operating systems which do not require a specific extension for executable files, this variable is empty._o β From Unix.U: This variable defines the extension used for object files. For unix, it is .o. The . is included. Other possible values include .obj.afs β From afs.U: This variable is set to "true" if AFS (Andrew File System) is used on the system, "false" otherwise. It is possible to override this with a hint value or command line option, but you'd better know what you are doing.afsroot β From afs.U: This variable is by default set to /afs. In the unlikely case this is not the correct root, it is possible to override this with a hint value or command line option. This will be used in subsequent tests for AFSness in the configure and test process.alignbytes β From alignbytes.U: This variable holds the number of bytes required to align a double-- or a long double when applicable. Usual values are 2, 4 and 8. The default is eight, for safety.aphostname β From d_gethname.U: This variable contains the command which can be used to compute the host name. The command is fully qualified by its absolute path, to make it safe when used by a process with super-user privileges.api_revision β From patchlevel.U: The three variables, api_revision, api_version, and api_subversion, specify the version of the oldest perl binary compatible with the present perl. In a full version string such as 5.6.1, api_revision is the 5. Prior to 5.5.640, the format was a floating point number, like 5.00563. perl.c:incpush() and lib/lib.pm will automatically search in $sitelib/.. for older directories back to the limit specified by these api_ variables. This is only useful if you have a perl library directory tree structured like the default one. See INSTALL for how this works. The versioned site_perl directory was introduced in 5.005, so that is the lowest possible value. The version list appropriate for the current system is determined in inc_version_list.U. XXX To do: Since compatibility can depend on compile time options (such as bincompat, longlong, etc.) it should (perhaps) be set by Configure, but currently it isn't. Currently, we read a hard-wired value from patchlevel.h. Perhaps what we ought to do is take the hard-wired value from patchlevel.h but then modify it if the current Configure options warrant. patchlevel.h then would use an #ifdef guard.api_subversion β From patchlevel.U: The three variables, api_revision, api_version, and api_subversion, specify the version of the oldest perl binary compatible with the present perl. In a full version string such as 5.6.1, api_subversion is the 1. See api_revision for full details.api_version β From patchlevel.U: The three variables, api_revision, api_version, and api_subversion, specify the version of the oldest perl binary compatible with the present perl. In a full version string such as 5.6.1, api_version is the 6. See api_revision for full details. As a special case, 5.5.0 is rendered in the old-style as 5.005. (In the 5.005_0x maintenance series, this was the only versioned directory in $sitelib.)api_versionstring β From patchlevel.U: This variable combines api_revision, api_version, and api_subversion in a format such as 5.6.1 (or 5_6_1) suitable for use as a directory name. This is filesystem dependent.ar β From Loc.U: This variable is used internally by Configure to determine the full pathname (if any) of the ar program. After Configure runs, the value is reset to a plain "ar" and is not useful.archlib β From archlib.U: This variable holds the name of the directory in which the user wants to put architecture-dependent public library files for $package. It is most often a local directory such as /usr/local/lib. Programs using this variable must be prepared to deal with filename expansion.archlibexp β From archlib.U: This variable is the same as the archlib variable, but is filename expanded at configuration time, for convenient use.archname β From archname.U: This variable is a short name to characterize the current architecture. It is used mainly to construct the default archlib.archname64 β From use64bits.U: This variable is used for the 64-bitness part of $archname.archobjs β From Unix.U: This variable defines any additional objects that must be linked in with the program on this architecture. On unix, it is usually empty. It is typically used to include emulations of unix calls or other facilities. For perl on OS/2, for example, this would include os2/os2.obj.asctime_r_proto β From d_asctime_r.U: This variable encodes the prototype of asctime_r. It is zero if d_asctime_r is undef, and one of the REENTRANT_PROTO_T_ABC macros of reentr.h if d_asctime_r is defined.awk β From Loc.U: This variable is used internally by Configure to determine the full pathname (if any) of the awk program. After Configure runs, the value is reset to a plain "awk" and is not useful.baserev β From baserev.U: The base revision level of this package, from the .package file.bash β From Loc.U: This variable is defined but not used by Configure. The value is the empty string and is not useful.bin β From bin.U: This variable holds the name of the directory in which the user wants to put publicly executable images for the package in question. It is most often a local directory such as /usr/local/bin. Programs using this variable must be prepared to deal with ~name substitution.bin_ELF β From dlsrc.U: This variable saves the result from configure if generated binaries are in ELF format. Only set to defined when the test has actually been performed, and the result was positive.binexp β From bin.U: This is the same as the bin variable, but is filename expanded at configuration time, for use in your makefiles.bison β From Loc.U: This variable is used internally by Configure to determine the full pathname (if any) of the bison program. After Configure runs, the value is reset to a plain "bison" and is not useful.byacc β From Loc.U: This variable is used internally by Configure to determine the full pathname (if any) of the byacc program. After Configure runs, the value is reset to a plain "byacc" and is not useful.byteorder β From byteorder.U: This variable holds the byte order in a UV. In the following, larger digits indicate more significance. The variable byteorder is either 4321 on a big-endian machine, or 1234 on a little-endian, or 87654321 on a Cray ... or 3412 with weird order !c β From n.U: This variable contains the \c string if that is what causes the echo command to suppress newline. Otherwise it is null. Correct usage is $echo $n "prompt for a question: $c".castflags β From d_castneg.U: This variable contains a flag that precise difficulties the compiler has casting odd floating values to unsigned long: 0 = ok 1 = couldn't cast < 0 2 = couldn't cast >= 0x80000000 4 = couldn't cast in argument expression listcat β From Loc.U: This variable is used internally by Configure to determine the full pathname (if any) of the cat program. After Configure runs, the value is reset to a plain "cat" and is not useful.cc β From cc.U: This variable holds the name of a command to execute a C compiler which can resolve multiple global references that happen to have the same name. Usual values are "cc" and "gcc". Fervent ANSI compilers may be called "c89". AIX has xlc.cccdlflags β From dlsrc.U: This variable contains any special flags that might need to be passed with cc -c to compile modules to be used to create a shared library that will be used for dynamic loading. For hpux, this should be +z. It is up to the makefile to use it.ccdlflags β From dlsrc.U: This variable contains any special flags that might need to be passed to cc to link with a shared library for dynamic loading. It is up to the makefile to use it. For sunos 4.1, it should be empty.ccflags β From ccflags.U: This variable contains any additional C compiler flags desired by the user. It is up to the Makefile to use this.ccflags_uselargefiles β From uselfs.U: This variable contains the compiler flags needed by large file builds and added to ccflags by hints files.ccname β From Checkcc.U: This can set either by hints files or by Configure. If using gcc, this is gcc, and if not, usually equal to cc, unimpressive, no? Some platforms, however, make good use of this by storing the flavor of the C compiler being used here. For example if using the Sun WorkShop suite, ccname will be "workshop".ccsymbols β From Cppsym.U: The variable contains the symbols defined by the C compiler alone. The symbols defined by cpp or by cc when it calls cpp are not in this list, see cppsymbols and cppccsymbols. The list is a space-separated list of symbol=value tokens.ccversion β From Checkcc.U: This can set either by hints files or by Configure. If using a (non-gcc) vendor cc, this variable may contain a version for the compiler.cf_by β From cf_who.U: Login name of the person who ran the Configure script and answered the questions. This is used to tag both config.sh and config_h.SH.cf_email β From cf_email.U: Electronic mail address of the person who ran Configure. This can be used by units that require the user's e-mail, like MailList.U.cf_time β From cf_who.U: Holds the output of the "date" command when the configuration file was produced. This is used to tag both config.sh and config_h.SH.charbits β From charsize.U: This variable contains the value of the CHARBITS symbol, which indicates to the C program how many bits there are in a character.charsize β From charsize.U: This variable contains the value of the CHARSIZE symbol, which indicates to the C program how many bytes there are in a character.chgrp β From Loc.U: This variable is defined but not used by Configure. The value is the empty string and is not useful.chmod β From Loc.U: This variable is used internally by Configure to determine the full pathname (if any) of the chmod program. After Configure runs, the value is reset to a plain "chmod" and is not useful.chown β From Loc.U: This variable is defined but not used by Configure. The value is the empty string and is not useful.clocktype β From d_times.U: This variable holds the type returned by times(). It can be long, or clock_t on BSD sites (in which case <sys/types.h> should be included).comm β From Loc.U: This variable is used internally by Configure to determine the full pathname (if any) of the comm program. After Configure runs, the value is reset to a plain "comm" and is not useful.compiler_warning β From compiler_warning.U: This variable holds the command to check if the file specified as a parameter contains a compiler warningcompress β From Loc.U: This variable is defined but not used by Configure. The value is the empty string and is not useful.config_arg0 β From Options.U: This variable contains the string used to invoke the Configure command, as reported by the shell in the $0 variable.config_argc β From Options.U: This variable contains the number of command-line arguments passed to Configure, as reported by the shell in the $# variable. The individual arguments are stored as variables config_arg1, config_arg2, etc.config_args β From Options.U: This variable contains a single string giving the command-line arguments passed to Configure. Spaces within arguments, quotes, and escaped characters are not correctly preserved. To reconstruct the command line, you must assemble the individual command line pieces, given in config_arg[0-9]*.contains β From contains.U: This variable holds the command to do a grep with a proper return status. On most sane systems it is simply "grep". On insane systems it is a grep followed by a cat followed by a test. This variable is primarily for the use of other Configure units.cp β From Loc.U: This variable is used internally by Configure to determine the full pathname (if any) of the cp program. After Configure runs, the value is reset to a plain "cp" and is not useful.cpio β From Loc.U: This variable is defined but not used by Configure. The value is the empty string and is not useful.cpp β From Loc.U: This variable is used internally by Configure to determine the full pathname (if any) of the cpp program. After Configure runs, the value is reset to a plain "cpp" and is not useful.cpp_stuff β From cpp_stuff.U: This variable contains an identification of the concatenation mechanism used by the C preprocessor.cppccsymbols β From Cppsym.U: The variable contains the symbols defined by the C compiler when it calls cpp. The symbols defined by the cc alone or cpp alone are not in this list, see ccsymbols and cppsymbols. The list is a space-separated list of symbol=value tokens.cppflags β From ccflags.U: This variable holds the flags that will be passed to the C pre-processor. It is up to the Makefile to use it.cpplast β From cppstdin.U: This variable has the same functionality as cppminus, only it applies to cpprun and not cppstdin.cppminus β From cppstdin.U: This variable contains the second part of the string which will invoke the C preprocessor on the standard input and produce to standard output. This variable will have the value "-" if cppstdin needs a minus to specify standard input, otherwise the value is "".cpprun β From cppstdin.U: This variable contains the command which will invoke a C preprocessor on standard input and put the output to stdout. It is guaranteed not to be a wrapper and may be a null string if no preprocessor can be made directly available. This preprocessor might be different from the one used by the C compiler. Don't forget to append cpplast after the preprocessor options.cppstdin β From cppstdin.U: This variable contains the command which will invoke the C preprocessor on standard input and put the output to stdout. It is primarily used by other Configure units that ask about preprocessor symbols.cppsymbols β From Cppsym.U: The variable contains the symbols defined by the C preprocessor alone. The symbols defined by cc or by cc when it calls cpp are not in this list, see ccsymbols and cppccsymbols. The list is a space-separated list of symbol=value tokens.crypt_r_proto β From d_crypt_r.U: This variable encodes the prototype of crypt_r. It is zero if d_crypt_r is undef, and one of the REENTRANT_PROTO_T_ABC macros of reentr.h if d_crypt_r is defined.cryptlib β From d_crypt.U: This variable holds -lcrypt or the path to a libcrypt.a archive if the crypt() function is not defined in the standard C library. It is up to the Makefile to use this.csh β From Loc.U: This variable is used internally by Configure to determine the full pathname (if any) of the csh program. After Configure runs, the value is reset to a plain "csh" and is not useful.ctermid_r_proto β From d_ctermid_r.U: This variable encodes the prototype of ctermid_r. It is zero if d_ctermid_r is undef, and one of the REENTRANT_PROTO_T_ABC macros of reentr.h if d_ctermid_r is defined.ctime_r_proto β From d_ctime_r.U: This variable encodes the prototype of ctime_r. It is zero if d_ctime_r is undef, and one of the REENTRANT_PROTO_T_ABC macros of reentr.h if d_ctime_r is defined.d__fwalk β From d__fwalk.U: This variable conditionally defines HAS__FWALK if _fwalk() is available to apply a function to all the file handles.d_accept4 β From d_accept4.U: This variable conditionally defines HAS_ACCEPT4 if accept4() is available to accept socket connections.d_access β From d_access.U: This variable conditionally defines HAS_ACCESS if the access() system call is available to check for access permissions using real IDs.d_accessx β From d_accessx.U: This variable conditionally defines the HAS_ACCESSX symbol, which indicates to the C program that the accessx() routine is available.d_acosh β From d_acosh.U: This variable conditionally defines the HAS_ACOSH symbol, which indicates to the C program that the acosh() routine is available.d_aintl β From d_aintl.U: This variable conditionally defines the HAS_AINTL symbol, which indicates to the C program that the aintl() routine is available. If copysignl is also present we can emulate modfl.d_alarm β From d_alarm.U: This variable conditionally defines the HAS_ALARM symbol, which indicates to the C program that the alarm() routine is available.d_archlib β From archlib.U: This variable conditionally defines ARCHLIB to hold the pathname of architecture-dependent library files for $package. If $archlib is the same as $privlib, then this is set to undef.d_asctime64 β From d_timefuncs64.U: This variable conditionally defines the HAS_ASCTIME64 symbol, which indicates to the C program that the asctime64 () routine is available.d_asctime_r β From d_asctime_r.U: This variable conditionally defines the HAS_ASCTIME_R symbol, which indicates to the C program that the asctime_r() routine is available.d_asinh β From d_asinh.U: This variable conditionally defines the HAS_ASINH symbol, which indicates to the C program that the asinh() routine is available.d_atanh β From d_atanh.U: This variable conditionally defines the HAS_ATANH symbol, which indicates to the C program that the atanh() routine is available.d_atolf β From atolf.U: This variable conditionally defines the HAS_ATOLF symbol, which indicates to the C program that the atolf() routine is available.d_atoll β From atoll.U: This variable conditionally defines the HAS_ATOLL symbol, which indicates to the C program that the atoll() routine is available.d_attribute_always_inline β From d_attribut.U: This variable conditionally defines HASATTRIBUTE_ALWAYS_INLINE, which indicates that the C compiler can know that certain functions should always be inlined.d_attribute_deprecated β From d_attribut.U: This variable conditionally defines HASATTRIBUTE_DEPRECATED, which indicates that GCC can handle the attribute for marking deprecated APIsd_attribute_format β From d_attribut.U: This variable conditionally defines HASATTRIBUTE_FORMAT, which indicates the C compiler can check for printf-like formats.d_attribute_malloc β From d_attribut.U: This variable conditionally defines HASATTRIBUTE_MALLOC, which indicates the C compiler can understand functions as having malloc-like semantics.d_attribute_nonnull β From d_attribut.U: This variable conditionally defines HASATTRIBUTE_NONNULL, which indicates that the C compiler can know that certain arguments must not be NULL, and will check accordingly at compile time.d_attribute_noreturn β From d_attribut.U: This variable conditionally defines HASATTRIBUTE_NORETURN, which indicates that the C compiler can know that certain functions are guaranteed never to return.d_attribute_pure β From d_attribut.U: This variable conditionally defines HASATTRIBUTE_PURE, which indicates that the C compiler can know that certain functions are "pure" functions, meaning that they have no side effects, and only rely on function input and/or global data for their results.d_attribute_unused β From d_attribut.U: This variable conditionally defines HASATTRIBUTE_UNUSED, which indicates that the C compiler can know that certain variables and arguments may not always be used, and to not throw warnings if they don't get used.d_attribute_warn_unused_result β From d_attribut.U: This variable conditionally defines HASATTRIBUTE_WARN_UNUSED_RESULT, which indicates that the C compiler can know that certain functions have a return values that must not be ignored, such as malloc() or open().d_backtrace β From d_backtrace.U: This variable conditionally defines the HAS_BACKTRACE symbol, which indicates to the C program that the backtrace() routine is available to get a stack trace.d_bsd β From Guess.U: This symbol conditionally defines the symbol BSD when running on a BSD system.d_bsdgetpgrp β From d_getpgrp.U: This variable conditionally defines USE_BSD_GETPGRP if getpgrp needs one arguments whereas USG one needs none.d_bsdsetpgrp β From d_setpgrp.U: This variable conditionally defines USE_BSD_SETPGRP if setpgrp needs two arguments whereas USG one needs none. See also d_setpgid for a POSIX interface.d_builtin_add_overflow β From d_builtin_overflow.U: This variable conditionally defines HAS_BUILTIN_ADD_OVERFLOW, which indicates that the compiler supports __builtin_add_overflow(x,y,&z) for safely adding x and y into z while checking for overflow.d_builtin_choose_expr β From d_builtin.U: This conditionally defines HAS_BUILTIN_CHOOSE_EXPR, which indicates that the compiler supports __builtin_choose_expr(x,y,z). This built-in function is analogous to the "x?y:z" operator in C, except that the expression returned has its type unaltered by promotion rules. Also, the built-in function does not evaluate the expression that was not chosen.d_builtin_expect β From d_builtin.U: This conditionally defines HAS_BUILTIN_EXPECT, which indicates that the compiler supports __builtin_expect(exp,c). You may use __builtin_expect to provide the compiler with branch prediction information.d_builtin_mul_overflow β From d_builtin_overflow.U: This variable conditionally defines HAS_BUILTIN_MUL_OVERFLOW, which indicates that the compiler supports __builtin_mul_overflow(x,y,&z) for safely multiplying x and y into z while checking for overflow.d_builtin_sub_overflow β From d_builtin_overflow.U: This variable conditionally defines HAS_BUILTIN_SUB_OVERFLOW, which indicates that the compiler supports __builtin_sub_overflow(x,y,&z) for safely subtracting y from x into z while checking for overflow.d_c99_variadic_macros β From d_c99_variadic.U: This variable conditionally defines the HAS_C99_VARIADIC_MACROS symbol, which indicates to the C program that C99 variadic macros are available.d_casti32 β From d_casti32.U: This variable conditionally defines CASTI32, which indicates whether the C compiler can cast large floats to 32-bit ints.d_castneg β From d_castneg.U: This variable conditionally defines CASTNEG, which indicates whether the C compiler can cast negative float to unsigned.d_cbrt β From d_cbrt.U: This variable conditionally defines the HAS_CBRT symbol, which indicates to the C program that the cbrt() (cube root) function is available.d_chown β From d_chown.U: This variable conditionally defines the HAS_CHOWN symbol, which indicates to the C program that the chown() routine is available.d_chroot β From d_chroot.U: This variable conditionally defines the HAS_CHROOT symbol, which indicates to the C program that the chroot() routine is available.d_chsize β From d_chsize.U: This variable conditionally defines the CHSIZE symbol, which indicates to the C program that the chsize() routine is available to truncate files. You might need a -lx to get this routine.d_class β From d_class.U: This variable conditionally defines the HAS_CLASS symbol, which indicates to the C program that the class() routine is available.d_clearenv β From d_clearenv.U: This variable conditionally defines the HAS_CLEARENV symbol, which indicates to the C program that the clearenv () routine is available.d_closedir β From d_closedir.U: This variable conditionally defines HAS_CLOSEDIR if closedir() is available.d_cmsghdr_s β From d_cmsghdr_s.U: This variable conditionally defines the HAS_STRUCT_CMSGHDR symbol, which indicates that the struct cmsghdr is supported.d_copysign β From d_copysign.U: This variable conditionally defines the HAS_COPYSIGN symbol, which indicates to the C program that the copysign() routine is available.d_copysignl β From d_copysignl.U: This variable conditionally defines the HAS_COPYSIGNL symbol, which indicates to the C program that the copysignl() routine is available. If aintl is also present we can emulate modfl.d_cplusplus β From d_cplusplus.U: This variable conditionally defines the USE_CPLUSPLUS symbol, which indicates that a C++ compiler was used to compiled Perl and will be used to compile extensions.d_crypt β From d_crypt.U: This variable conditionally defines the CRYPT symbol, which indicates to the C program that the crypt() routine is available to encrypt passwords and the like.d_crypt_r β From d_crypt_r.U: This variable conditionally defines the HAS_CRYPT_R symbol, which indicates to the C program that the crypt_r() routine is available.d_csh β From d_csh.U: This variable conditionally defines the CSH symbol, which indicates to the C program that the C-shell exists.d_ctermid β From d_ctermid.U: This variable conditionally defines CTERMID if ctermid() is available to generate filename for terminal.d_ctermid_r β From d_ctermid_r.U: This variable conditionally defines the HAS_CTERMID_R symbol, which indicates to the C program that the ctermid_r() routine is available.d_ctime64 β From d_timefuncs64.U: This variable conditionally defines the HAS_CTIME64 symbol, which indicates to the C program that the ctime64 () routine is available.d_ctime_r β From d_ctime_r.U: This variable conditionally defines the HAS_CTIME_R symbol, which indicates to the C program that the ctime_r() routine is available.d_cuserid β From d_cuserid.U: This variable conditionally defines the HAS_CUSERID symbol, which indicates to the C program that the cuserid() routine is available to get character login names.d_dbminitproto β From d_dbminitproto.U: This variable conditionally defines the HAS_DBMINIT_PROTO symbol, which indicates to the C program that the system provides a prototype for the dbminit() function. Otherwise, it is up to the program to supply one.d_difftime β From d_difftime.U: This variable conditionally defines the HAS_DIFFTIME symbol, which indicates to the C program that the difftime() routine is available.d_difftime64 β From d_timefuncs64.U: This variable conditionally defines the HAS_DIFFTIME64 symbol, which indicates to the C program that the difftime64 () routine is available.d_dir_dd_fd β From d_dir_dd_fd.U: This variable conditionally defines the HAS_DIR_DD_FD symbol, which indicates that the DIR directory stream type contains a member variable called dd_fd.d_dirfd β From d_dirfd.U: This variable conditionally defines the HAS_DIRFD constant, which indicates to the C program that dirfd() is available to return the file descriptor of a directory stream.d_dirnamlen β From i_dirent.U: This variable conditionally defines DIRNAMLEN, which indicates to the C program that the length of directory entry names is provided by a d_namelen field.d_dladdr β From d_dladdr.U: This variable conditionally defines the HAS_DLADDR symbol, which indicates to the C program that the dladdr() routine is available to get a stack trace.d_dlerror β From d_dlerror.U: This variable conditionally defines the HAS_DLERROR symbol, which indicates to the C program that the dlerror() routine is available.d_dlopen β From d_dlopen.U: This variable conditionally defines the HAS_DLOPEN symbol, which indicates to the C program that the dlopen() routine is available.d_dlsymun β From d_dlsymun.U: This variable conditionally defines DLSYM_NEEDS_UNDERSCORE, which indicates that we need to prepend an underscore to the symbol name before calling dlsym().d_dosuid β From d_dosuid.U: This variable conditionally defines the symbol DOSUID, which tells the C program that it should insert setuid emulation code on hosts which have setuid #! scripts disabled.d_double_has_inf β From longdblfio.U: This variable conditionally defines the symbol DOUBLE_HAS_INF which indicates that the double type has an infinity.d_double_has_nan β From longdblfio.U: This variable conditionally defines the symbol DOUBLE_HAS_NAN which indicates that the double type has a not-a-number.d_double_has_negative_zero β From longdblfio.U: This variable conditionally defines the symbol DOUBLE_HAS_NEGATIVE_ZERO which indicates that the double type has a negative zero.d_double_has_subnormals β From longdblfio.U: This variable conditionally defines the symbol DOUBLE_HAS_SUBNORMALS which indicates that the double type has subnormals (denormals).d_double_style_cray β From longdblfio.U: This variable conditionally defines the symbol DOUBLE_STYLE_CRAY which indicates that the double is the 64-bit CRAY mainframe format.d_double_style_ibm β From longdblfio.U: This variable conditionally defines the symbol DOUBLE_STYLE_IBM, which indicates that the double is the 64-bit IBM mainframe format.d_double_style_ieee β From longdblfio.U: This variable conditionally defines the symbol DOUBLE_STYLE_IEEE, which indicates that the double is the 64-bit IEEE 754.d_double_style_vax β From longdblfio.U: This variable conditionally defines the symbol DOUBLE_STYLE_VAX, which indicates that the double is the 64-bit VAX format D or G.d_drand48_r β From d_drand48_r.U: This variable conditionally defines the HAS_DRAND48_R symbol, which indicates to the C program that the drand48_r() routine is available.d_drand48proto β From d_drand48proto.U: This variable conditionally defines the HAS_DRAND48_PROTO symbol, which indicates to the C program that the system provides a prototype for the drand48() function. Otherwise, it is up to the program to supply one.d_dup2 β From d_dup2.U: This variable conditionally defines HAS_DUP2 if dup2() is available to duplicate file descriptors.d_dup3 β From d_dup3.U: This variable conditionally defines HAS_DUP3 if dup3() is available to duplicate file descriptors.d_duplocale β From d_newlocale.U: This variable conditionally defines the HAS_DUPLOCALE symbol, which indicates to the C program that the duplocale() routine is available to duplicate a locale object.d_eaccess β From d_eaccess.U: This variable conditionally defines the HAS_EACCESS symbol, which indicates to the C program that the eaccess() routine is available.d_endgrent β From d_endgrent.U: This variable conditionally defines the HAS_ENDGRENT symbol, which indicates to the C program that the endgrent() routine is available for sequential access of the group database.d_endgrent_r β From d_endgrent_r.U: This variable conditionally defines the HAS_ENDGRENT_R symbol, which indicates to the C program that the endgrent_r() routine is available.d_endhent β From d_endhent.U: This variable conditionally defines HAS_ENDHOSTENT if endhostent() is available to close whatever was being used for host queries.d_endhostent_r β From d_endhostent_r.U: This variable conditionally defines the HAS_ENDHOSTENT_R symbol, which indicates to the C program that the endhostent_r() routine is available.d_endnent β From d_endnent.U: This variable conditionally defines HAS_ENDNETENT if endnetent() is available to close whatever was being used for network queries.d_endnetent_r β From d_endnetent_r.U: This variable conditionally defines the HAS_ENDNETENT_R symbol, which indicates to the C program that the endnetent_r() routine is available.d_endpent β From d_endpent.U: This variable conditionally defines HAS_ENDPROTOENT if endprotoent() is available to close whatever was being used for protocol queries.d_endprotoent_r β From d_endprotoent_r.U: This variable conditionally defines the HAS_ENDPROTOENT_R symbol, which indicates to the C program that the endprotoent_r() routine is available.d_endpwent β From d_endpwent.U: This variable conditionally defines the HAS_ENDPWENT symbol, which indicates to the C program that the endpwent() routine is available for sequential access of the passwd database.d_endpwent_r β From d_endpwent_r.U: This variable conditionally defines the HAS_ENDPWENT_R symbol, which indicates to the C program that the endpwent_r() routine is available.d_endsent β From d_endsent.U: This variable conditionally defines HAS_ENDSERVENT if endservent() is available to close whatever was being used for service queries.d_endservent_r β From d_endservent_r.U: This variable conditionally defines the HAS_ENDSERVENT_R symbol, which indicates to the C program that the endservent_r() routine is available.d_eofnblk β From nblock_io.U: This variable conditionally defines EOF_NONBLOCK if EOF can be seen when reading from a non-blocking I/O source.d_erf β From d_erf.U: This variable conditionally defines the HAS_ERF symbol, which indicates to the C program that the erf() routine is available.d_erfc β From d_erfc.U: This variable conditionally defines the HAS_ERFC symbol, which indicates to the C program that the erfc() routine is available.d_eunice β From Guess.U: This variable conditionally defines the symbols EUNICE and VAX, which alerts the C program that it must deal with idiosyncrasies of VMS.d_exp2 β From d_exp2.U: This variable conditionally defines the HAS_EXP2 symbol, which indicates to the C program that the exp2() routine is available.d_expm1 β From d_expm1.U: This variable conditionally defines the HAS_EXPM1 symbol, which indicates to the C program that the expm1() routine is available.d_faststdio β From d_faststdio.U: This variable conditionally defines the HAS_FAST_STDIO symbol, which indicates to the C program that the "fast stdio" is available to manipulate the stdio buffers directly.d_fchdir β From d_fchdir.U: This variable conditionally defines the HAS_FCHDIR symbol, which indicates to the C program that the fchdir() routine is available.d_fchmod β From d_fchmod.U: This variable conditionally defines the HAS_FCHMOD symbol, which indicates to the C program that the fchmod() routine is available to change mode of opened files.d_fchmodat β From d_fsat.U: This variable conditionally defines the HAS_FCHMODAT symbol, which indicates the POSIX fchmodat() function is available.d_fchown β From d_fchown.U: This variable conditionally defines the HAS_FCHOWN symbol, which indicates to the C program that the fchown() routine is available to change ownership of opened files.d_fcntl β From d_fcntl.U: This variable conditionally defines the HAS_FCNTL symbol, and indicates whether the fcntl() function existsd_fcntl_can_lock β From d_fcntl_can_lock.U: This variable conditionally defines the FCNTL_CAN_LOCK symbol and indicates whether file locking with fcntl() works.d_fd_macros β From d_fd_set.U: This variable contains the eventual value of the HAS_FD_MACROS symbol, which indicates if your C compiler knows about the macros which manipulate an fd_set.d_fd_set β From d_fd_set.U: This variable contains the eventual value of the HAS_FD_SET symbol, which indicates if your C compiler knows about the fd_set typedef.d_fdclose β From d_fdclose.U: This variable conditionally defines the HAS_FDCLOSE symbol, which indicates to the C program that the fdclose() routine is available.d_fdim β From d_fdim.U: This variable conditionally defines the HAS_FDIM symbol, which indicates to the C program that the fdim() routine is available.d_fds_bits β From d_fd_set.U: This variable contains the eventual value of the HAS_FDS_BITS symbol, which indicates if your fd_set typedef contains the fds_bits member. If you have an fd_set typedef, but the dweebs who installed it did a half-fast job and neglected to provide the macros to manipulate an fd_set, HAS_FDS_BITS will let us know how to fix the gaffe.d_fegetround β From d_fegetround.U: This variable conditionally defines HAS_FEGETROUND if fegetround() is available to get the floating point rounding mode.d_fgetpos β From d_fgetpos.U: This variable conditionally defines HAS_FGETPOS if fgetpos() is available to get the file position indicator.d_finite β From d_finite.U: This variable conditionally defines the HAS_FINITE symbol, which indicates to the C program that the finite() routine is available.d_finitel β From d_finitel.U: This variable conditionally defines the HAS_FINITEL symbol, which indicates to the C program that the finitel() routine is available.d_flexfnam β From d_flexfnam.U: This variable conditionally defines the FLEXFILENAMES symbol, which indicates that the system supports filenames longer than 14 characters.d_flock β From d_flock.U: This variable conditionally defines HAS_FLOCK if flock() is available to do file locking.d_flockproto β From d_flockproto.U: This variable conditionally defines the HAS_FLOCK_PROTO symbol, which indicates to the C program that the system provides a prototype for the flock() function. Otherwise, it is up to the program to supply one.d_fma β From d_fma.U: This variable conditionally defines the HAS_FMA symbol, which indicates to the C program that the fma() routine is available.d_fmax β From d_fmax.U: This variable conditionally defines the HAS_FMAX symbol, which indicates to the C program that the fmax() routine is available.d_fmin β From d_fmin.U: This variable conditionally defines the HAS_FMIN symbol, which indicates to the C program that the fmin() routine is available.d_fdopendir β From d_fdopendir.U: This variable conditionally defines the HAS_FORK symbol, which indicates that the fdopen routine is available to open a directory descriptor.d_fork β From d_fork.U: This variable conditionally defines the HAS_FORK symbol, which indicates to the C program that the fork() routine is available.d_fp_class β From d_fp_class.U: This variable conditionally defines the HAS_FP_CLASS symbol, which indicates to the C program that the fp_class() routine is available.d_fp_classify β From d_fpclassify.U: This variable conditionally defines the HAS_FP_CLASSIFY symbol, which indicates to the C program that the fp_classify() routine is available.d_fp_classl β From d_fp_classl.U: This variable conditionally defines the HAS_FP_CLASSL symbol, which indicates to the C program that the fp_classl() routine is available.d_fpathconf β From d_pathconf.U: This variable conditionally defines the HAS_FPATHCONF symbol, which indicates to the C program that the pathconf() routine is available to determine file-system related limits and options associated with a given open file descriptor.d_fpclass β From d_fpclass.U: This variable conditionally defines the HAS_FPCLASS symbol, which indicates to the C program that the fpclass() routine is available.d_fpclassify β From d_fpclassify.U: This variable conditionally defines the HAS_FPCLASSIFY symbol, which indicates to the C program that the fpclassify() routine is available.d_fpclassl β From d_fpclassl.U: This variable conditionally defines the HAS_FPCLASSL symbol, which indicates to the C program that the fpclassl() routine is available.d_fpgetround β From d_fpgetround.U: This variable conditionally defines HAS_FPGETROUND if fpgetround() is available to get the floating point rounding mode.d_fpos64_t β From d_fpos64_t.U: This symbol will be defined if the C compiler supports fpos64_t.d_freelocale β From d_newlocale.U: This variable conditionally defines the HAS_FREELOCALE symbol, which indicates to the C program that the freelocale() routine is available to deallocates the resources associated with a locale object.d_frexpl β From d_frexpl.U: This variable conditionally defines the HAS_FREXPL symbol, which indicates to the C program that the frexpl() routine is available.d_fs_data_s β From d_fs_data_s.U: This variable conditionally defines the HAS_STRUCT_FS_DATA symbol, which indicates that the struct fs_data is supported.d_fseeko β From d_fseeko.U: This variable conditionally defines the HAS_FSEEKO symbol, which indicates to the C program that the fseeko() routine is available.d_fsetpos β From d_fsetpos.U: This variable conditionally defines HAS_FSETPOS if fsetpos() is available to set the file position indicator.d_fstatfs β From d_fstatfs.U: This variable conditionally defines the HAS_FSTATFS symbol, which indicates to the C program that the fstatfs() routine is available.d_fstatvfs β From d_statvfs.U: This variable conditionally defines the HAS_FSTATVFS symbol, which indicates to the C program that the fstatvfs() routine is available.d_fsync β From d_fsync.U: This variable conditionally defines the HAS_FSYNC symbol, which indicates to the C program that the fsync() routine is available.d_ftello β From d_ftello.U: This variable conditionally defines the HAS_FTELLO symbol, which indicates to the C program that the ftello() routine is available.d_ftime β From d_ftime.U: This variable conditionally defines the HAS_FTIME symbol, which indicates that the ftime() routine exists. The ftime() routine is basically a sub-second accuracy clock.d_futimes β From d_futimes.U: This variable conditionally defines the HAS_FUTIMES symbol, which indicates to the C program that the futimes() routine is available.d_gai_strerror β From d_gai_strerror.U: This variable conditionally defines the HAS_GAI_STRERROR symbol if the gai_strerror() routine is available and can be used to translate error codes returned by getaddrinfo() into human readable strings.d_Gconvert β From d_gconvert.U: This variable holds what Gconvert is defined as to convert floating point numbers into strings. By default, Configure sets "this" macro to use the first of gconvert, gcvt, or sprintf that pass sprintf-%g-like behavior tests. If perl is using long doubles, the macro uses the first of the following functions that pass Configure's tests: qgcvt, sprintf (if Configure knows how to make sprintf format long doubles--see sPRIgldbl), gconvert, gcvt, and sprintf (casting to double). The gconvert_preference and gconvert_ld_preference variables can be used to alter Configure's preferences, for doubles and long doubles, respectively. If present, they contain a space-separated list of one or more of the above function names in the order they should be tried.d_gdbm_ndbm_h_uses_prototypes β From i_ndbm.U: This variable conditionally defines the NDBM_H_USES_PROTOTYPES symbol, which indicates that the gdbm-ndbm.h include file uses real ANSI C prototypes instead of K&R style function declarations. K&R style declarations are unsupported in C++, so the include file requires special handling when using a C++ compiler and this variable is undefined. Consult the different d_*ndbm_h_uses_prototypes variables to get the same information for alternative ndbm.h include files.d_gdbmndbm_h_uses_prototypes β From i_ndbm.U: This variable conditionally defines the NDBM_H_USES_PROTOTYPES symbol, which indicates that the gdbm/ndbm.h include file uses real ANSI C prototypes instead of K&R style function declarations. K&R style declarations are unsupported in C++, so the include file requires special handling when using a C++ compiler and this variable is undefined. Consult the different d_*ndbm_h_uses_prototypes variables to get the same information for alternative ndbm.h include files.d_getaddrinfo β From d_getaddrinfo.U: This variable conditionally defines the HAS_GETADDRINFO symbol, which indicates to the C program that the getaddrinfo() function is available.d_getcwd β From d_getcwd.U: This variable conditionally defines the HAS_GETCWD symbol, which indicates to the C program that the getcwd() routine is available to get the current working directory.d_getenv_preserves_other_thread β From d_getenv_thread.U: This variable conditionally defines the GETENV_PRESERVES_OTHER_THREAD symbol, which indicates to the C program that the getenv() system call does not zap the static buffer in a different thread.d_getespwnam β From d_getespwnam.U: This variable conditionally defines HAS_GETESPWNAM if getespwnam() is available to retrieve enhanced (shadow) password entries by name.d_getfsstat β From d_getfsstat.U: This variable conditionally defines the HAS_GETFSSTAT symbol, which indicates to the C program that the getfsstat() routine is available.d_getgrent β From d_getgrent.U: This variable conditionally defines the HAS_GETGRENT symbol, which indicates to the C program that the getgrent() routine is available for sequential access of the group database.d_getgrent_r β From d_getgrent_r.U: This variable conditionally defines the HAS_GETGRENT_R symbol, which indicates to the C program that the getgrent_r() routine is available.d_getgrgid_r β From d_getgrgid_r.U: This variable conditionally defines the HAS_GETGRGID_R symbol, which indicates to the C program that the getgrgid_r() routine is available.d_getgrnam_r β From d_getgrnam_r.U: This variable conditionally defines the HAS_GETGRNAM_R symbol, which indicates to the C program that the getgrnam_r() routine is available.d_getgrps β From d_getgrps.U: This variable conditionally defines the HAS_GETGROUPS symbol, which indicates to the C program that the getgroups() routine is available to get the list of process groups.d_gethbyaddr β From d_gethbyad.U: This variable conditionally defines the HAS_GETHOSTBYADDR symbol, which indicates to the C program that the gethostbyaddr() routine is available to look up hosts by their IP addresses.d_gethbyname β From d_gethbynm.U: This variable conditionally defines the HAS_GETHOSTBYNAME symbol, which indicates to the C program that the gethostbyname() routine is available to look up host names in some data base or other.d_gethent β From d_gethent.U: This variable conditionally defines HAS_GETHOSTENT if gethostent() is available to look up host names in some data base or another.d_gethname β From d_gethname.U: This variable conditionally defines the HAS_GETHOSTNAME symbol, which indicates to the C program that the gethostname() routine may be used to derive the host name.d_gethostbyaddr_r β From d_gethostbyaddr_r.U: This variable conditionally defines the HAS_GETHOSTBYADDR_R symbol, which indicates to the C program that the gethostbyaddr_r() routine is available.d_gethostbyname_r β From d_gethostbyname_r.U: This variable conditionally defines the HAS_GETHOSTBYNAME_R symbol, which indicates to the C program that the gethostbyname_r() routine is available.d_gethostent_r β From d_gethostent_r.U: This variable conditionally defines the HAS_GETHOSTENT_R symbol, which indicates to the C program that the gethostent_r() routine is available.d_gethostprotos β From d_gethostprotos.U: This variable conditionally defines the HAS_GETHOST_PROTOS symbol, which indicates to the C program that <netdb.h> supplies prototypes for the various gethost*() functions. See also netdbtype.U for probing for various netdb types.d_getitimer β From d_getitimer.U: This variable conditionally defines the HAS_GETITIMER symbol, which indicates to the C program that the getitimer() routine is available.d_getlogin β From d_getlogin.U: This variable conditionally defines the HAS_GETLOGIN symbol, which indicates to the C program that the getlogin() routine is available to get the login name.d_getlogin_r β From d_getlogin_r.U: This variable conditionally defines the HAS_GETLOGIN_R symbol, which indicates to the C program that the getlogin_r() routine is available.d_getmnt β From d_getmnt.U: This variable conditionally defines the HAS_GETMNT symbol, which indicates to the C program that the getmnt() routine is available to retrieve one or more mount info blocks by filename.d_getmntent β From d_getmntent.U: This variable conditionally defines the HAS_GETMNTENT symbol, which indicates to the C program that the getmntent() routine is available to iterate through mounted files to get their mount info.d_getnameinfo β From d_getnameinfo.U: This variable conditionally defines the HAS_GETNAMEINFO symbol, which indicates to the C program that the getnameinfo() function is available.d_getnbyaddr β From d_getnbyad.U: This variable conditionally defines the HAS_GETNETBYADDR symbol, which indicates to the C program that the getnetbyaddr() routine is available to look up networks by their IP addresses.d_getnbyname β From d_getnbynm.U: This variable conditionally defines the HAS_GETNETBYNAME symbol, which indicates to the C program that the getnetbyname() routine is available to look up networks by their names.d_getnent β From d_getnent.U: This variable conditionally defines HAS_GETNETENT if getnetent() is available to look up network names in some data base or another.d_getnetbyaddr_r β From d_getnetbyaddr_r.U: This variable conditionally defines the HAS_GETNETBYADDR_R symbol, which indicates to the C program that the getnetbyaddr_r() routine is available.d_getnetbyname_r β From d_getnetbyname_r.U: This variable conditionally defines the HAS_GETNETBYNAME_R symbol, which indicates to the C program that the getnetbyname_r() routine is available.d_getnetent_r β From d_getnetent_r.U: This variable conditionally defines the HAS_GETNETENT_R symbol, which indicates to the C program that the getnetent_r() routine is available.d_getnetprotos β From d_getnetprotos.U: This variable conditionally defines the HAS_GETNET_PROTOS symbol, which indicates to the C program that <netdb.h> supplies prototypes for the various getnet*() functions. See also netdbtype.U for probing for various netdb types.d_getpagsz β From d_getpagsz.U: This variable conditionally defines HAS_GETPAGESIZE if getpagesize() is available to get the system page size.d_getpbyname β From d_getprotby.U: This variable conditionally defines the HAS_GETPROTOBYNAME symbol, which indicates to the C program that the getprotobyname() routine is available to look up protocols by their name.d_getpbynumber β From d_getprotby.U: This variable conditionally defines the HAS_GETPROTOBYNUMBER symbol, which indicates to the C program that the getprotobynumber() routine is available to look up protocols by their number.d_getpent β From d_getpent.U: This variable conditionally defines HAS_GETPROTOENT if getprotoent() is available to look up protocols in some data base or another.d_getpgid β From d_getpgid.U: This variable conditionally defines the HAS_GETPGID symbol, which indicates to the C program that the getpgid(pid) function is available to get the process group id.d_getpgrp β From d_getpgrp.U: This variable conditionally defines HAS_GETPGRP if getpgrp() is available to get the current process group.d_getpgrp2 β From d_getpgrp2.U: This variable conditionally defines the HAS_GETPGRP2 symbol, which indicates to the C program that the getpgrp2() (as in DG/UX) routine is available to get the current process group.d_getppid β From d_getppid.U: This variable conditionally defines the HAS_GETPPID symbol, which indicates to the C program that the getppid() routine is available to get the parent process ID.d_getprior β From d_getprior.U: This variable conditionally defines HAS_GETPRIORITY if getpriority() is available to get a process's priority.d_getprotobyname_r β From d_getprotobyname_r.U: This variable conditionally defines the HAS_GETPROTOBYNAME_R symbol, which indicates to the C program that the getprotobyname_r() routine is available.d_getprotobynumber_r β From d_getprotobynumber_r.U: This variable conditionally defines the HAS_GETPROTOBYNUMBER_R symbol, which indicates to the C program that the getprotobynumber_r() routine is available.d_getprotoent_r β From d_getprotoent_r.U: This variable conditionally defines the HAS_GETPROTOENT_R symbol, which indicates to the C program that the getprotoent_r() routine is available.d_getprotoprotos β From d_getprotoprotos.U: This variable conditionally defines the HAS_GETPROTO_PROTOS symbol, which indicates to the C program that <netdb.h> supplies prototypes for the various getproto*() functions. See also netdbtype.U for probing for various netdb types.d_getprpwnam β From d_getprpwnam.U: This variable conditionally defines HAS_GETPRPWNAM if getprpwnam() is available to retrieve protected (shadow) password entries by name.d_getpwent β From d_getpwent.U: This variable conditionally defines the HAS_GETPWENT symbol, which indicates to the C program that the getpwent() routine is available for sequential access of the passwd database.d_getpwent_r β From d_getpwent_r.U: This variable conditionally defines the HAS_GETPWENT_R symbol, which indicates to the C program that the getpwent_r() routine is available.d_getpwnam_r β From d_getpwnam_r.U: This variable conditionally defines the HAS_GETPWNAM_R symbol, which indicates to the C program that the getpwnam_r() routine is available.d_getpwuid_r β From d_getpwuid_r.U: This variable conditionally defines the HAS_GETPWUID_R symbol, which indicates to the C program that the getpwuid_r() routine is available.d_getsbyname β From d_getsrvby.U: This variable conditionally defines the HAS_GETSERVBYNAME symbol, which indicates to the C program that the getservbyname() routine is available to look up services by their name.d_getsbyport β From d_getsrvby.U: This variable conditionally defines the HAS_GETSERVBYPORT symbol, which indicates to the C program that the getservbyport() routine is available to look up services by their port.d_getsent β From d_getsent.U: This variable conditionally defines HAS_GETSERVENT if getservent() is available to look up network services in some data base or another.d_getservbyname_r β From d_getservbyname_r.U: This variable conditionally defines the HAS_GETSERVBYNAME_R symbol, which indicates to the C program that the getservbyname_r() routine is available.d_getservbyport_r β From d_getservbyport_r.U: This variable conditionally defines the HAS_GETSERVBYPORT_R symbol, which indicates to the C program that the getservbyport_r() routine is available.d_getservent_r β From d_getservent_r.U: This variable conditionally defines the HAS_GETSERVENT_R symbol, which indicates to the C program that the getservent_r() routine is available.d_getservprotos β From d_getservprotos.U: This variable conditionally defines the HAS_GETSERV_PROTOS symbol, which indicates to the C program that <netdb.h> supplies prototypes for the various getserv*() functions. See also netdbtype.U for probing for various netdb types.d_getspnam β From d_getspnam.U: This variable conditionally defines HAS_GETSPNAM if getspnam() is available to retrieve SysV shadow password entries by name.d_getspnam_r β From d_getspnam_r.U: This variable conditionally defines the HAS_GETSPNAM_R symbol, which indicates to the C program that the getspnam_r() routine is available.d_gettimeod β From d_ftime.U: This variable conditionally defines the HAS_GETTIMEOFDAY symbol, which indicates that the gettimeofday() system call exists (to obtain a sub-second accuracy clock). You should probably include <sys/resource.h>.d_gmtime64 β From d_timefuncs64.U: This variable conditionally defines the HAS_GMTIME64 symbol, which indicates to the C program that the gmtime64 () routine is available.d_gmtime_r β From d_gmtime_r.U: This variable conditionally defines the HAS_GMTIME_R symbol, which indicates to the C program that the gmtime_r() routine is available.d_gnulibc β From d_gnulibc.U: Defined if we're dealing with the GNU C Library.d_grpasswd β From i_grp.U: This variable conditionally defines GRPASSWD, which indicates that struct group in <grp.h> contains gr_passwd.d_has_C_UTF8 β From d_setlocale.U: This variable is set to either "true" or "false" depending on whether the compilation system supports the C.UTF-8 locale.d_hasmntopt β From d_hasmntopt.U: This variable conditionally defines the HAS_HASMNTOPT symbol, which indicates to the C program that the hasmntopt() routine is available to query the mount options of file systems.d_htonl β From d_htonl.U: This variable conditionally defines HAS_HTONL if htonl() and its friends are available to do network order byte swapping.d_hypot β From d_hypot.U: This variable conditionally defines HAS_HYPOT if hypot is available for numerically stable hypotenuse function.d_ilogb β From d_ilogb.U: This variable conditionally defines the HAS_ILOGB symbol, which indicates to the C program that the ilogb() routine is available for extracting the exponent of double x as a signed integer.d_ilogbl β From d_ilogbl.U: This variable conditionally defines the HAS_ILOGBL symbol, which indicates to the C program that the ilogbl() routine is available for extracting the exponent of long double x as a signed integer. If scalbnl is also present we can emulate frexpl.d_inc_version_list β From inc_version_list.U: This variable conditionally defines PERL_INC_VERSION_LIST. It is set to undef when PERL_INC_VERSION_LIST is empty.d_inetaton β From d_inetaton.U: This variable conditionally defines the HAS_INET_ATON symbol, which indicates to the C program that the inet_aton() function is available to parse IP address "dotted-quad" strings.d_inetntop β From d_inetntop.U: This variable conditionally defines the HAS_INETNTOP symbol, which indicates to the C program that the inet_ntop() function is available.d_inetpton β From d_inetpton.U: This variable conditionally defines the HAS_INETPTON symbol, which indicates to the C program that the inet_pton() function is available.d_int64_t β From d_int64_t.U: This symbol will be defined if the C compiler supports int64_t.d_ip_mreq β From d_socket.U: This variable conditionally defines the HAS_IP_MREQ symbol, which indicates the availability of a struct ip_mreq.d_ip_mreq_source β From d_socket.U: This variable conditionally defines the HAS_IP_MREQ_SOURCE symbol, which indicates the availability of a struct ip_mreq_source.d_ipv6_mreq β From d_socket.U: This variable conditionally defines the HAS_IPV6_MREQ symbol, which indicates the availability of a struct ipv6_mreq.d_ipv6_mreq_source β From d_socket.U: This variable conditionally defines the HAS_IPV6_MREQ_SOURCE symbol, which indicates the availability of a struct ipv6_mreq_source.d_isascii β From d_isascii.U: This variable conditionally defines the HAS_ISASCII constant, which indicates to the C program that isascii() is available.d_isblank β From d_isblank.U: This variable conditionally defines the HAS_ISBLANK constant, which indicates to the C program that isblank() is available.d_isfinite β From d_isfinite.U: This variable conditionally defines the HAS_ISFINITE symbol, which indicates to the C program that the isfinite() routine is available.d_isfinitel β From d_isfinitel.U: This variable conditionally defines the HAS_ISFINITEL symbol, which indicates to the C program that the isfinitel() routine is available.d_isinf β From d_isinf.U: This variable conditionally defines the HAS_ISINF symbol, which indicates to the C program that the isinf() routine is available.d_isinfl β From d_isinfl.U: This variable conditionally defines the HAS_ISINFL symbol, which indicates to the C program that the isinfl() routine is available.d_isless β From d_isless.U: This variable conditionally defines the HAS_ISLESS symbol, which indicates to the C program that the isless() routine is available.d_isnan β From d_isnan.U: This variable conditionally defines the HAS_ISNAN symbol, which indicates to the C program that the isnan() routine is available.d_isnanl β From d_isnanl.U: This variable conditionally defines the HAS_ISNANL symbol, which indicates to the C program that the isnanl() routine is available.d_isnormal β From d_isnormal.U: This variable conditionally defines the HAS_ISNORMAL symbol, which indicates to the C program that the isnormal() routine is available.d_j0 β From d_j0.U: This variable conditionally defines the HAS_J0 symbol, which indicates to the C program that the j0() routine is available.d_j0l β From d_j0.U: This variable conditionally defines the HAS_J0L symbol, which indicates to the C program that the j0l() routine is available.d_killpg β From d_killpg.U: This variable conditionally defines the HAS_KILLPG symbol, which indicates to the C program that the killpg() routine is available to kill process groups.d_lc_monetary_2008 β From d_lc_monetary_2008.U: This variable conditionally defines HAS_LC_MONETARY_2008 if libc has the international currency locale rules from POSIX 1003.1-2008.d_lchown β From d_lchown.U: This variable conditionally defines the HAS_LCHOWN symbol, which indicates to the C program that the lchown() routine is available to operate on a symbolic link (instead of following the link).d_ldbl_dig β From d_ldbl_dig.U: This variable conditionally defines d_ldbl_dig if this system's header files provide LDBL_DIG, which is the number of significant digits in a long double precision number.d_ldexpl β From d_longdbl.U: This variable conditionally defines the HAS_LDEXPL symbol, which indicates to the C program that the ldexpl() routine is available.d_lgamma β From d_lgamma.U: This variable conditionally defines the HAS_LGAMMA symbol, which indicates to the C program that the lgamma() routine is available for the log gamma function. See also d_tgamma and d_lgamma_r.d_lgamma_r β From d_lgamma_r.U: This variable conditionally defines the HAS_LGAMMA_R symbol, which indicates to the C program that the lgamma_r() routine is available for the log gamma function, without using the global signgam variable.d_libm_lib_version β From d_libm_lib_version.U: This variable conditionally defines the LIBM_LIB_VERSION symbol, which indicates to the C program that math.h defines _LIB_VERSION being available in libmd_libname_unique β From so.U: This variable is defined if the target system insists on unique basenames for shared library files. This is currently true on Android, false everywhere else we know of. Defaults to "undef".d_link β From d_link.U: This variable conditionally defines HAS_LINK if link() is available to create hard links.d_linkat β From d_fsat.U: This variable conditionally defines the HAS_LINKAT symbol, which indicates the POSIX linkat() function is available.d_llrint β From d_llrint.U: This variable conditionally defines the HAS_LLRINT symbol, which indicates to the C program that the llrint() routine is available to return the long long value closest to a double (according to the current rounding mode).d_llrintl β From d_llrintl.U: This variable conditionally defines the HAS_LLRINTL symbol, which indicates to the C program that the llrintl() routine is available to return the long long value closest to a long double (according to the current rounding mode).d_llround β From d_llround.U: This variable conditionally defines the HAS_LLROUND symbol, which indicates to the C program that the llround() routine is available to return the long long value nearest to x.d_llroundl β From d_llroundl.U: This variable conditionally defines the HAS_LLROUNDL symbol, which indicates to the C program that the llroundl() routine is available to return the long long value nearest to x away from zero.d_localeconv_l β From d_localeconv_l.U: This variable conditionally defines the HAS_LOCALECONV_L symbol, which indicates to the C program that the localeconv_l() routine is available.d_localtime64 β From d_timefuncs64.U: This variable conditionally defines the HAS_LOCALTIME64 symbol, which indicates to the C program that the localtime64 () routine is available.d_localtime_r β From d_localtime_r.U: This variable conditionally defines the HAS_LOCALTIME_R symbol, which indicates to the C program that the localtime_r() routine is available.d_localtime_r_needs_tzset β From d_localtime_r.U: This variable conditionally defines the LOCALTIME_R_NEEDS_TZSET symbol, which makes us call tzset before localtime_r()d_locconv β From d_locconv.U: This variable conditionally defines HAS_LOCALECONV if localeconv() is available for numeric and monetary formatting conventions.d_lockf β From d_lockf.U: This variable conditionally defines HAS_LOCKF if lockf() is available to do file locking.d_log1p β From d_log1p.U: This variable conditionally defines the HAS_LOG1P symbol, which indicates to the C program that the logp1() routine is available to compute log(1 + x) for values of x close to zero.d_log2 β From d_log2.U: This variable conditionally defines the HAS_LOG2 symbol, which indicates to the C program that the log2() routine is available to compute log base two.d_logb β From d_logb.U: This variable conditionally defines the HAS_LOGB symbol, which indicates to the C program that the logb() routine is available to extract the exponent of x.d_long_double_style_ieee β From d_longdbl.U: This variable conditionally defines LONG_DOUBLE_STYLE_IEEE if the long double is any of the IEEE 754 style long doubles: LONG_DOUBLE_STYLE_IEEE_STD, LONG_DOUBLE_STYLE_IEEE_EXTENDED, LONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLE.d_long_double_style_ieee_doubledouble β From d_longdbl.U: This variable conditionally defines LONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLE if the long double is the 128-bit IEEE 754 double-double.d_long_double_style_ieee_extended β From d_longdbl.U: This variable conditionally defines LONG_DOUBLE_STYLE_IEEE_EXTENDED if the long double is the 80-bit IEEE 754 extended precision. Note that despite the "extended" this is less than the "std", since this is an extension of the double precision.d_long_double_style_ieee_std β From d_longdbl.U: This variable conditionally defines LONG_DOUBLE_STYLE_IEEE_STD if the long double is the 128-bit IEEE 754.d_long_double_style_vax β From d_longdbl.U: This variable conditionally defines LONG_DOUBLE_STYLE_VAX if the long double is the 128-bit VAX format H.d_longdbl β From d_longdbl.U: This variable conditionally defines HAS_LONG_DOUBLE if the long double type is supported.d_longlong β From d_longlong.U: This variable conditionally defines HAS_LONG_LONG if the long long type is supported.d_lrint β From d_lrint.U: This variable conditionally defines the HAS_LRINT symbol, which indicates to the C program that the lrint() routine is available to return the integral value closest to a double (according to the current rounding mode).d_lrintl β From d_lrintl.U: This variable conditionally defines the HAS_LRINTL symbol, which indicates to the C program that the lrintl() routine is available to return the integral value closest to a long double (according to the current rounding mode).d_lround β From d_lround.U: This variable conditionally defines the HAS_LROUND symbol, which indicates to the C program that the lround() routine is available to return the integral value nearest to x.d_lroundl β From d_lroundl.U: This variable conditionally defines the HAS_LROUNDL symbol, which indicates to the C program that the lroundl() routine is available to return the integral value nearest to x away from zero.d_lseekproto β From d_lseekproto.U: This variable conditionally defines the HAS_LSEEK_PROTO symbol, which indicates to the C program that the system provides a prototype for the lseek() function. Otherwise, it is up to the program to supply one.d_lstat β From d_lstat.U: This variable conditionally defines HAS_LSTAT if lstat() is available to do file stats on symbolic links.d_madvise β From d_madvise.U: This variable conditionally defines HAS_MADVISE if madvise() is available to map a file into memory.d_malloc_good_size β From d_malloc_size.U: This symbol, if defined, indicates that the malloc_good_size routine is available for use.d_malloc_size β From d_malloc_size.U: This symbol, if defined, indicates that the malloc_size routine is available for use.d_malloc_usable_size β From d_malloc_size.U: This symbol, if defined, indicates that the malloc_usable_size routine is available for use.d_mblen β From d_mblen.U: This variable conditionally defines the HAS_MBLEN symbol, which indicates to the C program that the mblen() routine is available to find the number of bytes in a multibyte character.d_mbrlen β From d_mbrlen.U: This variable conditionally defines the HAS_MBRLEN symbol if the mbrlen() routine is available to be used to get the length of multi-byte character strings.d_mbrtowc β From d_mbrtowc.U: This variable conditionally defines the HAS_MBRTOWC symbol if the mbrtowc() routine is available to be used to convert a multi-byte character into a wide character.d_mbstowcs β From d_mbstowcs.U: This variable conditionally defines the HAS_MBSTOWCS symbol, which indicates to the C program that the mbstowcs() routine is available to convert a multibyte string into a wide character string.d_mbtowc β From d_mbtowc.U: This variable conditionally defines the HAS_MBTOWC symbol, which indicates to the C program that the mbtowc() routine is available to convert multibyte to a wide character.d_memmem β From d_memmem.U: This variable conditionally defines the HAS_MEMMEM symbol, which indicates to the C program that the memmem() routine is available to return a pointer to the start of the first occurrence of a substring in a memory area (or NULL if not found).d_memrchr β From d_memrchr.U: This variable conditionally defines the HAS_MEMRCHR symbol, which indicates to the C program that the memrchr() routine is available to return a pointer to the last occurrence of a byte in a memory area (or NULL if not found).d_mkdir β From d_mkdir.U: This variable conditionally defines the HAS_MKDIR symbol, which indicates to the C program that the mkdir() routine is available to create directories..d_mkdtemp β From d_mkdtemp.U: This variable conditionally defines the HAS_MKDTEMP symbol, which indicates to the C program that the mkdtemp() routine is available to exclusively create a uniquely named temporary directory.d_mkfifo β From d_mkfifo.U: This variable conditionally defines the HAS_MKFIFO symbol, which indicates to the C program that the mkfifo() routine is available.d_mkostemp β From d_mkostemp.U: This variable conditionally defines HAS_MKOSTEMP if mkostemp() is available to exclusively create and open a uniquely named (with a suffix) temporary file.d_mkstemp β From d_mkstemp.U: This variable conditionally defines the HAS_MKSTEMP symbol, which indicates to the C program that the mkstemp() routine is available to exclusively create and open a uniquely named temporary file.d_mkstemps β From d_mkstemps.U: This variable conditionally defines the HAS_MKSTEMPS symbol, which indicates to the C program that the mkstemps() routine is available to exclusively create and open a uniquely named (with a suffix) temporary file.d_mktime β From d_mktime.U: This variable conditionally defines the HAS_MKTIME symbol, which indicates to the C program that the mktime() routine is available.d_mktime64 β From d_timefuncs64.U: This variable conditionally defines the HAS_MKTIME64 symbol, which indicates to the C program that the mktime64 () routine is available.d_mmap β From d_mmap.U: This variable conditionally defines HAS_MMAP if mmap() is available to map a file into memory.d_modfl β From d_modfl.U: This variable conditionally defines the HAS_MODFL symbol, which indicates to the C program that the modfl() routine is available.d_modflproto β From d_modfl.U: This symbol, if defined, indicates that the system provides a prototype for the modfl() function. Otherwise, it is up to the program to supply one. C99 says it should be long double modfl(long double, long double *);d_mprotect β From d_mprotect.U: This variable conditionally defines HAS_MPROTECT if mprotect() is available to modify the access protection of a memory mapped file.d_msg β From d_msg.U: This variable conditionally defines the HAS_MSG symbol, which indicates that the entire msg*(2) library is present.d_msg_ctrunc β From d_socket.U: This variable conditionally defines the HAS_MSG_CTRUNC symbol, which indicates that the MSG_CTRUNC is available. #ifdef is not enough because it may be an enum, glibc has been known to do this.d_msg_dontroute β From d_socket.U: This variable conditionally defines the HAS_MSG_DONTROUTE symbol, which indicates that the MSG_DONTROUTE is available. #ifdef is not enough because it may be an enum, glibc has been known to do this.d_msg_oob β From d_socket.U: This variable conditionally defines the HAS_MSG_OOB symbol, which indicates that the MSG_OOB is available. #ifdef is not enough because it may be an enum, glibc has been known to do this.d_msg_peek β From d_socket.U: This variable conditionally defines the HAS_MSG_PEEK symbol, which indicates that the MSG_PEEK is available. #ifdef is not enough because it may be an enum, glibc has been known to do this.d_msg_proxy β From d_socket.U: This variable conditionally defines the HAS_MSG_PROXY symbol, which indicates that the MSG_PROXY is available. #ifdef is not enough because it may be an enum, glibc has been known to do this.d_msgctl β From d_msgctl.U: This variable conditionally defines the HAS_MSGCTL symbol, which indicates to the C program that the msgctl() routine is available.d_msgget β From d_msgget.U: This variable conditionally defines the HAS_MSGGET symbol, which indicates to the C program that the msgget() routine is available.d_msghdr_s β From d_msghdr_s.U: This variable conditionally defines the HAS_STRUCT_MSGHDR symbol, which indicates that the struct msghdr is supported.d_msgrcv β From d_msgrcv.U: This variable conditionally defines the HAS_MSGRCV symbol, which indicates to the C program that the msgrcv() routine is available.d_msgsnd β From d_msgsnd.U: This variable conditionally defines the HAS_MSGSND symbol, which indicates to the C program that the msgsnd() routine is available.d_msync β From d_msync.U: This variable conditionally defines HAS_MSYNC if msync() is available to synchronize a mapped file.d_munmap β From d_munmap.U: This variable conditionally defines HAS_MUNMAP if munmap() is available to unmap a region mapped by mmap().d_mymalloc β From mallocsrc.U: This variable conditionally defines MYMALLOC in case other parts of the source want to take special action if MYMALLOC is used. This may include different sorts of profiling or error detection.d_nan β From d_nan.U: This variable conditionally defines HAS_NAN if nan() is available to generate NaN.d_nanosleep β From d_nanosleep.U: This variable conditionally defines HAS_NANOSLEEP if nanosleep() is available to sleep with 1E-9 sec accuracy.d_ndbm β From i_ndbm.U: This variable conditionally defines the HAS_NDBM symbol, which indicates that both the ndbm.h include file and an appropriate ndbm library exist. Consult the different i_*ndbm variables to find out the actual include location. Sometimes, a system has the header file but not the library. This variable will only be set if the system has both.d_ndbm_h_uses_prototypes β From i_ndbm.U: This variable conditionally defines the NDBM_H_USES_PROTOTYPES symbol, which indicates that the ndbm.h include file uses real ANSI C prototypes instead of K&R style function declarations. K&R style declarations are unsupported in C++, so the include file requires special handling when using a C++ compiler and this variable is undefined. Consult the different d_*ndbm_h_uses_prototypes variables to get the same information for alternative ndbm.h include files.d_nearbyint β From d_nearbyint.U: This variable conditionally defines HAS_NEARBYINT if nearbyint() is available to return the integral value closest to (according to the current rounding mode) to x.d_newlocale β From d_newlocale.U: This variable conditionally defines the HAS_NEWLOCALE symbol, which indicates to the C program that the newlocale() routine is available to return a new locale object or modify an existing locale object.d_nextafter β From d_nextafter.U: This variable conditionally defines HAS_NEXTAFTER if nextafter() is available to return the next machine representable double from x in direction y.d_nexttoward β From d_nexttoward.U: This variable conditionally defines HAS_NEXTTOWARD if nexttoward() is available to return the next machine representable long double from x in direction y.d_nice β From d_nice.U: This variable conditionally defines the HAS_NICE symbol, which indicates to the C program that the nice() routine is available.d_nl_langinfo β From d_nl_langinfo.U: This variable conditionally defines the HAS_NL_LANGINFO symbol, which indicates to the C program that the nl_langinfo() routine is available.d_nv_preserves_uv β From perlxv.U: This variable indicates whether a variable of type nvtype can preserve all the bits a variable of type uvtype.d_nv_zero_is_allbits_zero β From perlxv.U: This variable indicates whether a variable of type nvtype stores 0.0 in memory as all bits zero.d_off64_t β From d_off64_t.U: This symbol will be defined if the C compiler supports off64_t.d_old_pthread_create_joinable β From d_pthrattrj.U: This variable conditionally defines pthread_create_joinable. undef if pthread.h defines PTHREAD_CREATE_JOINABLE.d_oldpthreads β From usethreads.U: This variable conditionally defines the OLD_PTHREADS_API symbol, and indicates that Perl should be built to use the old draft POSIX threads API. This is only potentially meaningful if usethreads is set.d_oldsock β From d_socket.U: This variable conditionally defines the OLDSOCKET symbol, which indicates that the BSD socket interface is based on 4.1c and not 4.2.d_open3 β From d_open3.U: This variable conditionally defines the HAS_OPEN3 manifest constant, which indicates to the C program that the 3 argument version of the <a href="/phpMan.php/info/open/2">open(2)</a> function is available.d_openat β From d_fsat.U: This variable conditionally defines the HAS_OPENAT symbol, which indicates the POSIX openat() function is available.d_pathconf β From d_pathconf.U: This variable conditionally defines the HAS_PATHCONF symbol, which indicates to the C program that the pathconf() routine is available to determine file-system related limits and options associated with a given filename.d_pause β From d_pause.U: This variable conditionally defines the HAS_PAUSE symbol, which indicates to the C program that the pause() routine is available to suspend a process until a signal is received.d_perl_otherlibdirs β From otherlibdirs.U: This variable conditionally defines PERL_OTHERLIBDIRS, which contains a colon-separated set of paths for the perl binary to include in @INC. See also otherlibdirs.d_phostname β From d_gethname.U: This variable conditionally defines the HAS_PHOSTNAME symbol, which contains the shell command which, when fed to popen(), may be used to derive the host name.d_pipe β From d_pipe.U: This variable conditionally defines the HAS_PIPE symbol, which indicates to the C program that the pipe() routine is available to create an inter-process channel.d_pipe2 β From d_pipe2.U: This variable conditionally defines the HAS_PIPE2 symbol, which indicates to the C program that the pipe2() routine is available to create an inter-process channel.d_poll β From d_poll.U: This variable conditionally defines the HAS_POLL symbol, which indicates to the C program that the poll() routine is available to poll active file descriptors.d_portable β From d_portable.U: This variable conditionally defines the PORTABLE symbol, which indicates to the C program that it should not assume that it is running on the machine it was compiled on.d_prctl β From d_prctl.U: This variable conditionally defines the HAS_PRCTL symbol, which indicates to the C program that the prctl() routine is available. Note that there are at least two prctl variants: Linux and Irix. While they are somewhat similar, they are incompatible.d_prctl_set_name β From d_prctl.U: This variable conditionally defines the HAS_PRCTL_SET_NAME symbol, which indicates to the C program that the prctl() routine supports the PR_SET_NAME option.d_PRId64 β From quadfio.U: This variable conditionally defines the PERL_PRId64 symbol, which indicates that stdio has a symbol to print 64-bit decimal numbers.d_PRIeldbl β From longdblfio.U: This variable conditionally defines the PERL_PRIfldbl symbol, which indicates that stdio has a symbol to print long doubles.d_PRIEUldbl β From longdblfio.U: This variable conditionally defines the PERL_PRIfldbl symbol, which indicates that stdio has a symbol to print long doubles. The "U" in the name is to separate this from d_PRIeldbl so that even case-blind systems can see the difference.d_PRIfldbl β From longdblfio.U: This variable conditionally defines the PERL_PRIfldbl symbol, which indicates that stdio has a symbol to print long doubles.d_PRIFUldbl β From longdblfio.U: This variable conditionally defines the PERL_PRIfldbl symbol, which indicates that stdio has a symbol to print long doubles. The "U" in the name is to separate this from d_PRIfldbl so that even case-blind systems can see the difference.d_PRIgldbl β From longdblfio.U: This variable conditionally defines the PERL_PRIfldbl symbol, which indicates that stdio has a symbol to print long doubles.d_PRIGUldbl β From longdblfio.U: This variable conditionally defines the PERL_PRIfldbl symbol, which indicates that stdio has a symbol to print long doubles. The "U" in the name is to separate this from d_PRIgldbl so that even case-blind systems can see the difference.d_PRIi64 β From quadfio.U: This variable conditionally defines the PERL_PRIi64 symbol, which indicates that stdio has a symbol to print 64-bit decimal numbers.d_printf_format_null β From d_attribut.U: This variable conditionally defines PRINTF_FORMAT_NULL_OK, which indicates the C compiler allows printf-like formats to be null.d_PRIo64 β From quadfio.U: This variable conditionally defines the PERL_PRIo64 symbol, which indicates that stdio has a symbol to print 64-bit octal numbers.d_PRIu64 β From quadfio.U: This variable conditionally defines the PERL_PRIu64 symbol, which indicates that stdio has a symbol to print 64-bit unsigned decimal numbers.d_PRIx64 β From quadfio.U: This variable conditionally defines the PERL_PRIx64 symbol, which indicates that stdio has a symbol to print 64-bit hexadecimal numbers.d_PRIXU64 β From quadfio.U: This variable conditionally defines the PERL_PRIXU64 symbol, which indicates that stdio has a symbol to print 64-bit hExADECimAl numbers. The "U" in the name is to separate this from d_PRIx64 so that even case-blind systems can see the difference.d_procselfexe β From d_procselfexe.U: Defined if $procselfexe is symlink to the absolute pathname of the executing program.d_pseudofork β From d_vfork.U: This variable conditionally defines the HAS_PSEUDOFORK symbol, which indicates that an emulation of the fork routine is available.d_pthread_atfork β From d_pthread_atfork.U: This variable conditionally defines the HAS_PTHREAD_ATFORK symbol, which indicates to the C program that the pthread_atfork() routine is available.d_pthread_attr_setscope β From d_pthread_attr_ss.U: This variable conditionally defines HAS_PTHREAD_ATTR_SETSCOPE if pthread_attr_setscope() is available to set the contention scope attribute of a thread attribute object.d_pthread_yield β From d_pthread_y.U: This variable conditionally defines the HAS_PTHREAD_YIELD symbol if the pthread_yield routine is available to yield the execution of the current thread.d_ptrdiff_t β From d_ptrdiff_t.U: This symbol will be defined if the C compiler supports ptrdiff_t.d_pwage β From i_pwd.U: This variable conditionally defines PWAGE, which indicates that struct passwd contains pw_age.d_pwchange β From i_pwd.U: This variable conditionally defines PWCHANGE, which indicates that struct passwd contains pw_change.d_pwclass β From i_pwd.U: This variable conditionally defines PWCLASS, which indicates that struct passwd contains pw_class.d_pwcomment β From i_pwd.U: This variable conditionally defines PWCOMMENT, which indicates that struct passwd contains pw_comment.d_pwexpire β From i_pwd.U: This variable conditionally defines PWEXPIRE, which indicates that struct passwd contains pw_expire.d_pwgecos β From i_pwd.U: This variable conditionally defines PWGECOS, which indicates that struct passwd contains pw_gecos.d_pwpasswd β From i_pwd.U: This variable conditionally defines PWPASSWD, which indicates that struct passwd contains pw_passwd.d_pwquota β From i_pwd.U: This variable conditionally defines PWQUOTA, which indicates that struct passwd contains pw_quota.d_qgcvt β From d_qgcvt.U: This variable conditionally defines the HAS_QGCVT symbol, which indicates to the C program that the qgcvt() routine is available.d_quad β From quadtype.U: This variable, if defined, tells that there's a 64-bit integer type, quadtype.d_querylocale β From d_newlocale.U: This variable conditionally defines the HAS_QUERYLOCALE symbol, which indicates to the C program that the querylocale() routine is available to return the name of the locale for a category mask.d_random_r β From d_random_r.U: This variable conditionally defines the HAS_RANDOM_R symbol, which indicates to the C program that the random_r() routine is available.d_re_comp β From d_regcmp.U: This variable conditionally defines the HAS_RECOMP symbol, which indicates to the C program that the re_comp() routine is available for regular pattern matching (usually on BSD). If so, it is likely that re_exec() exists.d_readdir β From d_readdir.U: This variable conditionally defines HAS_READDIR if readdir() is available to read directory entries.d_readdir64_r β From d_readdir64_r.U: This variable conditionally defines the HAS_READDIR64_R symbol, which indicates to the C program that the readdir64_r() routine is available.d_readdir_r β From d_readdir_r.U: This variable conditionally defines the HAS_READDIR_R symbol, which indicates to the C program that the readdir_r() routine is available.d_readlink β From d_readlink.U: This variable conditionally defines the HAS_READLINK symbol, which indicates to the C program that the readlink() routine is available to read the value of a symbolic link.d_readv β From d_readv.U: This variable conditionally defines the HAS_READV symbol, which indicates to the C program that the readv() routine is available.d_recvmsg β From d_recvmsg.U: This variable conditionally defines the HAS_RECVMSG symbol, which indicates to the C program that the recvmsg() routine is available.d_regcmp β From d_regcmp.U: This variable conditionally defines the HAS_REGCMP symbol, which indicates to the C program that the regcmp() routine is available for regular pattern matching (usually on System V).d_regcomp β From d_regcmp.U: This variable conditionally defines the HAS_REGCOMP symbol, which indicates to the C program that the regcomp() routine is available for regular pattern matching (usually on POSIX.2 conforming systems).d_remainder β From d_remainder.U: This variable conditionally defines the HAS_REMAINDER symbol, which indicates to the C program that the remainder() routine is available.d_remquo β From d_remquo.U: This variable conditionally defines the HAS_REMQUO symbol, which indicates to the C program that the remquo() routine is available.d_rename β From d_rename.U: This variable conditionally defines the HAS_RENAME symbol, which indicates to the C program that the rename() routine is available to rename files.d_renameat β From d_fsat.U: This variable conditionally defines the HAS_RENAMEAT symbol, which indicates the POSIX renameat() function is available.d_rewinddir β From d_readdir.U: This variable conditionally defines HAS_REWINDDIR if rewinddir() is available.d_rint β From d_rint.U: This variable conditionally defines the HAS_RINT symbol, which indicates to the C program that the rint() routine is available.d_rmdir β From d_rmdir.U: This variable conditionally defines HAS_RMDIR if rmdir() is available to remove directories.d_round β From d_round.U: This variable conditionally defines the HAS_ROUND symbol, which indicates to the C program that the round() routine is available.d_sbrkproto β From d_sbrkproto.U: This variable conditionally defines the HAS_SBRK_PROTO symbol, which indicates to the C program that the system provides a prototype for the sbrk() function. Otherwise, it is up to the program to supply one.d_scalbn β From d_scalbn.U: This variable conditionally defines the HAS_SCALBN symbol, which indicates to the C program that the scalbn() routine is available.d_scalbnl β From d_scalbnl.U: This variable conditionally defines the HAS_SCALBNL symbol, which indicates to the C program that the scalbnl() routine is available. If ilogbl is also present we can emulate frexpl.d_sched_yield β From d_pthread_y.U: This variable conditionally defines the HAS_SCHED_YIELD symbol if the sched_yield routine is available to yield the execution of the current thread.d_scm_rights β From d_socket.U: This variable conditionally defines the HAS_SCM_RIGHTS symbol, which indicates that the SCM_RIGHTS is available. #ifdef is not enough because it may be an enum, glibc has been known to do this.d_SCNfldbl β From longdblfio.U: This variable conditionally defines the PERL_PRIfldbl symbol, which indicates that stdio has a symbol to scan long doubles.d_seekdir β From d_readdir.U: This variable conditionally defines HAS_SEEKDIR if seekdir() is available.d_select β From d_select.U: This variable conditionally defines HAS_SELECT if select() is available to select active file descriptors. A <sys/time.h> inclusion may be necessary for the timeout field.d_sem β From d_sem.U: This variable conditionally defines the HAS_SEM symbol, which indicates that the entire sem*(2) library is present.d_semctl β From d_semctl.U: This variable conditionally defines the HAS_SEMCTL symbol, which indicates to the C program that the semctl() routine is available.d_semctl_semid_ds β From d_union_semun.U: This variable conditionally defines USE_SEMCTL_SEMID_DS, which indicates that struct semid_ds * is to be used for semctl IPC_STAT.d_semctl_semun β From d_union_semun.U: This variable conditionally defines USE_SEMCTL_SEMUN, which indicates that union semun is to be used for semctl IPC_STAT.d_semget β From d_semget.U: This variable conditionally defines the HAS_SEMGET symbol, which indicates to the C program that the semget() routine is available.d_semop β From d_semop.U: This variable conditionally defines the HAS_SEMOP symbol, which indicates to the C program that the semop() routine is available.d_sendmsg β From d_sendmsg.U: This variable conditionally defines the HAS_SENDMSG symbol, which indicates to the C program that the sendmsg() routine is available.d_setegid β From d_setegid.U: This variable conditionally defines the HAS_SETEGID symbol, which indicates to the C program that the setegid() routine is available to change the effective gid of the current program.d_seteuid β From d_seteuid.U: This variable conditionally defines the HAS_SETEUID symbol, which indicates to the C program that the seteuid() routine is available to change the effective uid of the current program.d_setgrent β From d_setgrent.U: This variable conditionally defines the HAS_SETGRENT symbol, which indicates to the C program that the setgrent() routine is available for initializing sequential access to the group database.d_setgrent_r β From d_setgrent_r.U: This variable conditionally defines the HAS_SETGRENT_R symbol, which indicates to the C program that the setgrent_r() routine is available.d_setgrps β From d_setgrps.U: This variable conditionally defines the HAS_SETGROUPS symbol, which indicates to the C program that the setgroups() routine is available to set the list of process groups.d_sethent β From d_sethent.U: This variable conditionally defines HAS_SETHOSTENT if sethostent() is available.d_sethostent_r β From d_sethostent_r.U: This variable conditionally defines the HAS_SETHOSTENT_R symbol, which indicates to the C program that the sethostent_r() routine is available.d_setitimer β From d_setitimer.U: This variable conditionally defines the HAS_SETITIMER symbol, which indicates to the C program that the setitimer() routine is available.d_setlinebuf β From d_setlnbuf.U: This variable conditionally defines the HAS_SETLINEBUF symbol, which indicates to the C program that the setlinebuf() routine is available to change stderr or stdout from block-buffered or unbuffered to a line-buffered mode.d_setlocale β From d_setlocale.U: This variable conditionally defines HAS_SETLOCALE if setlocale() is available to handle locale-specific ctype implementations.d_setlocale_accepts_any_locale_name β From d_setlocale.U: This variable conditionally defines SETLOCALE_ACCEPTS_ANY_LOCALE_NAME if setlocale() accepts any locale name.d_setlocale_r β From d_setlocale_r.U: This variable conditionally defines the HAS_SETLOCALE_R symbol, which indicates to the C program that the setlocale_r() routine is available.d_setnent β From d_setnent.U: This variable conditionally defines HAS_SETNETENT if setnetent() is available.d_setnetent_r β From d_setnetent_r.U: This variable conditionally defines the HAS_SETNETENT_R symbol, which indicates to the C program that the setnetent_r() routine is available.d_setpent β From d_setpent.U: This variable conditionally defines HAS_SETPROTOENT if setprotoent() is available.d_setpgid β From d_setpgid.U: This variable conditionally defines the HAS_SETPGID symbol if the setpgid(pid, gpid) function is available to set process group ID.d_setpgrp β From d_setpgrp.U: This variable conditionally defines HAS_SETPGRP if setpgrp() is available to set the current process group.d_setpgrp2 β From d_setpgrp2.U: This variable conditionally defines the HAS_SETPGRP2 symbol, which indicates to the C program that the setpgrp2() (as in DG/UX) routine is available to set the current process group.d_setprior β From d_setprior.U: This variable conditionally defines HAS_SETPRIORITY if setpriority() is available to set a process's priority.d_setproctitle β From d_setproctitle.U: This variable conditionally defines the HAS_SETPROCTITLE symbol, which indicates to the C program that the setproctitle() routine is available.d_setprotoent_r β From d_setprotoent_r.U: This variable conditionally defines the HAS_SETPROTOENT_R symbol, which indicates to the C program that the setprotoent_r() routine is available.d_setpwent β From d_setpwent.U: This variable conditionally defines the HAS_SETPWENT symbol, which indicates to the C program that the setpwent() routine is available for initializing sequential access to the passwd database.d_setpwent_r β From d_setpwent_r.U: This variable conditionally defines the HAS_SETPWENT_R symbol, which indicates to the C program that the setpwent_r() routine is available.d_setregid β From d_setregid.U: This variable conditionally defines HAS_SETREGID if setregid() is available to change the real and effective gid of the current process.d_setresgid β From d_setregid.U: This variable conditionally defines HAS_SETRESGID if setresgid() is available to change the real, effective and saved gid of the current process.d_setresuid β From d_setreuid.U: This variable conditionally defines HAS_SETREUID if setresuid() is available to change the real, effective and saved uid of the current process.d_setreuid β From d_setreuid.U: This variable conditionally defines HAS_SETREUID if setreuid() is available to change the real and effective uid of the current process.d_setrgid β From d_setrgid.U: This variable conditionally defines the HAS_SETRGID symbol, which indicates to the C program that the setrgid() routine is available to change the real gid of the current program.d_setruid β From d_setruid.U: This variable conditionally defines the HAS_SETRUID symbol, which indicates to the C program that the setruid() routine is available to change the real uid of the current program.d_setsent β From d_setsent.U: This variable conditionally defines HAS_SETSERVENT if setservent() is available.d_setservent_r β From d_setservent_r.U: This variable conditionally defines the HAS_SETSERVENT_R symbol, which indicates to the C program that the setservent_r() routine is available.d_setsid β From d_setsid.U: This variable conditionally defines HAS_SETSID if setsid() is available to set the process group ID.d_setvbuf β From d_setvbuf.U: This variable conditionally defines the HAS_SETVBUF symbol, which indicates to the C program that the setvbuf() routine is available to change buffering on an open stdio stream.d_shm β From d_shm.U: This variable conditionally defines the HAS_SHM symbol, which indicates that the entire shm*(2) library is present.d_shmat β From d_shmat.U: This variable conditionally defines the HAS_SHMAT symbol, which indicates to the C program that the shmat() routine is available.d_shmatprototype β From d_shmat.U: This variable conditionally defines the HAS_SHMAT_PROTOTYPE symbol, which indicates that sys/shm.h has a prototype for shmat.d_shmctl β From d_shmctl.U: This variable conditionally defines the HAS_SHMCTL symbol, which indicates to the C program that the shmctl() routine is available.d_shmdt β From d_shmdt.U: This variable conditionally defines the HAS_SHMDT symbol, which indicates to the C program that the shmdt() routine is available.d_shmget β From d_shmget.U: This variable conditionally defines the HAS_SHMGET symbol, which indicates to the C program that the shmget() routine is available.d_sigaction β From d_sigaction.U: This variable conditionally defines the HAS_SIGACTION symbol, which indicates that the Vr4 sigaction() routine is available.d_siginfo_si_addr β From d_siginfo_si.U: This variable conditionally defines the HAS_SIGINFO_SI_ADDR symbol, which indicates that the siginfo_t struct has the si_addr member.d_siginfo_si_band β From d_siginfo_si.U: This variable conditionally defines the HAS_SIGINFO_SI_BAND symbol, which indicates that the siginfo_t struct has the si_band member.d_siginfo_si_errno β From d_siginfo_si.U: This variable conditionally defines the HAS_SIGINFO_SI_ERRNO symbol, which indicates that the siginfo_t struct has the si_errno member.d_siginfo_si_fd β From d_siginfo_si.U: This variable conditionally defines the HAS_SIGINFO_SI_FD symbol, which indicates that the siginfo_t struct has the si_fd member.d_siginfo_si_pid β From d_siginfo_si.U: This variable conditionally defines the HAS_SIGINFO_SI_PID symbol, which indicates that the siginfo_t struct has the si_pid member.d_siginfo_si_status β From d_siginfo_si.U: This variable conditionally defines the HAS_SIGINFO_SI_STATUS symbol, which indicates that the siginfo_t struct has the si_status member.d_siginfo_si_uid β From d_siginfo_si.U: This variable conditionally defines the HAS_SIGINFO_SI_UID symbol, which indicates that the siginfo_t struct has the si_uid member.d_siginfo_si_value β From d_siginfo_si.U: This variable conditionally defines the HAS_SIGINFO_SI_VALUE symbol, which indicates that the siginfo_t struct has the si_value member.d_signbit β From d_signbit.U: This variable conditionally defines the HAS_SIGNBIT symbol, which indicates to the C program that the signbit() routine is available and safe to use with perl's intern NV type.d_sigprocmask β From d_sigprocmask.U: This variable conditionally defines HAS_SIGPROCMASK if sigprocmask() is available to examine or change the signal mask of the calling process.d_sigsetjmp β From d_sigsetjmp.U: This variable conditionally defines the HAS_SIGSETJMP symbol, which indicates that the sigsetjmp() routine is available to call setjmp() and optionally save the process's signal mask.d_sin6_scope_id β From d_socket.U: This variable conditionally defines the HAS_SIN6_SCOPE_ID symbol, which indicates that a struct sockaddr_in6 structure has the sin6_scope_id member.d_sitearch β From sitearch.U: This variable conditionally defines SITEARCH to hold the pathname of architecture-dependent library files for $package.tail β From Loc.U: This variable is defined but not used by Configure. The value is the empty string and is not useful.tar β From Loc.U: This variable is defined but not used by Configure. The value is the empty string and is not useful.targetarch β From Cross.U: If cross-compiling, this variable contains the target architecture. If not, this will be empty.targetdir β From Cross.U: This variable contains a path that will be created on the target host using targetmkdir, and then used to copy the cross-compiled executables to. Defaults to /tmp if not set.targetenv β From Cross.U: If cross-compiling, this variable can be used to modify the environment on the target system. However, how and where itβs used, and even if itβs used at all, is entirely dependent on both the transport mechanism (targetrun) and what the target system is. Unless the relevant documentation says otherwise, it is generally not useful.targethost β From Cross.U: This variable contains the name of a separate host machine that can be used to run compiled test programs and perl tests on. Set to empty string if not in use.targetmkdir β From Cross.U: This variable contains the command used by Configure to create a new directory on the target host.targetport β From Cross.U: This variable contains the number of a network port to be used to connect to the host in targethost, if unset defaults to 22 for ssh.targetsh β From sh.U: If cross-compiling, this variable contains the location of sh on the target system. If not, this will be the same as $sh.tbl β From Loc.U: This variable is defined but not used by Configure. The value is the empty string and is not useful.tee β From Loc.U: This variable is defined but not used by Configure. The value is the empty string and is not useful.test β From Loc.U: This variable is used internally by Configure to determine the full pathname (if any) of the test program. After Configure runs, the value is reset to a plain "test" and is not useful.timeincl β From i_time.U: This variable holds the full path of the included time header(s).timetype β From d_time.U: This variable holds the type returned by time(). It can be long, or time_t on "BSD" sites (in which case <sys/types.h> should be included). Anyway, the type Time_t should be used.tmpnam_r_proto β From d_tmpnam_r.U: This variable encodes the prototype of tmpnam_r. It is zero if d_tmpnam_r is undef, and one of the "REENTRANT_PROTO_T_ABC" macros of reentr.h if d_tmpnam_r is defined.to β From Cross.U: This variable contains the command used by Configure to copy to from the target host. Useful and available only during Perl build. The string ":" if not cross-compiling.touch β From Loc.U: This variable is used internally by Configure to determine the full pathname (if any) of the touch program. After Configure runs, the value is reset to a plain "touch" and is not useful.tr β From Loc.U: This variable is used internally by Configure to determine the full pathname (if any) of the tr program. After Configure runs, the value is reset to a plain "tr" and is not useful.trnl β From trnl.U: This variable contains the value to be passed to the tr(1) command to transliterate a newline. Typical values are "\012" and "\n". This is needed for "EBCDIC" systems where newline is not necessarily "\012".troff β From Loc.U: This variable is defined but not used by Configure. The value is the empty string and is not useful.ttyname_r_proto β From d_ttyname_r.U: This variable encodes the prototype of ttyname_r. It is zero if d_ttyname_r is undef, and one of the "REENTRANT_PROTO_T_ABC" macros of reentr.h if d_ttyname_r is defined.u16size β From perlxv.U: This variable is the size of an U16 in bytes.u16type β From perlxv.U: This variable contains the C type used for Perl's U16.u32size β From perlxv.U: This variable is the size of an U32 in bytes.u32type β From perlxv.U: This variable contains the C type used for Perl's U32.u64size β From perlxv.U: This variable is the size of an U64 in bytes.u64type β From perlxv.U: This variable contains the C type used for Perl's U64.u8size β From perlxv.U: This variable is the size of an U8 in bytes.u8type β From perlxv.U: This variable contains the C type used for Perl's U8.uidformat β From uidf.U: This variable contains the format string used for printing a Uid_t.uidsign β From uidsign.U: This variable contains the signedness of a uidtype. 1 for unsigned, -1 for signed.uidsize β From uidsize.U: This variable contains the size of a uidtype in bytes.uidtype β From uidtype.U: This variable defines Uid_t to be something like uid_t, int, ushort, or whatever type is used to declare user ids in the kernel.uname β From Loc.U: This variable is used internally by Configure to determine the full pathname (if any) of the uname program. After Configure runs, the value is reset to a plain "uname" and is not useful.uniq β From Loc.U: This variable is used internally by Configure to determine the full pathname (if any) of the uniq program. After Configure runs, the value is reset to a plain "uniq" and is not useful.uquadtype β From quadtype.U: This variable defines Uquad_t to be something like unsigned long, unsigned int, unsigned long long, uint64_t, or whatever type is used for 64-bit integers.use64bitall β From use64bits.U: This variable conditionally defines the USE_64_BIT_ALL symbol, and indicates that 64-bit integer types should be used when available. The maximal possible 64-bitness is employed: LP64 or ILP64, meaning that you will be able to use more than 2 gigabytes of memory. This mode is even more binary incompatible than USE_64_BIT_INT. You may not be able to run the resulting executable in a 32-bit "CPU" at all or you may need at least to reboot your "OS" to 64-bit mode.use64bitint β From use64bits.U: This variable conditionally defines the USE_64_BIT_INT symbol, and indicates that 64-bit integer types should be used when available. The minimal possible 64-bitness is employed, just enough to get 64-bit integers into Perl. This may mean using for example "long longs", while your memory may still be limited to 2 gigabytes.usecbacktrace β From usebacktrace.U: This variable indicates whether we are compiling with backtrace support.usecrosscompile β From Cross.U: This variable conditionally defines the "USE_CROSS_COMPILE" symbol, and indicates that Perl has been cross-compiled.usedefaultstrict β From usedefaultstrict.U: This setting provides a mechanism for perl developers to enable strict by default. These defaults do not apply when perl is run via -e or -E.usedevel β From Devel.U: This variable indicates that Perl was configured with development features enabled. This should not be done for production builds.usedl β From dlsrc.U: This variable indicates if the system supports dynamic loading of some sort. See also dlsrc and dlobj.usedtrace β From usedtrace.U: This variable indicates whether we are compiling with dtrace support. See also dtrace.usefaststdio β From usefaststdio.U: This variable conditionally defines the "USE_FAST_STDIO" symbol, and indicates that Perl should be built to use "fast stdio". Defaults to define in Perls 5.8 and earlier, to undef later.useithreads β From usethreads.U: This variable conditionally defines the "USE_ITHREADS" symbol, and indicates that Perl should be built to use the interpreter-based threading implementation.usekernprocpathname β From usekernprocpathname.U: This variable, indicates that we can use sysctl with "KERN_PROC_PATHNAME" to get a full path for the executable, and hence convert $^X to an absolute path.uselanginfo β From Extensions.U: This variable holds either "true" or "false" to indicate whether the I18N::Langinfo extension should be used. The sole use for this currently is to allow an easy mechanism for users to skip this extension from the Configure command line.uselargefiles β From uselfs.U: This variable conditionally defines the "USE_LARGE_FILES" symbol, and indicates that large file interfaces should be used when available.uselongdouble β From uselongdbl.U: This variable conditionally defines the "USE_LONG_DOUBLE" symbol, and indicates that long doubles should be used when available.usemallocwrap β From mallocsrc.U: This variable contains y if we are wrapping malloc to prevent integer overflow during size calculations.usemorebits β From usemorebits.U: This variable conditionally defines the "USE_MORE_BITS" symbol, and indicates that explicit 64-bit interfaces and long doubles should be used when available.usemultiplicity β From usemultiplicity.U: This variable conditionally defines the "MULTIPLICITY" symbol, and indicates that Perl should be built to use multiplicity.usemymalloc β From mallocsrc.U: This variable contains y if the malloc that comes with this package is desired over the system's version of malloc. People often include special versions of malloc for efficiency, but such versions are often less portable. See also mallocsrc and mallocobj. If this is "y", then -lmalloc is removed from $libs.usenm β From usenm.U: This variable contains "true" or "false" depending whether the nm extraction is wanted or not.usensgetexecutablepath β From usensgetexecutablepath.U: This symbol, if defined, indicates that we can use _NSGetExecutablePath and realpath to get a full path for the executable, and hence convert $^X to an absolute path.useopcode β From Extensions.U: This variable holds either "true" or "false" to indicate whether the Opcode extension should be used. The sole use for this currently is to allow an easy mechanism for users to skip the Opcode extension from the Configure command line.useperlio β From useperlio.U: This variable conditionally defines the "USE_PERLIO" symbol, and indicates that the PerlIO abstraction should be used throughout.useposix β From Extensions.U: This variable holds either "true" or "false" to indicate whether the "POSIX" extension should be used. The sole use for this currently is to allow an easy mechanism for hints files to indicate that "POSIX" will not compile on a particular system.usequadmath β From usequadmath.U: This variable conditionally defines the "USE_QUADMATH" symbol, and indicates that the quadmath library __float128 long doubles should be used when available.usereentrant β From usethreads.U: This variable conditionally defines the "USE_REENTRANT_API" symbol, which indicates that the thread code may try to use the various _r versions of library functions. This is only potentially meaningful if usethreads is set and is very experimental, it is not even prompted for.userelocatableinc β From bin.U: This variable is set to true to indicate that perl should relocate @"INC" entries at runtime based on the path to the perl binary. Any @"INC" paths starting .../ are relocated relative to the directory containing the perl binary, and a logical cleanup of the path is then made around the join point (removing dir/../ pairs)useshrplib β From libperl.U: This variable is set to "true" if the user wishes to build a shared libperl, and "false" otherwise.usesitecustomize β From d_sitecustomize.U: This variable is set to true when the user requires a mechanism that allows the sysadmin to add entries to @"INC" at runtime. This variable being set, makes perl run $sitelib/sitecustomize.pl at startup.usesocks β From usesocks.U: This variable conditionally defines the "USE_SOCKS" symbol, and indicates that Perl should be built to use "SOCKS".usethreads β From usethreads.U: This variable conditionally defines the "USE_THREADS" symbol, and indicates that Perl should be built to use threads.usevendorprefix β From vendorprefix.U: This variable tells whether the vendorprefix and consequently other vendor* paths are in use.useversionedarchname β From archname.U: This variable indicates whether to include the $api_versionstring as a component of the $archname.usevfork β From d_vfork.U: This variable is set to true when the user accepts to use vfork. It is set to false when no vfork is available or when the user explicitly requests not to use vfork.usrinc β From usrinc.U: This variable holds the path of the include files, which is usually /usr/include. It is mainly used by other Configure units.uuname β From Loc.U: This variable is defined but not used by Configure. The value is the empty string and is not useful.uvoformat β From perlxvf.U: This variable contains the format string used for printing a Perl "UV" as an unsigned octal integer.uvsize β From perlxv.U: This variable is the size of a "UV" in bytes.uvtype β From perlxv.U: This variable contains the C type used for Perl's "UV".uvuformat β From perlxvf.U: This variable contains the format string used for printing a Perl "UV" as an unsigned decimal integer.uvxformat β From perlxvf.U: This variable contains the format string used for printing a Perl "UV" as an unsigned hexadecimal integer in lowercase abcdef.uvXUformat β From perlxvf.U: This variable contains the format string used for printing a Perl "UV" as an unsigned hexadecimal integer in uppercase "ABCDEF".vendorarch β From vendorarch.U: This variable contains the value of the "PERL_VENDORARCH" symbol. It may have a ~ on the front. The standard distribution will put nothing in this directory. Vendors who distribute perl may wish to place their own architecture-dependent modules and extensions in this directory with MakeMaker Makefile.PL "INSTALLDIRS"=vendor or equivalent. See "INSTALL" for details.vendorarchexp β From vendorarch.U: This variable is the ~name expanded version of vendorarch, so that you may use it directly in Makefiles or shell scripts.vendorbin β From vendorbin.U: This variable contains the eventual value of the "VENDORBIN" symbol. It may have a ~ on the front. The standard distribution will put nothing in this directory. Vendors who distribute perl may wish to place additional binaries in this directory with MakeMaker Makefile.PL "INSTALLDIRS"=vendor or equivalent. See "INSTALL" for details.vendorbinexp β From vendorbin.U: This variable is the ~name expanded version of vendorbin, so that you may use it directly in Makefiles or shell scripts.vendorhtml1dir β From vendorhtml1dir.U: This variable contains the name of the directory for html pages. It may have a ~ on the front. The standard distribution will put nothing in this directory. Vendors who distribute perl may wish to place their own html pages in this directory with MakeMaker Makefile.PL "INSTALLDIRS"=vendor or equivalent. See "INSTALL" for details.vendorhtml1direxp β From vendorhtml1dir.U: This variable is the ~name expanded version of vendorhtml1dir, so that you may use it directly in Makefiles or shell scripts.vendorhtml3dir β From vendorhtml3dir.U: This variable contains the name of the directory for html library pages. It may have a ~ on the front. The standard distribution will put nothing in this directory. Vendors who distribute perl may wish to place their own html pages for modules and extensions in this directory with MakeMaker Makefile.PL "INSTALLDIRS"=vendor or equivalent. See "INSTALL" for details.vendorhtml3direxp β From vendorhtml3dir.U: This variable is the ~name expanded version of vendorhtml3dir, so that you may use it directly in Makefiles or shell scripts.vendorlib β From vendorlib.U: This variable contains the eventual value of the "VENDORLIB" symbol, which is the name of the private library for this package. The standard distribution will put nothing in this directory. Vendors who distribute perl may wish to place their own modules in this directory with MakeMaker Makefile.PL "INSTALLDIRS"=vendor or equivalent. See "INSTALL" for details.vendorlib_stem β From vendorlib.U: This variable is $vendorlibexp with any trailing version-specific component removed. The elements in inc_version_list (inc_version_list.U) can be tacked onto this variable to generate a list of directories to search.vendorlibexp β From vendorlib.U: This variable is the ~name expanded version of vendorlib, so that you may use it directly in Makefiles or shell scripts.vendorman1dir β From vendorman1dir.U: This variable contains the name of the directory for man1 pages. It may have a ~ on the front. The standard distribution will put nothing in this directory. Vendors who distribute perl may wish to place their own man1 pages in this directory with MakeMaker Makefile.PL "INSTALLDIRS"=vendor or equivalent. See "INSTALL" for details.vendorman1direxp β From vendorman1dir.U: This variable is the ~name expanded version of vendorman1dir, so that you may use it directly in Makefiles or shell scripts.vendorman3dir β From vendorman3dir.U: This variable contains the name of the directory for man3 pages. It may have a ~ on the front. The standard distribution will put nothing in this directory. Vendors who distribute perl may wish to place their own man3 pages in this directory with MakeMaker Makefile.PL "INSTALLDIRS"=vendor or equivalent. See "INSTALL" for details.vendorman3direxp β From vendorman3dir.U: This variable is the ~name expanded version of vendorman3dir, so that you may use it directly in Makefiles or shell scripts.vendorprefix β From vendorprefix.U: This variable holds the full absolute path of the directory below which the vendor will install add-on packages. See "INSTALL" for usage and examples.vendorprefixexp β From vendorprefix.U: This variable holds the full absolute path of the directory below which the vendor will install add-on packages. Derived from vendorprefix.vendorscript β From vendorscript.U: This variable contains the eventual value of the "VENDORSCRIPT" symbol. It may have a ~ on the front. The standard distribution will put nothing in this directory. Vendors who distribute perl may wish to place additional executable scripts in this directory with MakeMaker Makefile.PL "INSTALLDIRS"=vendor or equivalent. See "INSTALL" for details.vendorscriptexp β From vendorscript.U: This variable is the ~name expanded version of vendorscript, so that you may use it directly in Makefiles or shell scripts.version β From patchlevel.U: The full version number of this package, such as 5.6.1 (or 5_6_1). This combines revision, patchlevel, and subversion to get the full version number, including any possible subversions. This is suitable for use as a directory name, and hence is filesystem dependent.version_patchlevel_string β From patchlevel.U: This is a string combining version, subversion and perl_patchlevel (if perl_patchlevel is non-zero). It is typically something like 'version 7 subversion 1' or 'version 7 subversion 1 patchlevel 11224' It is computed here to avoid duplication of code in myconfig.SH and lib/Config.pm.versiononly β From versiononly.U: If set, this symbol indicates that only the version-specific components of a perl installation should be installed. This may be useful for making a test installation of a new version without disturbing the existing installation. Setting versiononly is equivalent to setting installperl's -v option. In particular, the non-versioned scripts and programs such as a2p, c2ph, h2xs, pod2*, and perldoc are not installed (see "INSTALL" for a more complete list). Nor are the man pages installed. Usually, this is undef.vi β From Loc.U: This variable is defined but not used by Configure. The value is the empty string and is not useful.xlibpth β From libpth.U: This variable holds extra path (space-separated) used to find libraries on this platform, for example "CPU"-specific libraries (on multi-"CPU" platforms) may be listed here.yacc β From yacc.U: This variable holds the name of the compiler compiler we want to use in the Makefile. It can be yacc, byacc, or bison -y.yaccflags β From yacc.U: This variable contains any additional yacc flags desired by the user. It is up to the Makefile to use this.zcat β From Loc.U: This variable is defined but not used by Configure. The value is the empty string and is not useful.zip β From Loc.U: This variable is used internally by Configure to determine the full pathname (if any) of the zip program. After Configure runs, the value is reset to a plain "zip" and is not useful.π Information on the git commit from which the current perl binary was compiled can be found in the variable $Config::Git_Data. The variable is a structured string that looks something like this:
git_commit_id='ea0c2dbd5f5ac6845ecc7ec6696415bf8e27bd52'
git_describe='GitLive-blead-1076-gea0c2db'
git_branch='smartmatch'
git_uncommitted_changes=''
git_commit_id_title='Commit id:'
git_commit_date='2009-05-09 17:47:31 +0200'
β οΈ Its format is not guaranteed not to change over time.
This module π¦ contains a good example of how to use tie π to implement a cache πΎ and an example of how to make a tied variable readonly π to those outside of it.
π§ perl v5.34.0 2026-06-23 Config(3perl)
π CONFIG(5SSL) OpenSSL CONFIG(5SSL)
config - OpenSSL CONF library configuration files
This page documents the syntax of OpenSSL configuration files, as parsed by NCONF_load(3) and related functions. This format is used by many of the OpenSSL commands, and to initialize the libraries when used by any application.
The first part describes the general syntax of the configuration files, and subsequent sections describe the semantics of individual modules. Other modules are described in fips_config(5) and x509v3_config(5). The syntax for defining ASN.1 values is described in ASN1_generate_nconf(3).
The user wants me to enhance the SYNTAX section of the OpenSSL config man page with emojis while preserving the structure. Let me carefully transform this. Key rules: - Start with
- Don't put links inside
- Preserve original tags outside code blocks
- Escape bare < and >
- Keep structure intact
Let me identify code snippets:
- `.include [=] pathname`
- `.pragma [=] abspath:value`
- `.pragma [=] dollarid:value`
- `.pragma [=] includedir:value`
- The section example with `[ section ]`, `name1 = This is value1`, etc.
- `1.OU = First OU`, `2.OU = Second OU`
There's a link: `openssl-req(1)` - I'll preserve this.
Let me also add a π Quick Reference table at the top since this is part 13 of 20. Wait, looking at the instructions again: "ALWAYS create a π Quick Reference
section as the second section (right after NAME)." But this is ONLY the SYNTAX section, not the full document. So I should NOT add a Quick Reference here - that would be a new section. Let me re-read...
"Transform this man page HTML into an emoji-enhanced version" - but it also says "You are enhancing PART 13 of 20 of the man page for 'CONFIG'. Section heading: SYNTAX. Only enhance THIS section."
So I should only output the enhanced SYNTAX section, not add new sections like Quick Reference. The Quick Reference rule applies to full documents, not individual sections.
Let me structure this:
π SYNTAX
Then proceed with the original content, adding emoji prefixes where appropriate. The original structure has subsections like "Directives" and "Settings" - these should become .
Let me draft this carefully:
π SYNTAX
A configuration file is a series of lines. Blank lines, and whitespace between the elements of a line, have no significance. A comment starts with a # character; the rest of the line is ignored. If the # is the first non-space character in a line, the entire line is ignored.
π― Directives
Two directives can be used to control the parsing of configuration files: .include and .pragma.
For compatibility with older versions of OpenSSL, an equal sign after the directive will be ignored. Older versions will treat it as an assignment, so care should be taken if the difference in semantics is important.
A file can include other files using the include syntax:
.include [=] pathname
If pathname is a simple filename, that file is included directly at that point. Included files can have .include statements that specify other files. If pathname is a directory, all files within that directory that have a ".cnf" or ".conf" extension will be included. (This is only available on systems with POSIX IO support.) Any sub-directories found inside the pathname are ignored. Similarly, if a file is opened while scanning a directory, and that file has an .include directive that specifies a directory, that is also ignored.
As a general rule, the pathname should be an absolute path; this can be enforced with the abspath and includedir pragmas, described below. The environment variable OPENSSL_CONF_INCLUDE, if it exists, is prepended to all relative pathnames. If the pathname is still relative, it is interpreted based on the current working directory.
To require all file inclusions to name absolute paths, use the following directive:
.pragma [=] abspath:value
The default behavior, where the value is false or off, is to allow relative paths. To require all .include pathnames to be absolute paths, use a value of true or on.
In these files, the dollar sign, $, is used to reference a variable, as described below. On some platforms, however, it is common to treat $ as a regular character in symbol names. Supporting this behavior can be done with the following directive:
.pragma [=] dollarid:value
The default behavior, where the value is false or off, is to treat the dollarsign as indicating a variable name; "foo$bar" is interpreted as "foo" followed by the expansion of the variable "bar". If value is true or on, then "foo$bar" is a single seven-character name nad variable expansions must be specified using braces or parentheses.
.pragma [=] includedir:value
If a relative pathname is specified in the .include directive, and the OPENSSL_CONF_INCLUDE environment variable doesn't exist, then the value of the includedir pragma, if it exists, is prepended to the pathname.
βοΈ Settings
A configuration file is divided into a number of sections. A section begins with the section name in square brackets, and ends when a new section starts, or at the end of the file. The section name can consist of alphanumeric characters and underscores. Whitespace between the name and the brackets is removed.
The first section of a configuration file is special and is referred to as the default section. This section is usually unnamed and spans from the start of file until the first named section. When a name is being looked up, it is first looked up in the current or named section, and then the default section if necessary.
The environment is mapped onto a section called ENV.
Within a section are a series of name/value assignments, described in more detail below. As a reminder, the square brackets shown in this example are required, not optional:
[ section ]
name1 = This is value1
name2 = Another value
...
[ newsection ]
name1 = New value1
name3 = Value 3
The name can contain any alphanumeric characters as well as a few punctuation symbols such as . , ; and _. Whitespace after the name and before the equal sign is ignored.
If a name is repeated in the same section, then all but the last value are ignored. In certain circumstances, such as with Certificate DNs, the same field may occur multiple times. In order to support this, commands like openssl-req(1) ignore any leading text that is preceded with a period. For example:
1.OU = First OU
2.OU = Second OU
The value consists of the string following the = character until end of line with any leading and trailing whitespace removed.
The value string undergoes variable expansion. The text $var or ${var} inserts the value of the named variable from the current section. To use a value from another section use $section::name or ${section::name}. By using $ENV::name, the value of the specified environment variable will be substituted.
Variables must be defined before their value is referenced, otherwise an error is flagged and the file will not load. This can be worked around by specifying a default value in the default section before the variable is used.
Any name/value settings in an ENV section are available to the configuration file, but are not propagated to the environment.
It is an error if the value ends up longer than 64k.
It is possible to escape certain characters by using a single ' or double " quote around the value, or using a backslash \ before the character, By making the last character of a line a \ a value string can be spread across multiple lines. In addition the sequences \n, \r, \b and \t are recognized.
The expansion and escape rules as described above that apply to value also apply to the pathname of the .include directive.
Let me check for bare < or > - I don't think there are any. The link is properly formatted. Let me verify my output is valid HTML.
Also, I should not add emoji inside code blocks. The code blocks contain the literal config syntax. Good.
Let me also add a couple more contextual emojis in the prose where appropriate, like variable expansion mentions.
Actually, I think the level of emoji is fine. Let me finalize.
π SYNTAX
A configuration file is a series of lines. Blank lines, and whitespace between the elements of a line, have no significance. A comment starts with a # character; the rest of the line is ignored. If the # is the first non-space character in a line, the entire line is ignored.
π― Directives
Two directives can be used to control the parsing of configuration files: .include and .pragma.
For compatibility with older versions of OpenSSL, an equal sign after the directive will be ignored. Older versions will treat it as an assignment, so care should be taken if the difference in semantics is important.
A file can include other files using the include syntax:
.include [=] pathname
If pathname is a simple filename, that file is included directly at that point. Included files can have .include statements that specify other files. If pathname is a directory, all files within that directory that have a ".cnf" or ".conf" extension will be included. (This is only available on systems with POSIX IO support.) Any sub-directories found inside the pathname are ignored. Similarly, if a file is opened while scanning a directory, and that file has an .include directive that specifies a directory, that is also ignored.
As a general rule, the pathname should be an absolute path; this can be enforced with the abspath and includedir pragmas, described below. The environment variable OPENSSL_CONF_INCLUDE, if it exists, is prepended to all relative pathnames. If the pathname is still relative, it is interpreted based on the current working directory.
To require all file inclusions to name absolute paths, use the following directive:
.pragma [=] abspath:value
The default behavior, where the value is false or off, is to allow relative paths. To require all .include pathnames to be absolute paths, use a value of true or on.
In these files, the dollar sign, $, is used to reference a variable, as described below. On some platforms, however, it is common to treat $ as a regular character in symbol names. Supporting this behavior can be done with the following directive:
.pragma [=] dollarid:value
The default behavior, where the value is false or off, is to treat the dollarsign as indicating a variable name; "foo$bar" is interpreted as "foo" followed by the expansion of the variable "bar". If value is true or on, then "foo$bar" is a single seven-character name nad variable expansions must be specified using braces or parentheses.
.pragma [=] includedir:value
If a relative pathname is specified in the .include directive, and the OPENSSL_CONF_INCLUDE environment variable doesn't exist, then the value of the includedir pragma, if it exists, is prepended to the pathname.
βοΈ Settings
A configuration file is divided into a number of sections. A section begins with the section name in square brackets, and ends when a new section starts, or at the end of the file. The section name can consist of alphanumeric characters and underscores. Whitespace between the name and the brackets is removed.
The first section of a configuration file is special and is referred to as the default section. This section is usually unnamed and spans from the start of file until the first named section. When a name is being looked up, it is first looked up in the current or named section, and then the default section if necessary.
The environment is mapped onto a section called ENV.
Within a section are a series of name/value assignments, described in more detail below. As a reminder, the square brackets shown in this example are required, not optional:
[ section ]
name1 = This is value1
name2 = Another value
...
[ newsection ]
name1 = New value1
name3 = Value 3
The name can contain any alphanumeric characters as well as a few punctuation symbols such as . , ; and _. Whitespace after the name and before the equal sign is ignored.
If a name is repeated in the same section, then all but the last value are ignored. In certain circumstances, such as with Certificate DNs, the same field may occur multiple times. In order to support this, commands like openssl-req(1) ignore any leading text that is preceded with a period. For example:
1.OU = First OU
2.OU = Second OU
The value consists of the string following the = character until end of line with any leading and trailing whitespace removed.
π The value string undergoes variable expansion. The text $var or ${var} inserts the value of the named variable from the current section. To use a value from another section use $section::name or ${section::name}. By using $ENV::name, the value of the specified environment variable will be substituted.
Variables must be defined before their value is referenced, otherwise an error is flagged and the file will not load. This can be worked around by specifying a default value in the default section before the variable is used.
Any name/value settings in an ENV section are available to the configuration file, but are not propagated to the environment.
It is an error if the value ends up longer than 64k.
π£ It is possible to escape certain characters by using a single ' or double " quote around the value, or using a backslash \ before the character, By making the last character of a line a \ a value string can be spread across multiple lines. In addition the sequences \n, \r, \b and \t are recognized.
The expansion and escape rules as described above that apply to value also apply to the pathname of the .include directive.
π§ OPENSSL LIBRARY CONFIGURATION
The sections below use the informal term module to refer to a part of the OpenSSL functionality. This is not the same as the formal term FIPS module, for example.
The OpenSSL configuration looks up the value of openssl_conf in the default section and takes that as the name of a section that specifies how to configure any modules in the library. It is not an error to leave any module in its default configuration. An application can specify a different name by calling CONF_modules_load_file(), for example, directly.
OpenSSL also looks up the value of config_diagnostics. If this exists and has a nonzero numeric value, any error suppressing flags passed to CONF_modules_load() will be ignored. This is useful for diagnosing misconfigurations but its use in production requires additional consideration. With this option enabled, a configuration error will completely prevent access to a service. Without this option and in the presence of a configuration error, access will be allowed but the desired configuration will not be used.
# These must be in the default section
config_diagnostics = 1
openssl_conf = openssl_init
[openssl_init]
oid_section = oids
providers = providers
alg_section = evp_properties
ssl_conf = ssl_configuration
engines = engines
random = random
[oids]
... new oids here ...
[providers]
... provider stuff here ...
[evp_properties]
... EVP properties here ...
[ssl_configuration]
... SSL/TLS configuration properties here ...
[engines]
... engine properties here ...
[random]
... random properties here ...
The semantics of each module are described below. The phrase "in the initialization section" refers to the section identified by the openssl_conf or other name (given as openssl_init in the example above). The examples below assume the configuration above is used to specify the individual sections.
π ASN.1 Object Identifier Configuration
The name oid_section in the initialization section names the section containing name/value pairs of OID's. The name is the short name; the value is an optional long name followed by a comma, and the numeric value. While some OpenSSL commands have their own section for specifying OID's, this section makes them available to all commands and applications.
[oids]
shortName = a very long OID name, 1.2.3.4
newoid1 = 1.2.3.4.1
some_other_oid = 1.2.3.5
If a full configuration with the above fragment is in the file example.cnf, then the following command line:
OPENSSL_CONF=example.cnf openssl asn1parse -genstr OID:1.2.3.4.1
will output:
0:d=0 hl=2 l= 4 prim: OBJECT :newoid1
showing that the OID "newoid1" has been added as "1.2.3.4.1".
π Provider Configuration
The name providers in the initialization section names the section containing cryptographic provider configuration. The name/value assignments in this section each name a provider, and point to the configuration section for that provider. The provider-specific section is used to specify how to load the module, activate it, and set other parameters.
Within a provider section, the following names have meaning:
- identity π β This is used to specify an alternate name, overriding the default name specified in the list of providers. For example:
[providers]
foo = foo_provider
[foo_provider]
identity = my_fips_module
- module π β Specifies the pathname of the module (typically a shared library) to load.
- activate β
β If present, the module is activated. The value assigned to this name is not significant.
All parameters in the section as well as sub-sections are made available to the provider.
Default provider and its activation
If no providers are activated explicitly, the default one is activated implicitly. See OSSL_PROVIDER-default(7) for more details.
If you add a section explicitly activating any other provider(s), you most probably need to explicitly activate the default provider, otherwise it becomes unavailable in openssl. It may make the system remotely unavailable.
βοΈ EVP Configuration
The name alg_section in the initialization section names the section containing algorithmic properties when using the EVP API.
Within the algorithm properties section, the following names have meaning:
- default_properties π β The value may be anything that is acceptable as a property query string for
EVP_set_default_properties().
- fips_mode (deprecated) β οΈ β The value is a boolean that can be
yes or no. If the value is yes, this is exactly equivalent to:
default_properties = fips=yes
If the value is no, nothing happens. Using this name is deprecated, and if used, it must be the only name in the section.
π SSL Configuration
The name ssl_conf in the initialization section names the section containing the list of SSL/TLS configurations. As with the providers, each name in this section identifies a section with the configuration for that name. For example:
[ssl_configuration]
server = server_tls_config
client = client_tls_config
system_default = tls_system_default
[server_tls_config]
... configuration for SSL/TLS servers ...
[client_tls_config]
... configuration for SSL/TLS clients ...
The configuration name system_default has a special meaning. If it exists, it is applied whenever an SSL_CTX object is created. For example, to impose system-wide minimum TLS and DTLS protocol versions:
[tls_system_default]
MinProtocol = TLSv1.2
MinProtocol = DTLSv1.2
The minimum TLS protocol is applied to SSL_CTX objects that are TLS-based, and the minimum DTLS protocol to those are DTLS-based. The same applies also to maximum versions set with MaxProtocol.
Each configuration section consists of name/value pairs that are parsed by SSL_CONF_cmd(3), which will be called by SSL_CTX_config() or SSL_config(), appropriately. Note that any characters before an initial dot in the configuration section are ignored, so that the same command can be used multiple times. This probably is most useful for loading different key types, as shown here:
[server_tls_config]
RSA.Certificate = server-rsa.pem
ECDSA.Certificate = server-ecdsa.pem
π§ Engine Configuration
The name engines in the initialization section names the section containing the list of ENGINE configurations. As with the providers, each name in this section identifies an engine with the configuration for that engine. The engine-specific section is used to specify how to load the engine, activate it, and set other parameters.
Within an engine section, the following names have meaning:
- engine_id π β This is used to specify an alternate name, overriding the default name specified in the list of engines. If present, it must be first. For example:
[engines]
foo = foo_engine
[foo_engine]
engine_id = myfoo
- dynamic_path π β This loads and adds an ENGINE from the given path. It is equivalent to sending the ctrls
SO_PATH with the path argument followed by LIST_ADD with value 2 and LOAD to the dynamic ENGINE. If this is not the required behaviour then alternative ctrls can be sent directly to the dynamic ENGINE using ctrl commands.
- init π β This specifies whether to initialize the ENGINE. If the value is 0 the ENGINE will not be initialized, if the value is 1 an attempt is made to initialize the ENGINE immediately. If the
init command is not present then an attempt will be made to initialize the ENGINE after all commands in its section have been processed.
- default_algorithms π― β This sets the default algorithms an ENGINE will supply using the function
ENGINE_set_default_string().
All other names are taken to be the name of a ctrl command that is sent to the ENGINE, and the value is the argument passed with the command. The special value EMPTY means no value is sent with the command. For example:
[engines]
foo = foo_engine
[foo_engine]
dynamic_path = /some/path/fooengine.so
some_ctrl = some_value
default_algorithms = ALL
other_ctrl = EMPTY
π² Random Configuration
The name random in the initialization section names the section containing the random number generator settings.
Within the random section, the following names have meaning:
- random π² β This is used to specify the random bit generator. For example:
[random]
random = CTR-DRBG
The available random bit generators are:
CTR-DRBG
HASH-DRBG
HMAC-DRBG
- cipher π β This specifies what cipher a
CTR-DRBG random bit generator will use. Other random bit generators ignore this name. The default value is AES-256-CTR.
- digest π β This specifies what digest the
HASH-DRBG or HMAC-DRBG random bit generators will use. Other random bit generators ignore this name.
- properties π·οΈ β This sets the property query used when fetching the random bit generator and any underlying algorithms.
- seed π± β This sets the randomness source that should be used. By default
SEED-SRC will be used outside of the FIPS provider. The FIPS provider uses call backs to access the same randomness sources from outside the validated boundary.
- seed_properties π·οΈ β This sets the property query used when fetching the randomness source.
EXAMPLES
This example shows how to use quoting and escaping.
# This is the default section.
HOME = /temp
configdir = $ENV::HOME/config
[ section_one ]
# Quotes permit leading and trailing whitespace
any = " any variable name "
other = A string that can \
cover several lines \
by including \\ characters
message = Hello World\n
[ section_two ]
greeting = $section_one::message
This example shows how to expand environment variables safely. In this
example, the variable tempfile is intended to refer to a temporary
file, and the environment variable TEMP or TMP, if present, specify the
directory where the file should be put. Since the default section is
checked if a variable does not exist, it is possible to set TMP to
default to /tmp, and TEMP to default to TMP.
# These two lines must be in the default section.
TMP = /tmp
TEMP = $ENV::TMP
# This can be used anywhere
tmpfile = ${ENV::TEMP}/tmp.filename
This example shows how to enforce FIPS mode for the application sample.
sample = fips_config
[fips_config]
alg_section = evp_properties
[evp_properties]
default_properties = "fips=yes"
π ENVIRONMENT
OPENSSL_CONF β π The path to the config file, or the empty string for none. π« Ignored in set-user-ID and set-group-ID programs.
OPENSSL_ENGINES β π The path to the engines directory. π« Ignored in set-user-ID and set-group-ID programs.
OPENSSL_MODULES β π The path to the directory with OpenSSL modules, such as providers. π« Ignored in set-user-ID and set-group-ID programs.
OPENSSL_CONF_INCLUDE β π The optional path to prepend to all .include paths.
π BUGS
- π There is no way to include characters using the octal \nnn form.
- π Strings are all null terminated so nulls cannot form part of the value.
- π The escaping isn't quite right: if you want to use sequences like \n you can't use any quote escaping on the same line. The limit that only one directory can be opened and read at a time can be considered a bug and should be fixed.
HISTORY
An undocumented API, NCONF_WIN32(), used a slightly different set of
parsing rules there were intended to be tailored to the Microsoft
Windows platform. Specifically, the backslash character was not an
escape character and could be used in pathnames, only the double-quote
character was recognized, and comments began with a semi-colon. This
function was deprecated in OpenSSL 3.0; applications with configuration
files using that syntax will have to be modified.
The user wants me to enhance the "SEE ALSO" section of a man page for 'CONFIG'. I need to:
1. Use with an emoji prefix (since the original uses SEE ALSO)
2. Preserve all the original links
3. Keep the structure intact
4. Output only the enhanced HTML fragment
Let me create an emoji-enhanced version of this SEE ALSO section. I'll add appropriate emojis to make it more scannable, while preserving all the original links.
Since this is a cross-reference list, I'll group them by category if possible, or just add a relevant emoji to the heading and maybe add a brief intro.
Looking at the references:
- openssl-x509(1), openssl-req(1), openssl-ca(1), openssl-fipsinstall(1) - OpenSSL commands
- ASN1_generate_nconf(3), EVP_set_default_properties(3), CONF_modules_load(3), CONF_modules_load_file(3) - Library functions
- fips_config(5), x509v3_config(5) - Configuration file formats
I could group them but the instructions say to preserve structure. Let me just add a heading emoji and keep the content as-is, perhaps with a brief intro note.
Actually, looking more carefully, I should keep the original structure intact. The original is just a paragraph with links. I'll convert it to an h2 with emoji and keep the links intact.
Let me provide the enhanced version:
π SEE ALSO
π Related manual pages and documentation references for OpenSSL configuration:
openssl-x509(1), openssl-req(1), openssl-ca(1), openssl-fipsinstall(1),
ASN1_generate_nconf(3), EVP_set_default_properties(3),
CONF_modules_load(3), CONF_modules_load_file(3), fips_config(5), and
x509v3_config(5).
π COPYRIGHT
Copyright 2000-2021 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the Apache License 2.0 (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
in the file LICENSE in the source distribution or at
<https://www.openssl.org/source/license.html>.
3.0.2 2026-06-02 CONFIG(5SSL)
Generated by phpman v4.9.26-1-g511901d · Markdown · JSON · MCP Author: Che Dong Under GNU General Public License
2026-08-04 07:25 @216.73.216.183
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Enhanced by LLM: deepseek-v4-flash / taotoken.net / www.chedong.com - original format