Config(3perl)
๐ Config(3perl) ๐
okay bestie so this is Config, from the Perl Programmers Reference Guide โ it's literally the manual page for peeking at how your perl got built ๐
๐ธ NAME ๐ธ
Config โ access Perl configuration information
Likeโฆ all the info. Every last crumb. Obsessed.
โจ SYNOPSIS โจ
use Config;
if ($Config{usethreads}) {
print "has thread support\n"
}
use Config qw(myconfig config_sh config_vars config_re);
print myconfig();
print config_sh();
print config_re();
config_vars(qw(osname archname));
no cap, that's literally it ๐ซถ
๐ DESCRIPTION ๐
So the Config module is carrying all the information that was available to the Configure program back when Perl was being built. We're talking over 900 values ๐ญ it's giving hoarder but make it useful.
The shell variables from the config.sh file (which Configure writes) get stored in the readonly-variable %Config, indexed by their names. Iconic.
Anything stored in config.sh as 'undef' comes back to you as an undefined value. And you can use perl's exists function to check whether a named variable exists โ vibe check, but for config keys โญ
For a description of the variables, please go look at the Glossary file, as written in the Porting folder, or hit up 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. It's giving time capsule ๐
๐ config_re($regex) ๐
Like config_sh(), but returns โ as a list โ only the config entries who's names match the $regex. Filtered. Curated. Slay.
๐ config_vars(@names) ๐
Prints to STDOUT the values of the named configuration variable. Each one gets printed on a separate line in this exact 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.
๐ฅ EXAMPLE ๐ฅ
Here's a more sophisticated example of using %Config, bestie, pay attention:
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";
}
๐ญ WARNING ๐ญ
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. so likeโฆ it could be lying to you. probably not. but maybe ๐
The Config module is installed into the architecture and version specific library directory ($Config{installarchlib}) and it checks the perl version number when loaded. It's very "let me verify your ID at the door" of it ๐
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) ๐ซ
๐ GLOSSARY ๐
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.
heads up bb: this glossary is long, so we're doing it in little bite-sized pieces. buckle up โจ
๐ ฟ๏ธ P ๐ ฟ๏ธ
"PERL_API_REVISION"
From patchlevel.h:
This number describes the earliest compatible "PERL_REVISION" of Perl ("compatibility" here being defined as sufficient binary/"API" compatibility to run "XS" code built with the older version). Normally this does not change across maintenance releases. Please read the comment in patchlevel.h.
"PERL_API_SUBVERSION"
From patchlevel.h:
This number describes the earliest compatible "PERL_SUBVERSION" of Perl ("compatibility" here being defined as sufficient binary/"API" compatibility to run "XS" code built with the older version). Normally this does not change across maintenance releases. Please read the comment in patchlevel.h.
"PERL_API_VERSION"
From patchlevel.h:
This number describes the earliest compatible "PERL_VERSION" of Perl ("compatibility" here being defined as sufficient binary/"API" compatibility to run "XS" code built with the older version). Normally this does not change across maintenance releases. Please read the comment in patchlevel.h.
"PERL_CONFIG_SH"
From Oldsyms.U:
This is set to "true" in config.sh so that a shell script sourcing config.sh can tell if it has been sourced already.
"PERL_PATCHLEVEL"
From Oldsyms.U:
This symbol reflects the patchlevel, if available. Will usually come from the .patch file, which is available when the perl source tree was fetched with rsync.
"PERL_REVISION"
From Oldsyms.U:
In a Perl version number such as 5.6.2, this is the 5. This value is manually set in patchlevel.h.
"PERL_SUBVERSION"
From Oldsyms.U:
In a Perl version number such as 5.6.2, this is the 2. Values greater than 50 represent potentially unstable development subversions. This value is manually set in patchlevel.h.
"PERL_VERSION"
From Oldsyms.U:
In a Perl version number such as 5.6.2, this is the 6. This value is manually set in patchlevel.h.
๐ซง _ ๐ซง
"_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.
๐ ฐ๏ธ a ๐ ฐ๏ธ
"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:
okay she's mid-sentence on ar because this glossary does not stop here ๐ more entries coming โ stay tuned bestie, we are so not done ๐
arโ fromLoc.U. Configure uses this internally to sniff out the full pathname (if there's one at all) of thearprogram. But once Configure has run? it gets reset back to a plainarand is genuinely not useful. ๐archlibโ fromarchlib.U. This is the name of the dir where the user wants architecture-dependent public library files for$packageto live. Usually it's some local spot like/usr/local/lib. Heads up bestie: any program using this variable has to be ready for filename expansion. ๐ซถarchlibexpโ fromarchlib.U. Literally the same thing asarchlib, except it's already filename-expanded at configuration time, so it's convenient to just use. โจarchnameโ fromarchname.U. A little short name that characterizes the current architecture. It's mainly there to build the defaultarchlib.archname64โ fromuse64bits.U. This one holds the 64-bitness part of$archname.archobjsโ fromUnix.U. Any extra objects that gotta get linked in with the program on this architecture. On unix it's usually empty. It's typically used to pull in emulations of unix calls or other facilities โ for perl on OS/2, for example, this would includeos2/os2.obj. ๐asctime_r_protoโ fromd_asctime_r.U. Encodes the prototype ofasctime_r. It's zero ifd_asctime_ris undef, and it's one of theREENTRANT_PROTO_T_ABCmacros inreentr.hifd_asctime_ris defined.awkโ fromLoc.U. Configure internally figures out the full pathname (if any) of theawkprogram with this. After Configure runs, the value gets reset to justawkand, yeah, it's not useful. sorry not sorry ๐
๐ธ b ๐ธ
baserevโ frombaserev.U. The base revision level of this package, straight out of the.packagefile.bashโ fromLoc.U. Defined but never used by Configure. The value is the empty string and it is not useful. that's it, that's the entry ๐binโ frombin.U. The directory where the user wants publicly executable images for the package to go. Most often a local dir like/usr/local/bin. Programs using this variable must be prepared to deal with~namesubstitution, iykyk.bin_ELFโ fromdlsrc.U. Saves configure's result if the generated binaries are inELFformat. It only gets set to defined when the test has actually been performed and the result was positive. โญbinexpโ frombin.U. Same asbin, but filename expanded at configuration time, so your makefiles can just use it. ๐bisonโ fromLoc.U. Configure uses it internally to find the full pathname (if any) of thebisonprogram. After Configure runs it's reset to a plainbisonand is not useful.byaccโ fromLoc.U. Same deal โ Configure internally finds the full pathname (if any) of thebyaccprogram, then after Configure runs it's reset to a plainbyaccand is not useful. ๐ญbyteorderโ frombyteorder.U. Holds the byte order in aUV. In the following, bigger digits mean more significance. It's either4321on a big-endian machine, or1234on a little-endian, or87654321on a Cray ... or3412with weird order! ๐ no cap
๐ฆ c ๐ฆ
cโ fromn.U. Contains the\cstring if that's the thing that makes theechocommand suppress a newline. Otherwise it's null. Correct usage is$echo $n "prompt for a question: $c". ๐castflagsโ fromd_castneg.U. A flag that says exactly which casting difficulties the compiler has when casting odd floating values to unsigned long:0= ok1= couldn't cast< 02= couldn't cast>= 0x800000004= couldn't cast in argument expression list
catโ fromLoc.U. Configure uses it internally to find the full pathname (if any) of thecatprogram. After Configure runs, reset to a plaincat, not useful.ccโ fromcc.U. The name of a command that runs a C compiler which can resolve multiple global references that happen to share a name. Usual values:ccandgcc. FerventANSIcompilers might be calledc89.AIXhasxlc. ๐cccdlflagsโ fromdlsrc.U. Any special flags that might need passing withcc -cto compile modules that'll get used to create a shared library for dynamic loading. For hpux this should be+z. It's up to the makefile to actually use it. ๐ซถccdlflagsโ fromdlsrc.U. Any special flags that might need passing toccwhen linking with a shared library for dynamic loading. Again, makefile's job to use it. For sunos 4.1 it should be empty.ccflagsโ fromccflags.U. Any additional C compiler flags the user wants. It's up to theMakefileto use this. โจccflags_uselargefilesโ fromuselfs.U. The compiler flags that large file builds need, added toccflagsby hints files.ccnameโ fromCheckcc.U. This can be set either by hints files or by Configure. If you're using gcc, this isgcc; if not, it's usually equal tocc, unimpressive, no? Some platforms however make good use of this by storing the flavor of the C compiler being used right here. For example, if you're using the Sun WorkShop suite,ccnamewill beworkshop. ๐ccsymbolsโ fromCppsym.U. The symbols defined by the C compiler alone. Symbols defined by cpp, or by cc when it calls cpp, are not in this list โ seecppsymbolsandcppccsymbols. The list is a space-separated list ofsymbol=valuetokens.ccversionโ fromCheckcc.U. Set either by hints files or by Configure. If you're using a (non-gcc) vendor cc, this variable may contain a version for the compiler.cf_byโ fromcf_who.U. Login name of the person who ran theConfigurescript and answered the questions. Used to tag bothconfig.shandconfig_h.SH. ๐cf_emailโ fromcf_email.U. The electronic mail address of whoever ran Configure. Units that need the user's e-mail (likeMailList.U) can use it.cf_timeโ fromcf_who.U. Holds the output of thedatecommand when the configuration file was produced. Tags bothconfig.shandconfig_h.SH.charbitsโ fromcharsize.U. Holds the value of theCHARBITSsymbol, which tells the C program how many bits there are in a character.charsizeโ fromcharsize.U. Holds the value of theCHARSIZEsymbol, which tells the C program how many bytes there are in a character. ๐chgrpโ fromLoc.U. Defined but not used by Configure. Empty string, not useful.chmodโ fromLoc.U. Configure uses it internally to find the full pathname (if any) of thechmodprogram. After Configure runs it's reset to a plainchmodand is not useful.chownโ fromLoc.U. Defined but not used by Configure. Empty string, not useful. we stay unbothered ๐clocktypeโ fromd_times.U. Holds the type returned bytimes(). It can belong, orclock_tonBSDsites โ in which case<sys/types.h>should be included.commโ fromLoc.U. Configure uses it internally to find the full pathname (if any) of thecommprogram. After Configure runs it's reset to a plaincommand is not useful.compiler_warningโ fromcompiler_warning.U. Holds the command to check whether the file specified as a parameter contains a compiler warning. ๐ฅcompressโ fromLoc.U. Defined but not used by Configure. Empty string, not useful. (notice how many of these are just vibes and sadness ๐)config_arg0โ fromOptions.U. The string used to invoke theConfigurecommand, as reported by the shell in the$0variable.config_argcโ fromOptions.U. The number of command-line arguments passed to Configure, as reported by the shell in the$#variable. The individual arguments live in variablesconfig_arg1,config_arg2, etc. โจconfig_argsโ fromOptions.U. A single string giving the command-line arguments passed to Configure. Important: spaces within arguments, quotes, and escaped characters are not correctly preserved. To reconstruct the command line you have to assemble the individual pieces yourself, given inconfig_arg[0-9]*. ๐containsโ fromcontains.U. Holds the command to do a grep with a proper return status. On most sane systems it's simplygrep. On insane systems it's a grep followed by a cat followed by a test. This variable is primarily for other Configure units to use. ๐ญcpโ fromLoc.U. Configure uses it internally to find the full pathname (if any) of thecpprogram. After Configure runs it's reset to a plaincpand is not useful.cpioโ fromLoc.U. Defined but not used by Configure. Empty string, not useful.cppโ fromLoc.U. Configure uses it internally to find the full pathname (if any) of thecppprogram. After Configure runs it's reset to a plaincppand is not useful.cpp_stuffโ fromcpp_stuff.U. Contains an identification of the concatenation mechanism used by the C preprocessor.cppccsymbolsโ fromCppsym.U. The symbols defined by the C compiler when it calls cpp. Symbols defined by cc alone, or by cpp alone, are not in this list โ seeccsymbolsandcppsymbols. It's a space-separated list ofsymbol=valuetokens. ๐ฆcppflagsโ fromccflags.U.*"cpplast"โ Fromcppstdin.U: bestie this one has the same functionality ascppminus, except it applies tocpprunand notcppstdin. ๐"cppminus"โ Fromcppstdin.U: this variable contains the second part of the string that invokes the C preprocessor on standard input and produces output to standard output. Its value is-ifcppstdinneeds a minus to specify standard input, otherwise the value is"". โจ"cpprun"โ Fromcppstdin.U: this holds the command that invokes a C preprocessor on standard input and puts the output to stdout. It's 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 appendcpplastafter the preprocessor options, okay? ๐ธ"cppstdin"โ Fromcppstdin.U: the command that invokes the C preprocessor on standard input and puts the output to stdout. It's primarily used by other Configure units that ask about preprocessor symbols. ๐ฆ"cppsymbols"โ FromCppsym.U: contains the symbols defined by the C preprocessor alone. The symbols defined byccor byccwhen it callscppare not in this list โ seeccsymbolsandcppccsymbolsinstead. The list is a space-separated list ofsymbol=valuetokens. ๐"crypt_r_proto"โ Fromd_crypt_r.U: encodes the prototype ofcrypt_r. It's zero ifd_crypt_ris undef, and one of the"REENTRANT_PROTO_T_ABC"macros ofreentr.hifd_crypt_ris defined. ๐"cryptlib"โ Fromd_crypt.U: holds-lcryptor the path to alibcrypt.aarchive if thecrypt()function is NOT defined in the standard C library. It is up to theMakefileto use this. ๐"csh"โ FromLoc.U: used internally by Configure to determine the full pathname (if any) of thecshprogram. After Configure runs, the value is reset to a plain"csh"and is not useful. ๐"ctermid_r_proto"โ Fromd_ctermid_r.U: encodes the prototype ofctermid_r. Zero ifd_ctermid_ris undef, and one of the"REENTRANT_PROTO_T_ABC"macros ofreentr.hifd_ctermid_ris defined. โจ"ctime_r_proto"โ Fromd_ctime_r.U: encodes the prototype ofctime_r. Zero ifd_ctime_ris undef, and one of the"REENTRANT_PROTO_T_ABC"macros ofreentr.hifd_ctime_ris defined. ๐
๐ d ๐
"d_Gconvert"โ Fromd_gconvert.U: this one holds whatGconvertis defined as, so that floating point numbers can be converted into strings. By default, Configure sets the"this"macro to use the first ofgconvert,gcvt, orsprintfthat 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 makesprintfformat long doubles โ seesPRIgldbl),gconvert,gcvt, andsprintf(casting to double). Thegconvert_preferenceandgconvert_ld_preferencevariables 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_Gconvert may be set to override Configure with a platform-specific function. If this function expects a double, a different value may need to be set by the uselongdouble.cbu call-back unit so that long doubles can be formatted without loss of precision. ๐
"d_PRIEUldbl"โ Fromlongdblfio.U: this conditionally defines thePERL_PRIfldblsymbol, which indicates that stdio has a symbol to print long doubles. The"U"in the name is there to separate this fromd_PRIeldblso that even case-blind systems can see the difference. ๐"d_PRIFUldbl"โ Fromlongdblfio.U: conditionally defines thePERL_PRIfldblsymbol, which indicates that stdio has a symbol to print long doubles. Again, the"U"in the name separates this fromd_PRIfldblso even case-blind systems can see the difference. ๐"d_PRIGUldbl"โ Fromlongdblfio.U: conditionally defines thePERL_PRIfldblsymbol, which indicates that stdio has a symbol to print long doubles. The"U"in the name separates this fromd_PRIgldblso that even case-blind systems can see the difference. โจ"d_PRIXU64"โ Fromquadfio.U: conditionally defines thePERL_PRIXU64symbol, which indicates that stdio has a symbol to print 64-bit hExADECimAl numbers. The"U"in the name separates this fromd_PRIx64so that even case-blind systems can see the difference. ๐ฅ"d_PRId64"โ Fromquadfio.U: conditionally defines thePERL_PRId64symbol, which indicates that stdio has a symbol to print 64-bit decimal numbers. ๐"d_PRIeldbl"โ Fromlongdblfio.U: conditionally defines thePERL_PRIfldblsymbol, which indicates that stdio has a symbol to print long doubles. ๐ธ"d_PRIfldbl"โ Fromlongdblfio.U: conditionally defines thePERL_PRIfldblsymbol, which indicates that stdio has a symbol to print long doubles. ๐ธ"d_PRIgldbl"โ Fromlongdblfio.U: conditionally defines thePERL_PRIfldblsymbol, which indicates that stdio has a symbol to print long doubles. ๐ธ"d_PRIi64"โ Fromquadfio.U: conditionally defines thePERL_PRIi64symbol, which indicates that stdio has a symbol to print 64-bit decimal numbers. โญ"d_PRIo64"โ Fromquadfio.U: conditionally defines thePERL_PRIo64symbol, which indicates that stdio has a symbol to print 64-bit octal numbers. โญ"d_PRIu64"โ Fromquadfio.U: conditionally defines thePERL_PRIu64symbol, which indicates that stdio has a symbol to print 64-bit unsigned decimal numbers. โญ"d_PRIx64"โ Fromquadfio.U: conditionally defines thePERL_PRIx64symbol, which indicates that stdio has a symbol to print 64-bit hexadecimal numbers. โญ"d_SCNfldbl"โ Fromlongdblfio.U: conditionally defines thePERL_PRIfldblsymbol, which indicates that stdio has a symbol to scan long doubles. ๐"d__fwalk"โ Fromd__fwalk.U: conditionally defines"HAS__FWALK"if_fwalk()is available to apply a function to all the file handles. ๐ฆ"d_accept4"โ Fromd_accept4.U: conditionally definesHAS_ACCEPT4ifaccept4()is available to accept socket connections. ๐ฅ"d_access"โ Fromd_access.U: conditionally defines"HAS_ACCESS"if theaccess()system call is available to check for access permissions using real IDs. ๐"d_accessx"โ Fromd_accessx.U: conditionally defines the"HAS_ACCESSX"symbol, which tells the C program that theaccessx()routine is available. โจ"d_acosh"โ Fromd_acosh.U: conditionally defines the"HAS_ACOSH"symbol, which tells the C program that theacosh()routine is available. ๐"d_aintl"โ Fromd_aintl.U: conditionally defines the"HAS_AINTL"symbol, which tells the C program that theaintl()routine is available. Ifcopysignlis also present we can emulatemodfl. ๐"d_alarm"โ Fromd_alarm.U: conditionally defines the"HAS_ALARM"symbol, which tells the C program that thealarm()routine is available. โฐ"d_archlib"โ Fromarchlib.U: conditionally defines"ARCHLIB"to hold the pathname of architecture-dependent library files for$package. If$archlibis the same as$privlib, then this is set to undef. ๐"d_asctime64"โ Fromd_timefuncs64.U: conditionally defines theHAS_ASCTIME64symbol, which tells the C program that theasctime64 ()routine is available. ๐"d_asctime_r"โ Fromd_asctime_r.U: conditionally defines the"HAS_ASCTIME_R"symbol, which tells the C program that theasctime_r()routine is available. ๐"d_asinh"โ Fromd_asinh.U: conditionally defines the"HAS_ASINH"symbol, which tells the C program that theasinh()routine is available. โจ"d_atanh"โ Fromd_atanh.U: conditionally defines the"HAS_ATANH"symbol, which tells the C program that theatanh()routine is available. โจ"d_atolf"โ Fromatolf.U: conditionally defines the"HAS_ATOLF"symbol, which tells the C program that theatolf()routine is available. ๐"d_atoll"โ Fromatoll.U: conditionally defines the"HAS_ATOLL"symbol, which tells the C program that theatoll()routine is available. ๐"d_attribute_always_inline"โ Fromd_attribut.U: conditionally defines"HASATTRIBUTE_ALWAYS_INLINE", which indicates that the C compiler can know that certain functions should always be inlined. ๐ฅ"d_attribute_deprecated"โ Fromd_attribut.U: conditionally defines"HASATTRIBUTE_DEPRECATED", which indicates that"GCC"can handle the attribute for marking deprecated APIs. ๐"d_attribute_format"โ Fromd_attribut.U: conditionally defines"HASATTRIBUTE_FORMAT", which indicates the C compiler can check forprintf-like formats. ๐"d_attribute_malloc"โ Fromd_attribut.U: conditionally defines"HASATTRIBUTE_MALLOC", which indicates the C compiler can understand functions as havingmalloc-like semantics. ๐"d_attribute_nonnull"โ Fromd_attribut.U: 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"โ Fromd_attribut.U: conditionally defines"HASATTRIBUTE_NORETURN", which indicates that the C compiler can know that certain functions are guaranteed never to return. ๐"d_attribute_pure"โ Fromd_attribut.U:
d_attribute_pure โจ
From d_attribut.U:
okay so this one conditionally defines HASATTRIBUTE_PURE, and what that's actually telling you is that the C compiler can know certain functions are "pure" โ meaning they have no side effects at all, and they only rely on function input and/or global data for their results. clean, no drama, no hidden chaos. we stan. ๐
d_attribute_unused ๐
From d_attribut.U:
this variable conditionally defines HASATTRIBUTE_UNUSED, which lets the C compiler know that certain variables and arguments might not always get used โ so it should not throw warnings when they don't get used. bestie is being polite. no nagging. ๐
d_attribute_visibility ๐ธ
From d_attribut.U:
this variable conditionally defines the HASATTRIBUTE_VISIBILITY symbol, and it indicates different GCC attribute visibility. iykyk.
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 return values that must not be ignored โ think malloc() or open(). so like, if you drop that return value on the floor, the compiler is absolutely going to yell at you, and honestly? it should. ๐
d_backtrace ๐ช
From d_backtrace.U:
this variable conditionally defines the HAS_BACKTRACE symbol, which tells the C program that the backtrace() routine is available to get a stack trace. we love a good paper trail. ๐
d_bsd ๐ฆ
From Guess.U:
this symbol conditionally defines the symbol BSD when you're running on a BSD system. periodt.
d_bsdgetpgrp ๐
From d_getpgrp.U:
this variable conditionally defines USE_BSD_GETPGRP if getpgrp needs one arguments, whereas USG one needs none. (yes, "one arguments", the original said it like that and i am not touching it.)
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 โ that's the other option if you want the POSIX vibe instead.
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. safety first, always. ๐ซถ
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). now listen, this built-in function is analogous to the x?y:z operator in C, except the expression returned has its type unaltered by promotion rules. also โ and this is the iconic part โ the built-in function does not evaluate the expression that was not chosen. main character energy: only the chosen one shows up.
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. it's giving fortune teller. โจ
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. slay.
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. lowkey a wild thing to ask a compiler but okay bestie.
d_cbrt ๐ง
From d_cbrt.U:
this variable conditionally defines the HAS_CBRT symbol, which indicates to the C program that the cbrt() function is available. that's cube root, for the girlies who forgot. she's giving math. ๐
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. own your files, queen. ๐
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. heads up though โ 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. (space before the parens, copy it exact, don't @ me.)
d_closedir ๐
From d_closedir.U:
this variable conditionally defines HAS_CLOSEDIR if closedir() is available. close the door behind you bestie. ๐ช
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. and โ fun fact โ 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. (again: "used to compiled". we're preserving the lore. do not come for me.)
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. secretive. mysterious. we love her. ๐คซ
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. it's real, she's there, she's serving.
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. sixty-four, not sixty-three. precision. ๐
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. so like, either the system hands you the prototype or you're on your own, no in between. ๐ญ
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. a little hidden treasure inside the struct. ๐
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(). that little _ matters, do not forget her. ๐
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. doing the work the host won't. iconic. ๐
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. she goes on forever, fr fr.
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 0๏ธโฃ
From longdblfio.U:
this variable conditionally defines the symbol DOUBLE_HAS_NEGATIVE_ZERO which indicates that the double type has a negative zero. yes. negative. zero. she exists and she's valid. ๐ญ
d_double_has_subnormals ๐ฌ
From longdblfio.U:
d_double_has_subnormalsโ conditionally defines the symbolDOUBLE_HAS_SUBNORMALS, which is the flag that says yourdoubletype has subnormals (you might know them as denormals). tiny numbers deserve rights ๐d_double_style_crayโ fromlongdblfio.U. Conditionally defines the symbolDOUBLE_STYLE_CRAY, which tells everyone thatdoubleis the 64-bit "CRAY" mainframe format. mainframe era really said "my format, my rules" ๐d_double_style_ibmโ also fromlongdblfio.U. Conditionally definesDOUBLE_STYLE_IBM, and it meansdoubleis the 64-bit "IBM" mainframe format. vintage behavior fr ๐d_double_style_ieeeโ fromlongdblfio.U. Conditionally definesDOUBLE_STYLE_IEEE, which says yourdoubleis the 64-bit "IEEE" 754. the standard girlie of the group โจd_double_style_vaxโ fromlongdblfio.U. Conditionally definesDOUBLE_STYLE_VAX, which means thedoubleis in the 64-bit "VAX" format D or G. deep lore iykyk ๐ฆd_drand48_rโ fromd_drand48_r.U. Conditionally defines theHAS_DRAND48_Rsymbol, which is how your C program finds out that thedrand48_r()routine is available. reentrant random, she's so real ๐ฒd_drand48protoโ fromd_drand48proto.U. Conditionally defines theHAS_DRAND48_PROTOsymbol, which tells your C program that the system actually ships a prototype for thedrand48()function. If it doesn't? Then it's on the program to supply one, bestie, no one else is coming ๐d_dup2โ fromd_dup2.U. Conditionally definesHAS_DUP2ifdup2()is around to duplicate file descriptors. dupe slay ๐d_dup3โ fromd_dup3.U. Conditionally definesHAS_DUP3ifdup3()is around to duplicate file descriptors. the sequel that ate ๐ฅd_duplocaleโ fromd_newlocale.U. Conditionally defines theHAS_DUPLOCALEsymbol, which tells your C program that theduplocale()routine is available to duplicate a locale object. two locales, no drama ๐d_eaccessโ fromd_eaccess.U. Conditionally defines theHAS_EACCESSsymbol, which says theeaccess()routine is available. checking permissions with the real uid, we love a specific girl ๐d_endgrentโ fromd_endgrent.U. Conditionally defines theHAS_ENDGRENTsymbol, which tells your C program thatendgrent()is available for sequential access of the group database. closing the group file like a lady ๐d_endgrent_rโ fromd_endgrent_r.U. Conditionally defines theHAS_ENDGRENT_Rsymbol, which says theendgrent_r()routine is available. the reentrant remix โจd_endhentโ fromd_endhent.U. Conditionally definesHAS_ENDHOSTENTifendhostent()is available to close whatever was being used for host queries. cleanup era ๐งนd_endhostent_rโ fromd_endhostent_r.U. Conditionally defines theHAS_ENDHOSTENT_Rsymbol, which tells your C program that theendhostent_r()routine is available. ๐ธd_endnentโ fromd_endnent.U. Conditionally definesHAS_ENDNETENTifendnetent()is available to close whatever was being used for network queries. bye to the network file ๐d_endnetent_rโ fromd_endnetent_r.U. Conditionally defines theHAS_ENDNETENT_Rsymbol, which tells your C program that theendnetent_r()routine is available. ๐ซd_endpentโ fromd_endpent.U. Conditionally definesHAS_ENDPROTOENTifendprotoent()is available to close whatever was being used for protocol queries. shutting that door gently ๐ชd_endprotoent_rโ fromd_endprotoent_r.U. Conditionally defines theHAS_ENDPROTOENT_Rsymbol, which tells your C program that theendprotoent_r()routine is available. ๐ซถd_endpwentโ fromd_endpwent.U. Conditionally defines theHAS_ENDPWENTsymbol, which tells your C program thatendpwent()is available for sequential access of the passwd database. closing passwd, iconic behavior ๐d_endpwent_rโ fromd_endpwent_r.U. Conditionally defines theHAS_ENDPWENT_Rsymbol, which says theendpwent_r()routine is available. ๐d_endsentโ fromd_endsent.U. Conditionally definesHAS_ENDSERVENTifendservent()is available to close whatever was being used for service queries. services, dismissed ๐d_endservent_rโ fromd_endservent_r.U. Conditionally defines theHAS_ENDSERVENT_Rsymbol, which tells your C program that theendservent_r()routine is available. ๐d_eofnblkโ fromnblock_io.U. Conditionally definesEOF_NONBLOCKifEOFcan be seen when you're reading from a non-blocking I/O source. yes, you can hit end-of-file on a non-blocking read, it's not a myth ๐ญd_erfโ fromd_erf.U. Conditionally defines theHAS_ERFsymbol, which says theerf()routine is available. error function supremacy ๐d_erfcโ fromd_erfc.U. Conditionally defines theHAS_ERFCsymbol, which says theerfc()routine is available. complementary error function, she's the sequel ๐d_euniceโ fromGuess.U. Conditionally defines the symbolsEUNICEandVAX, which is how your C program gets alerted that it has to deal with the idiosyncrasies ofVMS. deep cut, truly ancient lore ๐d_exp2โ fromd_exp2.U. Conditionally defines theHAS_EXP2symbol, which says theexp2()routine is available. 2 to the x, math girlie behavior โd_expm1โ fromd_expm1.U. Conditionally defines theHAS_EXPM1symbol, which says theexpm1()routine is available. it'sexp(x)-1but accurate, we stan ๐งฎd_faststdioโ fromd_faststdio.U. Conditionally defines theHAS_FAST_STDIOsymbol, which says "fast stdio" is available so you can manipulate the stdio buffers directly. speedy and a little dangerous, main character energy ๐ฅd_fchdirโ fromd_fchdir.U. Conditionally defines theHAS_FCHDIRsymbol, which says thefchdir()routine is available. cd but with a file descriptor, obsessed ๐ถโโ๏ธd_fchmodโ fromd_fchmod.U. Conditionally defines theHAS_FCHMODsymbol, which says thefchmod()routine is available to change the mode of files that are already opened. ๐d_fchmodatโ fromd_fsat.U. Conditionally defines theHAS_FCHMODATsymbol, which says thePOSIXfchmodat()function is available. ๐d_fchownโ fromd_fchown.U. Conditionally defines theHAS_FCHOWNsymbol, which says thefchown()routine is available to change ownership of files that are already opened. passing the aux, but for files ๐vd_fcntlโ fromd_fcntl.U. Conditionally defines theHAS_FCNTLsymbol, and it indicates whether thefcntl()function exists at all.d_fcntl_can_lockโ fromd_fcntl_can_lock.U. Conditionally defines theFCNTL_CAN_LOCKsymbol, and it indicates whether file locking withfcntl()actually works. ๐d_fd_macrosโ fromd_fd_set.U. This variable holds the eventual value of theHAS_FD_MACROSsymbol, which indicates whether your C compiler knows about the macros that manipulate anfd_set. ๐ ๏ธd_fd_setโ fromd_fd_set.U. This variable holds the eventual value of theHAS_FD_SETsymbol, which indicates whether your C compiler knows about thefd_settypedef. โจd_fdcloseโ fromd_fdclose.U. Conditionally defines theHAS_FDCLOSEsymbol, which says thefdclose()routine is available. close it, bestie ๐ชd_fdimโ fromd_fdim.U. Conditionally defines theHAS_FDIMsymbol, which says thefdim()routine is available. positive difference, no negativity allowed ๐d_fdopendirโ fromd_fdopendir.U. Conditionally definesHAS_FDOPENDIRiffdopendir()is available to open a directory using an opened file descriptor that already refers to that directory. reusing the fd, sustainable queen โป๏ธd_fds_bitsโ fromd_fd_set.U. This variable holds the eventual value of theHAS_FDS_BITSsymbol, which indicates whether yourfd_settypedef contains thefds_bitsmember. And here's the tea: if you do have anfd_settypedef but the dweebs who installed it did a half-fast job and neglected to provide the macros to manipulate anfd_set, thenHAS_FDS_BITSis gonna let us know how to fix the gaffe. ๐ exposing the half-fast job, no capd_fegetroundโ fromd_fegetround.U. Conditionally definesHAS_FEGETROUNDiffegetround()is available to get the floating point rounding mode. which way are we rounding bestie ๐คd_ffsโ fromd_ffs.U. Conditionally defines theHAS_FFSsymbol, which says theffs()routine is available to find the first bit that's set in its integer argument. first set bit, found her ๐d_ffslโ fromd_ffs.U. Conditionally defines theHAS_FFSLsymbol, which says theffsl()routine is available to find the first bit that's set in its long integer argument. thelstands for long, and for luxury ๐d_fgetposโ fromd_fgetpos.U. Conditionally definesHAS_FGETPOSiffgetpos()is available to get the file position indicator. where are we in the file, asking for a friend ๐d_finiteโ fromd_finite.U. Conditionally defines theHAS_FINITEsymbol, which says thefinite()routine is available. is it finite? is it giving infinity? ๐d_finitelโ fromd_finitel.U. Conditionally defines theHAS_FINITELsymbol, which says thefinitel()routine is available. long double edition ๐ฆd_flexfnamโ fromd_flexfnam.U. Conditionally defines theFLEXFILENAMESsymbol, which says the system supports filenames longer than 14 characters. fourteen?? in this economy?? we're so blessed ๐ญโจd_flockโ fromd_flock.U. Conditionally definesHAS_FLOCKifflock()is available to do file locking. ๐d_flockprotoโ fromd_flockproto.U. Conditionally defines theHAS_FLOCK_PROTOsymbol, which tells your C program that the system provides a prototype for theflock()function. And if it doesn't? It's up to the program to supply one, as always ๐d_fmaโ fromd_fma.U. Conditionally defines theHAS_FMAsymbol, which says thefma()routine is available. fused multiply-add ate that ๐ฅd_fmaxโ fromd_fmax.U. Conditionally defines theHAS_FMAXsymbol, which says thefmax()routine is available. biggest float, no contest ๐d_fminโ fromd_fmin.U. Conditionally defines theHAS_FMINsymbol, which says thefmin()routine is available. smallest float, she's humble ๐ธd_fminโ fromd_fmin.Uโ conditionally defines theHAS_FMINsymbol, which tells your C program that thefmin()routine is available. ๐d_forkโ fromd_fork.Uโ conditionally defines theHAS_FORKsymbol, which tells your C program that thefork()routine is available.d_fp_classโ fromd_fp_class.Uโ conditionally defines theHAS_FP_CLASSsymbol, which tells your C program that thefp_class()routine is available.d_fp_classifyโ fromd_fpclassify.Uโ conditionally defines theHAS_FP_CLASSIFYsymbol, which tells your C program that thefp_classify()routine is available. (bestie, notice this one lives ind_fpclassify.U, notd_fp_classify.Uโ the file names do be like that ๐)d_fp_classlโ fromd_fp_classl.Uโ conditionally defines theHAS_FP_CLASSLsymbol, which tells your C program that thefp_classl()routine is available.d_fpathconfโ fromd_pathconf.Uโ conditionally defines theHAS_FPATHCONFsymbol, which tells your C program that thepathconf()routine is available to determine file-system related limits and options associated with a given open file descriptor. โจd_fpclassโ fromd_fpclass.Uโ conditionally defines theHAS_FPCLASSsymbol, which tells your C program that thefpclass()routine is available.d_fpclassifyโ fromd_fpclassify.Uโ conditionally defines theHAS_FPCLASSIFYsymbol, which tells your C program that thefpclassify()routine is available.d_fpclasslโ fromd_fpclassl.Uโ conditionally defines theHAS_FPCLASSLsymbol, which tells your C program that thefpclassl()routine is available.d_fpgetroundโ fromd_fpgetround.Uโ conditionally definesHAS_FPGETROUNDiffpgetround()is available to get the floating point rounding mode.d_fpos64_tโ fromd_fpos64_t.Uโ this symbol gets defined if the C compiler supportsfpos64_t. no symbol name, no drama, just vibes ๐ฆd_freelocaleโ fromd_newlocale.Uโ conditionally defines theHAS_FREELOCALEsymbol, which tells your C program that thefreelocale()routine is available to deallocates the resources associated with a locale object. (yes, that's the original wording on "deallocates", we keep it ๐ )d_frexplโ fromd_frexpl.Uโ conditionally defines theHAS_FREXPLsymbol, which tells your C program that thefrexpl()routine is available.d_fs_data_sโ fromd_fs_data_s.Uโ conditionally defines theHAS_STRUCT_FS_DATAsymbol, which indicates that thestruct fs_datais supported.d_fseekoโ fromd_fseeko.Uโ conditionally defines theHAS_FSEEKOsymbol, which tells your C program that thefseeko()routine is available.d_fsetposโ fromd_fsetpos.Uโ conditionally definesHAS_FSETPOSiffsetpos()is available to set the file position indicator.d_fstatfsโ fromd_fstatfs.Uโ conditionally defines theHAS_FSTATFSsymbol, which tells your C program that thefstatfs()routine is available.d_fstatvfsโ fromd_statvfs.Uโ conditionally defines theHAS_FSTATVFSsymbol, which tells your C program that thefstatvfs()routine is available. (again โ the.Ufile isd_statvfs.U, the variable isd_fstatvfs. iykyk ๐ธ)d_fsyncโ fromd_fsync.Uโ conditionally defines theHAS_FSYNCsymbol, which tells your C program that thefsync()routine is available.d_ftelloโ fromd_ftello.Uโ conditionally defines theHAS_FTELLOsymbol, which tells your C program that theftello()routine is available.d_ftimeโ fromd_ftime.Uโ conditionally defines theHAS_FTIMEsymbol, which indicates that theftime()routine exists. and listen, theftime()routine is basically a sub-second accuracy clock. lowkey iconic โฑ๏ธd_futimesโ fromd_futimes.Uโ conditionally defines theHAS_FUTIMESsymbol, which tells your C program that thefutimes()routine is available.d_gai_strerrorโ fromd_gai_strerror.Uโ conditionally defines theHAS_GAI_STRERRORsymbol if thegai_strerror()routine is available and can be used to translate error codes returned bygetaddrinfo()into human readable strings. translating cryptic error codes into actual sentences? she ate ๐d_gdbm_ndbm_h_uses_prototypesโ fromi_ndbm.Uโ conditionally defines theNDBM_H_USES_PROTOTYPESsymbol, which indicates that thegdbm-ndbm.hinclude 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 differentd_*ndbm_h_uses_prototypesvariables to get the same information for alternativendbm.hinclude files. ๐จd_gdbmndbm_h_uses_prototypesโ fromi_ndbm.Uโ conditionally defines theNDBM_H_USES_PROTOTYPESsymbol, which indicates that thegdbm/ndbm.hinclude 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 differentd_*ndbm_h_uses_prototypesvariables to get the same information for alternativendbm.hinclude files. ๐จ
not me telling you twice but with a slash in the filename the second time โ same warning, different header, both matter ๐
d_getaddrinfoโ fromd_getaddrinfo.Uโ conditionally defines theHAS_GETADDRINFOsymbol, which tells your C program that thegetaddrinfo()function is available.d_getcwdโ fromd_getcwd.Uโ conditionally defines theHAS_GETCWDsymbol, which tells your C program that thegetcwd()routine is available to get the current working directory. where am i?? but make it a syscall ๐งญd_getentropyโ fromd_getentropy.Uโ conditionally definesHAS_GETENTROPYifgetentropy()is available to fill a buffer with random bytes.d_getenv_preserves_other_threadโ fromd_getenv_thread.Uโ conditionally defines theGETENV_PRESERVES_OTHER_THREADsymbol, which tells your C program that thegetenv()system call does not zap the static buffer in a different thread. multi-thread besties, this one's for you ๐ซถd_getespwnamโ fromd_getespwnam.Uโ conditionally definesHAS_GETESPWNAMifgetespwnam()is available to retrieve enhanced (shadow) password entries by name.d_getfsstatโ fromd_getfsstat.Uโ conditionally defines theHAS_GETFSSTATsymbol, which tells your C program that thegetfsstat()routine is available.d_getgrentโ fromd_getgrent.Uโ conditionally defines theHAS_GETGRENTsymbol, which tells your C program that thegetgrent()routine is available for sequential access of the group database.d_getgrent_rโ fromd_getgrent_r.Uโ conditionally defines theHAS_GETGRENT_Rsymbol, which tells your C program that thegetgrent_r()routine is available. the_rstands for reentrant, she's the thread-safe one ๐d_getgrgid_rโ fromd_getgrgid_r.Uโ conditionally defines theHAS_GETGRGID_Rsymbol, which tells your C program that thegetgrgid_r()routine is available.d_getgrnam_rโ fromd_getgrnam_r.Uโ conditionally defines theHAS_GETGRNAM_Rsymbol, which tells your C program that thegetgrnam_r()routine is available.d_getgrpsโ fromd_getgrps.Uโ conditionally defines theHAS_GETGROUPSsymbol, which tells your C program that thegetgroups()routine is available to get the list of process groups. (variable saysd_getgrps, symbol saysGETGROUPSโ yes, differently spelled, we simply do not fix it โจ)d_gethbyaddrโ fromd_gethbyad.Uโ conditionally defines theHAS_GETHOSTBYADDRsymbol, which tells your C program that thegethostbyaddr()routine is available to look up hosts by their "IP" addresses.d_gethbynameโ fromd_gethbynm.Uโ conditionally defines theHAS_GETHOSTBYNAMEsymbol, which tells your C program that thegethostbyname()routine is available to look up host names in some data base or other.d_gethentโ fromd_gethent.Uโ conditionally definesHAS_GETHOSTENTifgethostent()is available to look up host names in some data base or another. (yes, "or other" in one and "or another" in the next โ both exactly as written, no touchy ๐)d_gethnameโ fromd_gethname.Uโ conditionally defines theHAS_GETHOSTNAMEsymbol, which tells your C program that thegethostname()routine may be used to derive the host name.d_gethostbyaddr_rโ fromd_gethostbyaddr_r.Uโ conditionally defines theHAS_GETHOSTBYADDR_Rsymbol, which tells your C program that thegethostbyaddr_r()routine is available.d_gethostbyname_rโ fromd_gethostbyname_r.Uโ conditionally defines theHAS_GETHOSTBYNAME_Rsymbol, which tells your C program that thegethostbyname_r()routine is available.d_gethostent_rโ fromd_gethostent_r.Uโ conditionally defines theHAS_GETHOSTENT_Rsymbol, which tells your C program that thegethostent_r()routine is available.d_gethostprotosโ fromd_gethostprotos.Uโ conditionally defines theHAS_GETHOST_PROTOSsymbol, which tells your C program that<netdb.h>supplies prototypes for the variousgethost*()functions. See alsonetdbtype.Ufor probing for various netdb types. ๐d_getitimerโ fromd_getitimer.Uโ conditionally defines theHAS_GETITIMERsymbol, which tells your C program that thegetitimer()routine is available.d_getloginโ fromd_getlogin.Uโ conditionally defines theHAS_GETLOGINsymbol, which tells your C program that thegetlogin()routine is available to get the login name.d_getlogin_rโ fromd_getlogin_r.Uโ conditionally defines theHAS_GETLOGIN_Rsymbol, which tells your C program that thegetlogin_r()routine is available.d_getmntโ fromd_getmnt.Uโ conditionally defines theHAS_GETMNTsymbol, which tells your C program that thegetmnt()routine is available to retrieve one or more mount info blocks by filename. ๐
d_getmntent
From d_getmntent.U:
okay so this one conditionally defines the HAS_GETMNTENT symbol, and what that means is your C program gets to know that the getmntent() routine is there and ready โ it's the one you use to iterate through mounted files and get their mount info ๐๏ธ
d_getnameinfo
From d_getnameinfo.U:
conditionally defines the HAS_GETNAMEINFO symbol, which is the little flag that tells your C program "bestie, the getnameinfo() function is available" โจ
d_getnbyaddr
From d_getnbyad.U:
this one conditionally defines the HAS_GETNETBYADDR symbol, which says the getnetbyaddr() routine is available so you can look up networks by their "IP" addresses ๐
d_getnbyname
From d_getnbynm.U:
conditionally defines the HAS_GETNETBYNAME symbol โ the C program learns that the getnetbyname() routine exists and can 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. vague? yes. iconic? also yes ๐
d_getnetbyaddr_r
From d_getnetbyaddr_r.U:
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:
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:
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 one conditionally defines the HAS_GETNET_PROTOS symbol, which tells your 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:
conditionally defines HAS_GETPAGESIZE if getpagesize() is available to get the system page size ๐
d_getpbyname
From d_getprotby.U:
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:
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:
conditionally defines HAS_GETPROTOENT if getprotoent() is available to look up protocols in some data base or another ๐ง
d_getpgid
From d_getpgid.U:
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:
conditionally defines HAS_GETPGRP if getpgrp() is available to get the current process group โจ
d_getpgrp2
From d_getpgrp2.U:
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:
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:
conditionally defines HAS_GETPRIORITY if getpriority() is available to get a process's priority ๐
d_getprotobyname_r
From d_getprotobyname_r.U:
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:
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:
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:
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:
conditionally defines HAS_GETPRPWNAM if getprpwnam() is available to retrieve protected (shadow) password entries by name ๐คซ
d_getpwent
From d_getpwent.U:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
conditionally defines HAS_GETSPNAM if getspnam() is available to retrieve SysV shadow password entries by name ๐
d_getspnam_r
From d_getspnam_r.U:
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:
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:
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:
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:
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:
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:
conditionally defines HAS_HTONL if htonl() and its friends are available to do network order byte swapping ๐
d_hypot
From d_hypot.U:
conditionally defines HAS_HYPOT if hypot is available for numerically stable hypotenuse function ๐
d_ilogb
From d_ilogb.U:
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:
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 ๐ And plot twist: if scalbnl is also present we can emulate frexpl ๐
d_inc_version_list
From inc_version_list.U:
conditionally defines PERL_INC_VERSION_LIST ๐ It is set to undef when PERL_INC_VERSION_LIST is empty.
d_inetaton
From d_inetaton.U:
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โ straight fromd_inetntop.U: this one cond-defines theHAS_INETNTOPsymbol, which tells your C program that theinet_ntop()function is out here and available ๐ซถd_inetptonโ fromd_inetpton.U: cond-defines theHAS_INETPTONsymbol, indicating that theinet_pton()function is available. (yes bestie, the U file name is spelled like that, i'm not fixing it <3)d_int64_tโ fromd_int64_t.U: this symbol gets defined if your C compiler supportsint64_t๐d_ip_mreqโ fromd_socket.U: cond-definesHAS_IP_MREQ, which tells you whether astruct ip_mreqis available โจd_ip_mreq_sourceโ fromd_socket.U: cond-definesHAS_IP_MREQ_SOURCE, indicating availability of astruct ip_mreq_source๐ธd_ipv6_mreqโ fromd_socket.U: cond-defines theHAS_IPV6_MREQsymbol, indicating the availability of astruct ipv6_mreq.d_ipv6_mreq_sourceโ fromd_socket.U: cond-defines theHAS_IPV6_MREQ_SOURCEsymbol, indicating the availability of astruct ipv6_mreq_source.d_isasciiโ fromd_isascii.U: cond-defines theHAS_ISASCIIconstant, which tells your C program thatisascii()is available ๐d_isblankโ fromd_isblank.U: cond-defines theHAS_ISBLANKconstant, indicating thatisblank()is available.d_isfiniteโ fromd_isfinite.U: cond-defines theHAS_ISFINITEsymbol, which says theisfinite()routine is available ๐ฅd_isfinitelโ fromd_isfinitel.U: cond-defines theHAS_ISFINITELsymbol, which says theisfinitel()routine is available.d_isinfโ fromd_isinf.U: cond-defines theHAS_ISINFsymbol, indicating that theisinf()routine is available ๐d_isinflโ fromd_isinfl.U: cond-defines theHAS_ISINFLsymbol, indicating that theisinfl()routine is available.d_islessโ fromd_isless.U: cond-defines theHAS_ISLESSsymbol, indicating that theisless()routine is available.d_isnanโ fromd_isnan.U: cond-defines theHAS_ISNANsymbol, indicating that theisnan()routine is available ๐ญd_isnanlโ fromd_isnanl.U: cond-defines theHAS_ISNANLsymbol, indicating that theisnanl()routine is available.d_isnormalโ fromd_isnormal.U: cond-defines theHAS_ISNORMALsymbol, indicating that theisnormal()routine is available.d_j0โ fromd_j0.U: cond-defines theHAS_J0symbol, indicating that thej0()routine is available โจd_j0lโ fromd_j0.U: cond-defines theHAS_J0Lsymbol, indicating that thej0l()routine is available. (same U file asd_j0, iconic)d_killpgโ fromd_killpg.U: cond-defines theHAS_KILLPGsymbol, indicating that thekillpg()routine is available to kill process groups ๐ฅd_lc_monetary_2008โ fromd_lc_monetary_2008.U: cond-definesHAS_LC_MONETARY_2008if libc has the international currency locale rules fromPOSIX1003.1-2008 ๐ธd_lchownโ fromd_lchown.U: cond-defines theHAS_LCHOWNsymbol, indicating that thelchown()routine is available to operate on a symbolic link โ like, instead of following the link, bestie, it works on the link itself ๐ฆd_ldbl_digโ fromd_ldbl_dig.U: cond-definesd_ldbl_digif this system's header files provideLDBL_DIG, which is the number of significant digits in a long double precision number.d_ldexplโ fromd_longdbl.U: cond-defines theHAS_LDEXPLsymbol, indicating that theldexpl()routine is available.d_lgammaโ fromd_lgamma.U: cond-defines theHAS_LGAMMAsymbol, indicating that thelgamma()routine is available for the log gamma function. See alsod_tgammaandd_lgamma_r. โจd_lgamma_rโ fromd_lgamma_r.U: cond-defines theHAS_LGAMMA_Rsymbol, indicating that thelgamma_r()routine is available for the log gamma function โ and it does it without using the globalsigngamvariable ๐d_libm_lib_versionโ fromd_libm_lib_version.U: cond-defines theLIBM_LIB_VERSIONsymbol, which indicates to your C program thatmath.hdefines_LIB_VERSIONbeing available in libm ๐งฎd_libname_uniqueโ fromso.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 toundef.d_linkโ fromd_link.U: cond-definesHAS_LINKiflink()is available to create hard links ๐d_linkatโ fromd_fsat.U: cond-defines theHAS_LINKATsymbol, which indicates thePOSIXlinkat()function is available.d_llrintโ fromd_llrint.U: cond-defines theHAS_LLRINTsymbol, indicating that thellrint()routine is available to return the long long value closest to a double โ according to the current rounding mode, periodt ๐d_llrintlโ fromd_llrintl.U: cond-defines theHAS_LLRINTLsymbol, indicating that thellrintl()routine is available to return the long long value closest to a long double, according to the current rounding mode.d_llroundโ fromd_llround.U: cond-defines theHAS_LLROUNDsymbol, indicating that thellround()routine is available to return the long long value nearest to x.d_llroundlโ fromd_llroundl.U: cond-defines theHAS_LLROUNDLsymbol, indicating that thellroundl()routine is available to return the long long value nearest to x away from zero.d_localeconv_lโ fromd_localeconv_l.U: cond-defines theHAS_LOCALECONV_Lsymbol, indicating that thelocaleconv_l()routine is available ๐d_localtime64โ fromd_timefuncs64.U: cond-defines theHAS_LOCALTIME64symbol, indicating that thelocaltime64 ()routine is available.d_localtime_rโ fromd_localtime_r.U: cond-defines theHAS_LOCALTIME_Rsymbol, indicating that thelocaltime_r()routine is available โฐd_localtime_r_needs_tzsetโ fromd_localtime_r.U: cond-defines theLOCALTIME_R_NEEDS_TZSETsymbol, which makes us calltzsetbeforelocaltime_r().d_locconvโ fromd_locconv.U: cond-definesHAS_LOCALECONViflocaleconv()is available for numeric and monetary formatting conventions ๐ฐd_lockfโ fromd_lockf.U: cond-definesHAS_LOCKFiflockf()is available to do file locking ๐d_log1pโ fromd_log1p.U: cond-defines theHAS_LOG1Psymbol, indicating that thelogp1()routine is available to computelog(1 + x)for values of x close to zero. (yes, the U file calls itlogp1(), we keep it exactly as written, no cap)d_log2โ fromd_log2.U: cond-defines theHAS_LOG2symbol, indicating that thelog2()routine is available to compute log base two โ๏ธd_logbโ fromd_logb.U: cond-defines theHAS_LOGBsymbol, indicating that thelogb()routine is available to extract the exponent of x.d_long_double_style_ieeeโ fromd_longdbl.U: cond-definesLONG_DOUBLE_STYLE_IEEEif the long double is any of theIEEE754 style long doubles:LONG_DOUBLE_STYLE_IEEE_STD,LONG_DOUBLE_STYLE_IEEE_EXTENDED,LONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLE๐d_long_double_style_ieee_doubledoubleโ fromd_longdbl.U: cond-definesLONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLEif the long double is the 128-bitIEEE754 double-double.d_long_double_style_ieee_extendedโ fromd_longdbl.U: cond-definesLONG_DOUBLE_STYLE_IEEE_EXTENDEDif the long double is the 80-bitIEEE754 extended precision. Note that despite the "extended" this is less than the "std", since this is an extension of the double precision. (yes bestie, "extended" but smaller, it's giving confusing naming ๐ญ)d_long_double_style_ieee_stdโ fromd_longdbl.U: cond-definesLONG_DOUBLE_STYLE_IEEE_STDif the long double is the 128-bitIEEE754.d_long_double_style_vaxโ fromd_longdbl.U: cond-definesLONG_DOUBLE_STYLE_VAXif the long double is the 128-bitVAXformat H ๐งd_longdblโ fromd_longdbl.U: cond-definesHAS_LONG_DOUBLEif the long double type is supported.d_longlongโ fromd_longlong.U: cond-definesHAS_LONG_LONGif the long long type is supported โจd_lrintโ fromd_lrint.U: cond-defines theHAS_LRINTsymbol, indicating that thelrint()routine is available to return the integral value closest to a double, according to the current rounding mode.d_lrintlโ fromd_lrintl.U: cond-defines theHAS_LRINTLsymbol, indicating that thelrintl()routine is available to return the integral value closest to a long double, according to the current rounding mode ๐d_lroundโ came fromd_lround.U, bestie. It conditionally defines theHAS_LROUNDsymbol, which is how the C program finds out that thelround()routine is around to hand back the integral value nearest to x. โจd_lroundlโ fromd_lroundl.U. Conditionally defines theHAS_LROUNDLsymbol, telling your C program thatlroundl()exists and will return the integral value nearest to x away from zero. ๐d_lseekprotoโ fromd_lseekproto.U. This one conditionally defines theHAS_LSEEK_PROTOsymbol, which tells the C program that the system ships a prototype for thelseek()function. If it doesn't? Then it's on the program to supply one itself. no cap. ๐d_lstatโ fromd_lstat.U. Conditionally definesHAS_LSTATiflstat()is available for doing file stats on symbolic links. ๐ฆd_madviseโ fromd_madvise.U. Conditionally definesHAS_MADVISEifmadvise()is available to map a file into memory. ๐ฅd_malloc_good_sizeโ fromd_malloc_size.U. This symbol, if defined, means themalloc_good_sizeroutine is available for use. ๐d_malloc_sizeโ also fromd_malloc_size.U. This symbol, if defined, means themalloc_sizeroutine is available for use. ๐d_malloc_usable_sizeโ yep, fromd_malloc_size.Utoo. This symbol, if defined, means themalloc_usable_sizeroutine is available for use. ๐d_mblenโ fromd_mblen.U. Conditionally defines theHAS_MBLENsymbol, telling the C program thatmblen()is available to find the number of bytes in a multibyte character. ๐ธd_mbrlenโ fromd_mbrlen.U. Conditionally defines theHAS_MBRLENsymbol ifmbrlen()is available, for getting the length of multi-byte character strings. ๐ธd_mbrtowcโ fromd_mbrtowc.U. Conditionally defines theHAS_MBRTOWCsymbol ifmbrtowc()is available, used to convert a multi-byte character into a wide character. ๐d_mbstowcsโ fromd_mbstowcs.U. Conditionally defines theHAS_MBSTOWCSsymbol, which tells the C program thatmbstowcs()is available to convert a multibyte string into a wide character string. ๐d_mbtowcโ fromd_mbtowc.U. Conditionally defines theHAS_MBTOWCsymbol, telling the C program thatmbtowc()is available to convert multibyte to a wide character. ๐d_memmemโ fromd_memmem.U. Conditionally defines theHAS_MEMMEMsymbol, which tells the C program thatmemmem()is available to return a pointer to the start of the first occurrence of a substring in a memory area โ orNULLif it's not found. ๐d_memrchrโ fromd_memrchr.U. Conditionally defines theHAS_MEMRCHRsymbol, which tells the C program thatmemrchr()is available to return a pointer to the last occurrence of a byte in a memory area โ orNULLif it's not found. ๐d_mkdirโ fromd_mkdir.U. Conditionally defines theHAS_MKDIRsymbol, telling the C program thatmkdir()is available to create directories.. (two periods, she said it with her whole chest, iconic) ๐d_mkdtempโ fromd_mkdtemp.U. Conditionally defines theHAS_MKDTEMPsymbol, telling the C program thatmkdtemp()is available to exclusively create a uniquely named temporary directory. ๐d_mkfifoโ fromd_mkfifo.U. Conditionally defines theHAS_MKFIFOsymbol, which tells the C program that themkfifo()routine is available. ๐d_mkostempโ fromd_mkostemp.U. Conditionally definesHAS_MKOSTEMPifmkostemp()is available to exclusively create and open a uniquely named (with a suffix) temporary file. ๐d_mkstempโ fromd_mkstemp.U. Conditionally defines theHAS_MKSTEMPsymbol, telling the C program thatmkstemp()is available to exclusively create and open a uniquely named temporary file. ๐d_mkstempsโ fromd_mkstemps.U. Conditionally defines theHAS_MKSTEMPSsymbol, telling the C program thatmkstemps()is available to exclusively create and open a uniquely named (with a suffix) temporary file. ๐d_mktimeโ fromd_mktime.U. Conditionally defines theHAS_MKTIMEsymbol, which tells the C program that themktime()routine is available. โฐd_mktime64โ fromd_timefuncs64.U. Conditionally defines theHAS_MKTIME64symbol, which tells the C program that themktime64 ()routine is available. (yes, with that lil space before the parens, leaving it exactly as she came) โฐd_mmapโ fromd_mmap.U. Conditionally definesHAS_MMAPifmmap()is available to map a file into memory. ๐บ๏ธd_modflโ fromd_modfl.U. Conditionally defines theHAS_MODFLsymbol, telling the C program that themodfl()routine is available. โจd_modflprotoโ also fromd_modfl.U. This symbol, if defined, means the system provides a prototype for themodfl()function. Otherwise, it's up to the program to supply one. C99 says it should be:
long double modfl(long double, long double *);
d_mprotectโ fromd_mprotect.U. Conditionally definesHAS_MPROTECTifmprotect()is available to modify the access protection of a memory mapped file. ๐ก๏ธd_msgโ fromd_msg.U. Conditionally defines theHAS_MSGsymbol, which indicates that the entiremsg*(2)library is present. ๐จd_msg_ctruncโ fromd_socket.U. Conditionally defines theHAS_MSG_CTRUNCsymbol, indicating thatMSG_CTRUNCis available. Heads up bestie:#ifdefis not enough here, because it may be an enum โ glibc has been known to do this. ๐ญd_msg_dontrouteโ fromd_socket.U. Conditionally defines theHAS_MSG_DONTROUTEsymbol, indicating thatMSG_DONTROUTEis available. And again:#ifdefis not enough, because it may be an enum โ glibc has been known to do this. ๐d_msg_oobโ fromd_socket.U. Conditionally defines theHAS_MSG_OOBsymbol, indicating thatMSG_OOBis available. Same deal:#ifdefis not enough, because it may be an enum โ glibc has been known to do this. ๐d_msg_peekโ fromd_socket.U. Conditionally defines theHAS_MSG_PEEKsymbol, indicating thatMSG_PEEKis available. You already know:#ifdefis not enough, because it may be an enum โ glibc has been known to do this. ๐d_msg_proxyโ fromd_socket.U. Conditionally defines theHAS_MSG_PROXYsymbol, indicating thatMSG_PROXYis available. And once more for the people in the back:#ifdefis not enough, because it may be an enum โ glibc has been known to do this. ๐d_msgctlโ fromd_msgctl.U. Conditionally defines theHAS_MSGCTLsymbol, telling the C program that themsgctl()routine is available. ๐จd_msggetโ fromd_msgget.U. Conditionally defines theHAS_MSGGETsymbol, telling the C program that themsgget()routine is available. ๐จd_msghdr_sโ fromd_msghdr_s.U. Conditionally defines theHAS_STRUCT_MSGHDRsymbol, which indicates that thestruct msghdris supported. ๐ซถd_msgrcvโ fromd_msgrcv.U. Conditionally defines theHAS_MSGRCVsymbol, telling the C program that themsgrcv()routine is available. ๐จd_msgsndโ fromd_msgsnd.U. Conditionally defines theHAS_MSGSNDsymbol, telling the C program that themsgsnd()routine is available. ๐จd_msyncโ fromd_msync.U. Conditionally definesHAS_MSYNCifmsync()is available to synchronize a mapped file. ๐d_munmapโ fromd_munmap.U. Conditionally definesHAS_MUNMAPifmunmap()is available to unmap a region mapped bymmap(). ๐บ๏ธd_mymallocโ frommallocsrc.U. Conditionally definesMYMALLOCin case other parts of the source want to take special action ifMYMALLOCis used โ which may include different sorts of profiling or error detection. ๐ต๏ธd_nanโ fromd_nan.U. Conditionally definesHAS_NANifnan()is available to generate NaN. (not a number, not a vibe, a whole concept) ๐d_nanosleepโ fromd_nanosleep.U. Conditionally definesHAS_NANOSLEEPifnanosleep()is available to sleep with 1E-9 sec accuracy. ๐ดd_ndbmโ fromi_ndbm.U. Conditionally defines theHAS_NDBMsymbol, which indicates that both thendbm.hinclude file and an appropriate ndbm library exist. Consult the differenti_*ndbmvariables to find out the actual include location. Sometimes a system has the header file but not the library โ rude โ so this variable will only be set if the system has both. ๐๏ธd_ndbm_h_uses_prototypesโ fromi_ndbm.U. Conditionally defines theNDBM_H_USES_PROTOTYPESsymbol, which indicates that thendbm.hinclude 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 you're using a C++ compiler and this variable is undefined. Consult the differentd_*ndbm_h_uses_prototypesvariables to get the same information for alternativendbm.hinclude files. โ ๏ธd_nearbyintโ fromd_nearbyint.U. Conditionally definesHAS_NEARBYINTifnearbyint()is available to return the integral value closest to (according to the current rounding mode) x. ๐ฏd_newlocaleโ fromd_newlocale.U. Conditionally defines theHAS_NEWLOCALEsymbol, telling the C program that thenewlocale()routine is available to return a new locale object or modify an existing locale object. ๐d_nextafterโ fromd_nextafter.U:d_nextafterโ fromd_nextafter.U: setsHAS_NEXTAFTERifnextafter()is a thing on this platform, i.e. it can hand you the next machine-representabledoublefromxin directiony. baby steps but make them representable ๐d_nexttowardโ fromd_nexttoward.U: setsHAS_NEXTTOWARDifnexttoward()exists, which returns the next machine-representablelong doublefromxin directiony. yes bestie,long doubleedition ๐d_niceโ fromd_nice.U: sets theHAS_NICEsymbol, which tells the C program "hey, thenice()routine is available." โจd_nl_langinfoโ fromd_nl_langinfo.U: setsHAS_NL_LANGINFO, telling your C program thatnl_langinfo()is available. ๐ธd_nl_langinfo_lโ fromd_nl_langinfo.U: setsHAS_NL_LANGINFO_L, which meansnl_langinfo_l()is available. the_lversion, we love a locale-aware queen ๐d_non_int_bitfieldsโ fromd_bitfield.U: setsHAS_NON_INT_BITFIELDS, which means your C compiler accepts struct bitfields whose sizes aren'tintorunsigned int. icon behaviour frd_nv_preserves_uvโ fromperlxv.U: says whether a variable of typenvtypecan preserve all the bits of a variable of typeuvtype. no bits left behind, periodt ๐d_nv_zero_is_allbits_zeroโ fromperlxv.U: says whether a variable of typenvtypestores0.0in memory as all bits zero. vibe check on your floats ๐ฆd_off64_tโ fromd_off64_t.U: defined if the C compiler supportsoff64_t. that's it, that's the whole note ๐d_old_pthread_create_joinableโ fromd_pthrattrj.U: conditionally definespthread_create_joinable; it's undef ifpthread.hdefinesPTHREAD_CREATE_JOINABLE. so like, pick a lane ๐d_oldpthreadsโ fromusethreads.U: sets theOLD_PTHREADS_APIsymbol and tells Perl it should be built against the old draftPOSIXthreadsAPI. only potentially meaningful ifusethreadsis set, so don't get your hopes up for free ๐d_oldsockโ fromd_socket.U: sets theOLDSOCKETsymbol, which means theBSDsocket interface is based on 4.1c and not 4.2. vintage, but make it networking ๐d_open3โ fromd_open3.U: sets theHAS_OPEN3manifest constant, telling your C program that the 3-argument version of theopen(2)function is available. three args, no notes ๐d_openatโ fromd_fsat.U: setsHAS_OPENAT, which means thePOSIXopenat()function is available. ๐ฅd_pathconfโ fromd_pathconf.U: setsHAS_PATHCONF, telling your C program that thepathconf()routine is available for figuring out file-system related limits and options tied to a given filename. she knows things ๐d_pauseโ fromd_pause.U: setsHAS_PAUSE, which means thepause()routine is available to suspend a process until a signal shows up. nap time but make it signal-driven ๐ดd_perl_lc_all_category_positions_initโ fromdisparate_lc_all.U: if this symbol is defined, it indicates that$lc_all_category_positions_initis valid. ๐d_perl_lc_all_separatorโ fromdisparate_lc_all.U: if this symbol is defined, it indicates that$perl_lc_all_separatoris valid. โจd_perl_lc_all_uses_name_value_pairsโ fromdisparate_lc_all.U: if defined, it means the string returned bysetlocale("LC_ALL", "NULL")usesname=value;pairs to say what each category's locale is when they're not all set to the same locale. when it's not defined, the platform uses positional notation instead. two completely different communication styles, honestly ๐ฆd_perl_otherlibdirsโ fromotherlibdirs.U: setsPERL_OTHERLIBDIRS, which holds a colon-separated set of paths for the perl binary to include in@INC. see alsootherlibdirs. ๐d_phostnameโ fromd_gethname.U: sets theHAS_PHOSTNAMEsymbol, which contains the shell command that, when fed topopen(), may be used to derive the host name. yes, a whole shell command, just sitting in there ๐d_pipeโ fromd_pipe.U: setsHAS_PIPE, telling your C program thatpipe()is available to create an inter-process channel. speaking tubes between processes, love that for them ๐ฌd_pipe2โ fromd_pipe2.U: sets theHAS_PIPE2symbol, telling your C program thatpipe2()is available to create an inter-process channel. the sequel, and it ate ๐ฅd_pollโ fromd_poll.U: setsHAS_POLL, which means thepoll()routine is available to poll active file descriptors. asking everyone "u up?" at once ๐ซถd_portableโ fromd_portable.U: sets thePORTABLEsymbol, telling your C program that it should not assume it's running on the machine it was compiled on. โ๏ธd_prctlโ fromd_prctl.U: setsHAS_PRCTL, which means theprctl()routine is available. โ ๏ธ but bestie, hear me: there are at least two prctl variants, Linux and Irix. they're somewhat similar but they are incompatible. do not mix them up, that's not the vibe ๐d_prctl_set_nameโ fromd_prctl.U: setsHAS_PRCTL_SET_NAME, which means theprctl()routine supports thePR_SET_NAMEoption. ๐ธd_printf_format_nullโ fromd_attribut.U: setsPRINTF_FORMAT_NULL_OK, which means your C compiler allows printf-like formats to be null. null format, no drama ๐d_procselfexeโ fromd_procselfexe.U: defined if$procselfexeis a symlink to the absolute pathname of the executing program. ๐d_pseudoforkโ fromd_vfork.U: sets theHAS_PSEUDOFORKsymbol, which means an emulation of theforkroutine is available. it's giving fork, but it's giving it in spirit โจd_pthread_atforkโ fromd_pthread_atfork.U: setsHAS_PTHREAD_ATFORK, telling your C program that thepthread_atfork()routine is available. ๐งd_pthread_attr_setscopeโ fromd_pthread_attr_ss.U: setsHAS_PTHREAD_ATTR_SETSCOPEifpthread_attr_setscope()is available to set the contention scope attribute of a thread attribute object. main character thread, knows its scope ๐d_pthread_yieldโ fromd_pthread_y.U: setsHAS_PTHREAD_YIELDif thepthread_yieldroutine is available, which yields the execution of the current thread. go ahead bestie, let someone else talk ๐d_ptrdiff_tโ fromd_ptrdiff_t.U: defined if the C compiler supportsptrdiff_t. โญd_pwageโ fromi_pwd.U: setsPWAGE, which indicates thatstruct passwdcontainspw_age. ๐d_pwchangeโ fromi_pwd.U: setsPWCHANGE, which indicates thatstruct passwdcontainspw_change. ๐d_pwclassโ fromi_pwd.U: setsPWCLASS, which indicates thatstruct passwdcontainspw_class. ๐d_pwcommentโ fromi_pwd.U: setsPWCOMMENT, which indicates thatstruct passwdcontainspw_comment. ๐ฌd_pwexpireโ fromi_pwd.U: setsPWEXPIRE, which indicates thatstruct passwdcontainspw_expire. โd_pwgecosโ fromi_pwd.U: setsPWGECOS, which indicates thatstruct passwdcontainspw_gecos. the iconic one, no cap ๐d_pwpasswdโ fromi_pwd.U: setsPWPASSWD, which indicates thatstruct passwdcontainspw_passwd. ๐d_pwquotaโ fromi_pwd.U: setsPWQUOTA, which indicates thatstruct passwdcontainspw_quota. ๐d_qgcvtโ fromd_qgcvt.U: setsHAS_QGCVT, telling your C program that theqgcvt()routine is available. ๐d_quadโ fromquadtype.U: if defined, it tells you there's a 64-bit integer type,quadtype. big numbers, big energy ๐d_querylocaleโ fromd_newlocale.U: setsHAS_QUERYLOCALE, telling your C program that thequerylocale()routine is available to return the name of the locale for a category mask. nosy in the best way ๐d_random_rโ fromd_random_r.U: setsHAS_RANDOM_R, which means therandom_r()routine is available. ๐ฒd_re_compโ fromd_regcmp.U: setsHAS_RECOMP, which means there_comp()routine is available for regular pattern matching โ usually onBSD. if that's the case,re_exec()probably exists too. they come as a pair, it's giving duo ๐ซถd_readdirโ fromd_readdir.U: setsHAS_READDIRifreaddir()is available to read directory entries. ๐d_readdir64_rโ fromd_readdir64_r.U: sets theHAS_READDIR64_Rsymbol, which means thereaddir64_r()routine is available. โจd_readdir_rโ fromd_readdir_r.U: setsHAS_READDIR_R, which means thereaddir_r()routine is available. ๐ธd_readlinkโ fromd_readlink.U: setsHAS_READLINK, which means thereadlink()routine is available to read the value of a symbolic link. following the breadcrumbs ๐d_readvโ fromd_readv.U: setsHAS_READV, which means thereadv()routine is available. ๐d_recvmsgโ fromd_recvmsg.U: setsHAS_RECVMSG, which means therecvmsg()routine is available. ๐จd_regcmpโ fromd_regcmp.U:- (the
regcmpone, closing out that entry) โ this variable conditionally defines the"HAS_REGCMP"symbol, which tells your C program that theregcmp()routine is available for regular pattern matching (usually on System V). ๐ d_regcompโ fromd_regcmp.U: conditionally defines"HAS_REGCOMP", so your C program knows theregcomp()routine is there for regular pattern matching (usually on POSIX.2 conforming systems).d_remainderโ fromd_remainder.U: conditionally defines"HAS_REMAINDER", which says theremainder()routine is available.d_remquoโ fromd_remquo.U: conditionally defines"HAS_REMQUO", which says theremquo()routine is available.d_renameโ fromd_rename.U: conditionally defines"HAS_RENAME", which says therename()routine is available to rename files.d_renameatโ fromd_fsat.U: conditionally defines"HAS_RENAMEAT", which says the"POSIX"renameat()function is available.d_rewinddirโ fromd_readdir.U: conditionally defines"HAS_REWINDDIR"ifrewinddir()is available.d_rintโ fromd_rint.U: conditionally defines"HAS_RINT", which tells your C program therint()routine is available.d_rmdirโ fromd_rmdir.U: conditionally defines"HAS_RMDIR"ifrmdir()is available to remove directories.d_roundโ fromd_round.U: conditionally defines"HAS_ROUND", which says theround()routine is available.d_sbrkprotoโ fromd_sbrkproto.U: conditionally defines"HAS_SBRK_PROTO", which says the system hands you a prototype for thesbrk()function. If it doesn't, bestie, it's on the program to supply one. ๐ซกd_scalbnโ fromd_scalbn.U: conditionally defines"HAS_SCALBN", which says thescalbn()routine is available.d_scalbnlโ fromd_scalbnl.U: conditionally defines"HAS_SCALBNL", which says thescalbnl()routine is available. And plot twist: ifilogblis also present, we can emulatefrexpl. โจd_sched_yieldโ fromd_pthread_y.U: conditionally defines"HAS_SCHED_YIELD"if thesched_yieldroutine is available to yield the execution of the current thread.d_scm_rightsโ fromd_socket.U: conditionally defines"HAS_SCM_RIGHTS", which says"SCM_RIGHTS"is available. And no,#ifdefis not enough here, because it might be an enum โ glibc has been known to pull that move. ๐d_seekdirโ fromd_readdir.U: conditionally defines"HAS_SEEKDIR"ifseekdir()is available.d_selectโ fromd_select.U: conditionally defines"HAS_SELECT"ifselect()is available to select active file descriptors. Heads up though: a<sys/time.h>inclusion may be necessary for the timeout field.d_semโ fromd_sem.U: conditionally defines"HAS_SEM", which says the entiresem*(2)library is present. The whole thing. ๐d_semctlโ fromd_semctl.U: conditionally defines"HAS_SEMCTL", which tells your C program thesemctl()routine is available.d_semctl_semid_dsโ fromd_union_semun.U: conditionally defines"USE_SEMCTL_SEMID_DS", which saysstruct semid_ds *is what you use for semctl"IPC_STAT".d_semctl_semunโ fromd_union_semun.U: conditionally defines"USE_SEMCTL_SEMUN", which saysunion semunis what you use for semctl"IPC_STAT".d_semgetโ fromd_semget.U: conditionally defines"HAS_SEMGET", which tells your C program thesemget()routine is available.d_semopโ fromd_semop.U: conditionally defines"HAS_SEMOP", which tells your C program thesemop()routine is available.d_sendmsgโ fromd_sendmsg.U: conditionally defines"HAS_SENDMSG", which tells your C program thesendmsg()routine is available.d_setegidโ fromd_setegid.U: conditionally defines"HAS_SETEGID", which says thesetegid()routine is available to change the effective gid of the current program.d_setenvโ fromd_setenv.U: conditionally defines"HAS_SETENV", which says thesetenvroutine is available.d_seteuidโ fromd_seteuid.U: conditionally defines"HAS_SETEUID", which says theseteuid()routine is available to change the effective uid of the current program.d_setgrentโ fromd_setgrent.U: conditionally defines"HAS_SETGRENT", which says thesetgrent()routine is available for initializing sequential access to the group database.d_setgrent_rโ fromd_setgrent_r.U: conditionally defines"HAS_SETGRENT_R", which says thesetgrent_r()routine is available.d_setgrpsโ fromd_setgrps.U: conditionally defines"HAS_SETGROUPS", which says thesetgroups()routine is available to set the list of process groups.d_sethentโ fromd_sethent.U: conditionally defines"HAS_SETHOSTENT"ifsethostent()is available.d_sethostent_rโ fromd_sethostent_r.U: conditionally defines"HAS_SETHOSTENT_R", which says thesethostent_r()routine is available.d_setitimerโ fromd_setitimer.U: conditionally defines"HAS_SETITIMER", which says thesetitimer()routine is available.d_setlinebufโ fromd_setlnbuf.U: conditionally defines"HAS_SETLINEBUF", which says thesetlinebuf()routine is available to switchstderrorstdoutfrom block-buffered or unbuffered over to a line-buffered mode. glow up fr fr ๐ธd_setlocaleโ fromd_setlocale.U: conditionally defines"HAS_SETLOCALE"ifsetlocale()is available to handle locale-specific ctype implementations.d_setlocale_accepts_any_locale_nameโ fromd_setlocale.U: conditionally defines"SETLOCALE_ACCEPTS_ANY_LOCALE_NAME"ifsetlocale()accepts any locale name.d_setlocale_rโ fromd_setlocale_r.U: conditionally defines"HAS_SETLOCALE_R", which says thesetlocale_r()routine is available.d_setnentโ fromd_setnent.U: conditionally defines"HAS_SETNETENT"ifsetnetent()is available.d_setnetent_rโ fromd_setnetent_r.U: conditionally defines"HAS_SETNETENT_R", which says thesetnetent_r()routine is available.d_setpentโ fromd_setpent.U: conditionally defines"HAS_SETPROTOENT"ifsetprotoent()is available.d_setpgidโ fromd_setpgid.U: conditionally defines"HAS_SETPGID"if thesetpgid(pid, gpid)function is available to set process group"ID".d_setpgrpโ fromd_setpgrp.U: conditionally defines"HAS_SETPGRP"ifsetpgrp()is available to set the current process group.d_setpgrp2โ fromd_setpgrp2.U: conditionally defines theHAS_SETPGRP2symbol, which says thesetpgrp2()routine (as in DG/"UX") is available to set the current process group.d_setpriorโ fromd_setprior.U: conditionally defines"HAS_SETPRIORITY"ifsetpriority()is available to set a process's priority.d_setproctitleโ fromd_setproctitle.U: conditionally defines"HAS_SETPROCTITLE", which says thesetproctitle()routine is available.d_setprotoent_rโ fromd_setprotoent_r.U: conditionally defines"HAS_SETPROTOENT_R", which says thesetprotoent_r()routine is available.d_setpwentโ fromd_setpwent.U: conditionally defines"HAS_SETPWENT", which says thesetpwent()routine is available for initializing sequential access to the passwd database.d_setpwent_rโ fromd_setpwent_r.U: conditionally defines"HAS_SETPWENT_R", which says thesetpwent_r()routine is available.d_setregidโ fromd_setregid.U: conditionally defines"HAS_SETREGID"ifsetregid()is available to change the real and effective gid of the current process.d_setresgidโ fromd_setregid.U: conditionally defines"HAS_SETRESGID"ifsetresgid()is available to change the real, effective and saved gid of the current process.d_setresuidโ fromd_setreuid.U: conditionally defines"HAS_SETREUID"ifsetresuid()is available to change the real, effective and saved uid of the current process.d_setreuidโ fromd_setreuid.U: conditionally defines"HAS_SETREUID"ifsetreuid()is available to change the real and effective uid of the current process.d_setrgidโ fromd_setrgid.U: conditionally defines"HAS_SETRGID", which tells your C program thesetrgid()routine is available to change the real gid of the current program.d_setruidโ fromd_setruid.U: โฆand that's literally where this part runs out, bestie, description pending ๐ซ hold that thought.
This variable conditionally defines the HAS_SETRUID symbol, which is basically the C program's lil green light saying the setruid() routine is available to change the real uid of the current program. ๐ซถ
d_setsentโ fromd_setsent.U: this variable conditionally definesHAS_SETSERVENTifsetservent()is available. โจd_setservent_rโ fromd_setservent_r.U: this variable conditionally defines theHAS_SETSERVENT_Rsymbol, which tells the C program that thesetservent_r()routine is available. ๐ฆd_setsidโ fromd_setsid.U: this variable conditionally definesHAS_SETSIDifsetsid()is available to set the process group "ID". ๐d_setvbufโ fromd_setvbuf.U: this variable conditionally defines theHAS_SETVBUFsymbol, which indicates to the C program that thesetvbuf()routine is available to change buffering on an open stdio stream. ๐d_shmโ fromd_shm.U: this variable conditionally defines theHAS_SHMsymbol, which indicates that the entireshm*(2)library is present. the whole thing. all of it. ๐d_shmatโ fromd_shmat.U: this variable conditionally defines theHAS_SHMATsymbol, which indicates to the C program that theshmat()routine is available. ๐ธd_shmatprototypeโ fromd_shmat.U: this variable conditionally defines theHAS_SHMAT_PROTOTYPEsymbol, which indicates thatsys/shm.hhas a prototype forshmat. ๐d_shmctlโ fromd_shmctl.U: this variable conditionally defines theHAS_SHMCTLsymbol, which indicates to the C program that theshmctl()routine is available. โจd_shmdtโ fromd_shmdt.U: this variable conditionally defines theHAS_SHMDTsymbol, which indicates to the C program that theshmdt()routine is available. โจd_shmgetโ fromd_shmget.U: this variable conditionally defines theHAS_SHMGETsymbol, which indicates to the C program that theshmget()routine is available. โจd_sigactionโ fromd_sigaction.U: this variable conditionally defines theHAS_SIGACTIONsymbol, which indicates that the Vr4sigaction()routine is available. ๐
ok now we're in our signal-info era, bestie, and she has OPINIONS about struct members:
d_siginfo_si_addrโ fromd_siginfo_si.U: this variable conditionally defines theHAS_SIGINFO_SI_ADDRsymbol, which indicates that thesiginfo_tstruct has thesi_addrmember. ๐d_siginfo_si_bandโ fromd_siginfo_si.U: this variable conditionally defines theHAS_SIGINFO_SI_BANDsymbol, which indicates that thesiginfo_tstruct has thesi_bandmember. ๐ตd_siginfo_si_errnoโ fromd_siginfo_si.U: this variable conditionally defines theHAS_SIGINFO_SI_ERRNOsymbol, which indicates that thesiginfo_tstruct has thesi_errnomember. ๐ญd_siginfo_si_fdโ fromd_siginfo_si.U: this variable conditionally defines theHAS_SIGINFO_SI_FDsymbol, which indicates that thesiginfo_tstruct has thesi_fdmember. ๐d_siginfo_si_pidโ fromd_siginfo_si.U: this variable conditionally defines theHAS_SIGINFO_SI_PIDsymbol, which indicates that thesiginfo_tstruct has thesi_pidmember. ๐ซถd_siginfo_si_statusโ fromd_siginfo_si.U: this variable conditionally defines theHAS_SIGINFO_SI_STATUSsymbol, which indicates that thesiginfo_tstruct has thesi_statusmember. ๐d_siginfo_si_uidโ fromd_siginfo_si.U: this variable conditionally defines theHAS_SIGINFO_SI_UIDsymbol, which indicates that thesiginfo_tstruct has thesi_uidmember. ๐d_siginfo_si_valueโ fromd_siginfo_si.U: this variable conditionally defines theHAS_SIGINFO_SI_VALUEsymbol, which indicates that thesiginfo_tstruct has thesi_valuemember. ๐d_signbitโ fromd_signbit.U: this variable conditionally defines theHAS_SIGNBITsymbol, which indicates to the C program that thesignbit()routine is available and safe to use with perl's internNVtype. yes bestie, safe, that's the whole point of the check ๐d_sigprocmaskโ fromd_sigprocmask.U: this variable conditionally definesHAS_SIGPROCMASKifsigprocmask()is available to examine or change the signal mask of the calling process. ๐ญd_sigsetjmpโ fromd_sigsetjmp.U: this variable conditionally defines theHAS_SIGSETJMPsymbol, which indicates that thesigsetjmp()routine is available to callsetjmp()and optionally save the process's signal mask. โจd_sin6_scope_idโ fromd_socket.U: this variable conditionally defines theHAS_SIN6_SCOPE_IDsymbol, which indicates that astruct sockaddr_in6structure has thesin6_scope_idmember. ๐d_sitearchโ fromsitearch.U: this variable conditionally definesSITEARCHto hold the pathname of architecture-dependent library files for$package. And if$sitearchis the same as$archlib, then this is set to undef. (twinning so hard it cancels out, iconic honestly ๐ )d_snprintfโ fromd_snprintf.U: this variable conditionally defines theHAS_SNPRINTFsymbol, which indicates to the C program that thesnprintf ()library function is available. ๐จ๏ธ
socket era incoming, miss girl was BUSY in d_socket.U:
d_sockaddr_in6โ fromd_socket.U: this variable conditionally defines theHAS_SOCKADDR_IN6symbol, which indicates the availability of astruct sockaddr_in6. ๐ธd_sockaddr_sa_lenโ fromd_socket.U: this variable conditionally defines theHAS_SOCKADDR_SA_LENsymbol, which indicates that astruct sockaddrstructure has thesa_lenmember. ๐d_sockaddr_storageโ fromd_socket.U: this variable conditionally defines theHAS_SOCKADDR_STORAGEsymbol, which indicates the availability of astruct sockaddr_storage. ๐ฆd_sockatmarkโ fromd_sockatmark.U: this variable conditionally defines theHAS_SOCKATMARKsymbol, which indicates to the C program that thesockatmark()routine is available. โจd_sockatmarkprotoโ fromd_sockatmarkproto.U: this variable conditionally defines theHAS_SOCKATMARK_PROTOsymbol, which indicates to the C program that the system provides a prototype for thesockatmark()function. Otherwise, it is up to the program to supply one. (so likeโฆ bring your own prototype bestie ๐ซต)d_socketโ fromd_socket.U: this variable conditionally definesHAS_SOCKET, which indicates that the "BSD" socket interface is supported. ๐d_socklen_tโ this symbol will be defined if the C compiler supportssocklen_t. โญd_sockpairโ fromd_socket.U: this variable conditionally defines theHAS_SOCKETPAIRsymbol, which indicates that the "BSD"socketpair()is supported. ๐ฏd_socks5_initโ fromd_socks5_init.U: this variable conditionally defines theHAS_SOCKS5_INITsymbol, which indicates to the C program that thesocks5_init()routine is available. ๐งฆd_sqrtlโ fromd_sqrtl.U: this variable conditionally defines theHAS_SQRTLsymbol, which indicates to the C program that thesqrtl()routine is available. ๐d_srand48_rโ fromd_srand48_r.U: this variable conditionally defines theHAS_SRAND48_Rsymbol, which indicates to the C program that thesrand48_r()routine is available. ๐ฒd_srandom_rโ fromd_srandom_r.U: this variable conditionally defines theHAS_SRANDOM_Rsymbol, which indicates to the C program that thesrandom_r()routine is available. ๐ฐd_sresgprotoโ fromd_sresgproto.U: this variable conditionally defines theHAS_SETRESGID_PROTOsymbol, which indicates to the C program that the system provides a prototype for thesetresgid()function. Otherwise, it is up to the program to supply one. ๐d_sresuprotoโ fromd_sresuproto.U: this variable conditionally defines theHAS_SETRESUID_PROTOsymbol, which indicates to the C program that the system provides a prototype for thesetresuid()function. Otherwise, it is up to the program to supply one. ๐d_statโ fromd_stat.U: this variable conditionally definesHAS_STATifstat()is available to get file status. ๐d_statblksโ fromd_statblks.U: this variable conditionally definesUSE_STAT_BLOCKSif this system has a stat structure declaringst_blksizeandst_blocks. ๐งฑd_statfs_f_flagsโ fromd_statfs_f_flags.U: this variable conditionally defines theHAS_STRUCT_STATFS_F_FLAGSsymbol, which indicates that struct statfs from hasf_flagsmember. This kind ofstruct statfsis coming fromsys/mount.h("BSD"), not fromsys/statfs.h("SYSV"). so like, know which one you're dealing with, it's giving โจlineageโจ ๐ฉd_statfs_sโ fromd_statfs_s.U: this variable conditionally defines theHAS_STRUCT_STATFSsymbol, which indicates that thestruct statfsis supported. ๐พd_static_inlineโ fromd_static_inline.U: this variable conditionally defines theHAS_STATIC_INLINEsymbol, which indicates that the C compiler supports C99-style static inline. That is, the function can't be called from another translation unit. (she's exclusive, she's not for everyone ๐ช)d_statvfsโ fromd_statvfs.U: this variable conditionally defines theHAS_STATVFSsymbol, which indicates to the C program that thestatvfs()routine is available. ๐d_stdio_cnt_lvalโ fromd_stdstdio.U: this variable conditionally definesSTDIO_CNT_LVALUEif theFILE_cntmacro can be used as an lvalue. โ๏ธd_stdio_ptr_lvalโ fromd_stdstdio.U: this variable conditionally definesSTDIO_PTR_LVALUEif theFILE_ptrmacro can be used as an lvalue. โ๏ธd_stdio_ptr_lval_nochange_cntโ fromd_stdstdio.U: this symbol is defined if using theFILE_ptrmacro as an lvalue to increase the pointer by n leavesFile_cnt(fp)unchanged. ๐งd_stdio_ptr_lval_sets_cntโ fromd_stdstdio.U: this symbol is defined if using theFILE_ptrmacro as an lvalue to increase the pointer by n has the side effect of decreasing the value ofFile_cnt(fp)by n. ๐ญ consequences, bestied_stdio_stream_arrayโ fromstdio_streams.U: this variable tells whether there is an array holding the stdio streams. ๐๏ธd_stdiobaseโ fromd_stdstdio.U: this variable conditionally definesUSE_STDIO_BASEif this system has aFILEstructure declaring a usable_basefield (or equivalent) instdio.h. ๐งฌd_stdstdioโ fromd_stdstdio.U: this variable conditionally definesUSE_STDIO_PTRif this system has aFILEstructure declaring usable_ptrand_cntfields (or equivalent) instdio.h. ๐งฌd_strcollโ fromd_strcoll.U: ๐
This variable conditionally defines HAS_STRCOLL if strcoll() is available to compare strings using collating information. ๐
d_strerror_lโ fromd_strerror_l.U: this one conditionally definesHAS_STRERROR_L, the symbol that tells your C programstrerror_l()is around to hand back the error message for a givenerrnovalue in a specific locale (identified by alocale_tobject). ๐ฆd_strerror_rโ fromd_strerror_r.U: conditionally definesHAS_STRERROR_R, which tells your C program thatstrerror_r()is available. โจd_strftimeโ fromd_strftime.U: conditionally definesHAS_STRFTIME, which tells your C program thatstrftime()is available. ๐ธd_strlcatโ fromd_strlcat.U: conditionally definesHAS_STRLCAT, which tells your C program thatstrlcat()is available. โจd_strlcpyโ fromd_strlcpy.U: conditionally definesHAS_STRLCPY, which tells your C program thatstrlcpy()is available. โจd_strnlenโ fromd_strnlen.U: conditionally definesHAS_STRNLEN, which tells your C program thatstrnlen()is available. โจd_strtodโ fromd_strtod.U: conditionally definesHAS_STRTOD, which tells your C program thatstrtod()is available to provide better numeric string conversion thanatof(). ๐ฅ (yes bestie, better than atof โ we love an upgrade)d_strtod_lโ fromd_strtod_l.U: conditionally definesHAS_STRTOD_L, which tells your C program thatstrtod_l()is available. โจd_strtolโ fromd_strtol.U: conditionally definesHAS_STRTOL, which tells your C program thatstrtol()is available to provide better numeric string conversion thanatoi()and friends. ๐ฅd_strtoldโ fromd_strtold.U: conditionally definesHAS_STRTOLD, which tells your C program thatstrtold()is available. โจd_strtold_lโ fromd_strtold_l.U: conditionally definesHAS_STRTOLD_L, which tells your C program thatstrtold_l()is available. โจd_strtollโ fromd_strtoll.U: conditionally definesHAS_STRTOLL, which tells your C program thatstrtoll()is available. โจd_strtoqโ fromd_strtoq.U: conditionally definesHAS_STRTOQ, which tells your C program thatstrtoq()is available. โจd_strtoulโ fromd_strtoul.U: conditionally definesHAS_STRTOUL, which tells your C program thatstrtoul()is available to provide conversion of strings to unsigned long. ๐d_strtoullโ fromd_strtoull.U: conditionally definesHAS_STRTOULL, which tells your C program thatstrtoull()is available. โจd_strtouqโ fromd_strtouq.U: conditionally definesHAS_STRTOUQ, which tells your C program thatstrtouq()is available. โจd_strxfrmโ fromd_strxfrm.U: this variable conditionally definesHAS_STRXFRMifstrxfrm()is available to transform strings. ๐ฆd_strxfrm_lโ fromd_strxfrm_l.U: this variable conditionally definesHAS_STRXFRM_Lifstrxfrm_l()is available to transform strings. ๐ฆd_suidsafeโ fromd_dosuid.U: this variable conditionally definesSETUID_SCRIPTS_ARE_SECURE_NOWif setuid scripts can be secure. This test looks in/dev/fd/. ๐๐ (yep, it literally goes peeking in/dev/fd/to check)d_symlinkโ fromd_symlink.U: conditionally definesHAS_SYMLINK, which tells your C program thatsymlink()is available to create symbolic links. ๐d_syscallโ fromd_syscall.U: this variable conditionally definesHAS_SYSCALLifsyscall()is available call arbitrary system calls. ๐ (main character energy: any system call you want)d_syscallprotoโ fromd_syscallproto.U: conditionally definesHAS_SYSCALL_PROTO, which tells your C program that the system provides a prototype for thesyscall()function. Otherwise, it is up to the program to supply one. โญd_sysconfโ fromd_sysconf.U: conditionally definesHAS_SYSCONF, which tells your C program thatsysconf()is available to determine system related limits and options. ๐d_sysernlstโ fromd_strerror.U: this variable conditionally definesHAS_SYS_ERRNOLISTifsys_errnolist[]is available to translate error numbers to the symbolic name. ๐d_syserrlstโ fromd_strerror.U: this variable conditionally definesHAS_SYS_ERRLISTifsys_errlist[]is available to translate error numbers to strings. ๐d_systemโ fromd_system.U: this variable conditionally definesHAS_SYSTEMifsystem()is available to issue a shell command. ๐โจd_tcgetpgrpโ fromd_tcgtpgrp.U: conditionally definesHAS_TCGETPGRP, which tells your C program thattcgetpgrp()is available. to get foreground process group"ID". ๐d_tcsetpgrpโ fromd_tcstpgrp.U: conditionally definesHAS_TCSETPGRP, which tells your C program thattcsetpgrp()is available to set foreground process group"ID". ๐d_telldirโ fromd_readdir.U: this variable conditionally definesHAS_TELLDIRiftelldir()is available. ๐d_telldirprotoโ fromd_telldirproto.U: conditionally definesHAS_TELLDIR_PROTO, which tells your C program that the system provides a prototype for thetelldir()function. Otherwise, it is up to the program to supply one. โญd_tgammaโ fromd_tgamma.U: conditionally definesHAS_TGAMMA, which tells your C program thattgamma()is available for the gamma function. See alsod_lgamma. ๐ธd_thread_localโ fromd_thread_local.U: conditionally defines thePERL_THREAD_LOCALsymbol. In turn that gives a linkage specification for thread-local storage. ๐งต๐ฆd_timeโ fromd_time.U: conditionally defines theHAS_TIMEsymbol, which indicates that thetime()routine exists. Thetime()routine is normally provided on"UNIX"systems. โฐ๐d_timegmโ fromd_timegm.U: conditionally defines theHAS_TIMEGMsymbol, which tells your C program that thetimegm()routine is available. โฐd_timesโ fromd_times.U: conditionally defines theHAS_TIMESsymbol, which indicates that thetimes()routine exists. Thetimes()routine is normally provided on"UNIX"systems. You may have to includesys/times.hโ as in<sys/times.h>. ๐d_tm_tm_gmtoffโ fromi_time.U: this variable conditionally definesHAS_TM_TM_GMTOFF, which indicates to your C program that thestruct tmhas thetm_gmtofffield. ๐d_tm_tm_zoneโ fromi_time.U: this variable conditionally definesHAS_TM_TM_ZONE, which indicates to your C program that thestruct tmhas thetm_zonefield. ๐d_tmpnam_rโ fromd_tmpnam_r.U: conditionally defines theHAS_TMPNAM_Rsymbol, which tells your C program that thetmpnam_r()routine is available. ๐โจd_towlowerโ fromd_towlower.U: conditionally defines theHAS_TOWLOWERsymbol, which tells your C program that thetowlower()routine is available. ๐กd_towupperโ fromd_towupper.U: conditionally defines theHAS_TOWUPPERsymbol, which tells your C program that thetowupper()routine is available. ๐d_truncโ fromd_trunc.U: conditionally defines theHAS_TRUNCsymbol, which tells your C program that thetrunc()routine is available to round doubles towards zero. โ๏ธ๐ฅd_truncateโ fromd_truncate.U: this variable conditionally definesHAS_TRUNCATEiftruncate()is available to truncate files. โ๏ธd_trunclโ fromd_truncl.U: conditionally defines theHAS_TRUNCLsymbol, which tells your C program that thetruncl()routine is available to round long doubles towards zero. Ifcopysignlis also present, we can emulatemodfl. ๐ง โจd_ttyname_rโ fromd_ttyname_r.U: conditionally defines theHAS_TTYNAME_Rsymbol, which tells your C program that thettyname_r()routine is available. ๐ฅ๏ธ๐d_tznameโ fromd_tzname.U: this variable conditionally definesHAS_TZNAMEiftzname[]is available to access timezone names. ๐d_u32alignโ fromd_u32align.U: this variable tells whether you must access character data throughU32-aligned pointers. โ ๏ธ (yes it matters, bestie โ alignment is not a drill)d_ualarmโ fromd_ualarm.U: conditionally defines theHAS_UALARMsymbol, which tells your C program that theualarm()routine is available. โณd_umaskโ fromd_umask.U: conditionally defines theHAS_UMASKsymbol, which tells your C program that theumask()routine is available. to set and get the value of the file creation mask. ๐ญd_unameโ fromd_gethname.U: conditionally defines theHAS_UNAMEsymbol, which tells your C program that theuname()routine may be used to derive the host name. ๐ ๐d_union_semunโ fromd_union_semun.U: this variable conditionally definesHAS_UNION_SEMUNif the unionsemunis defined by including<sys/sem.h>. ๐งฉd_unlinkatโ fromd_fsat.U: conditionally defines theHAS_UNLINKATsymbol, which indicates the"POSIX"unlinkat() function is available. ๐๏ธโจd_unorderedโ fromd_unordered.U: conditionally defines theHAS_UNORDEREDsymbol, which tells your C program that theunordered()routine is available. ๐d_unsetenvโ fromd_unsetenv.U: (okay this one's literally getting cut off right here โ the rest is right there in the next chunk, promise ๐)
This variable conditionally defines the "HAS_UNSETENV" symbol, which indicates to the C program that the unsetenv () routine is available. ๐ซถ
"d_uselocale"โ fromd_uselocale.U: this variable conditionally defines the"HAS_USELOCALE"symbol, which tells your C program that theuselocale()routine is available to set the current locale for the calling thread. ๐งตโจ"d_usleep"โ fromd_usleep.U: this variable conditionally defines"HAS_USLEEP"ifusleep()is available to do high granularity sleeps. ๐ด๐ค"d_usleepproto"โ fromd_usleepproto.U: this variable conditionally defines the"HAS_USLEEP_PROTO"symbol, which means the system actually provides a prototype for theusleep()function. If it doesn't, it's fully on the program to supply one. ๐"d_ustat"โ fromd_ustat.U: this variable conditionally defines"HAS_USTAT"ifustat()is available to query file system statistics bydev_t. ๐"d_vendorarch"โ fromvendorarch.U: this variable conditionally defined"PERL_VENDORARCH". ๐"d_vendorbin"โ fromvendorbin.U: this variable conditionally defines"PERL_VENDORBIN". ๐"d_vendorlib"โ fromvendorlib.U: this variable conditionally defines"PERL_VENDORLIB". ๐"d_vendorscript"โ fromvendorscript.U: this variable conditionally defines"PERL_VENDORSCRIPT". ๐"d_vfork"โ fromd_vfork.U: this variable conditionally defines the"HAS_VFORK"symbol, which says thevfork()routine is available. ๐"d_void_closedir"โ fromd_closedir.U: this variable conditionally defines"VOID_CLOSEDIR"ifclosedir()does not return a value. ๐ณ๏ธ"d_voidsig"โ fromd_voidsig.U: this variable conditionally defines"VOIDSIG"if this system declaresvoid (*signal(...))()in signal.h. The old way was to declare it asint (*signal(...))(). ๐จ"d_voidtty"โ fromi_sysioctl.U: this variable conditionally defines"USE_IOCNOTTY"to indicate that theioctl()call with"TIOCNOTTY"should be used to void tty association. Otherwise (on"USG"probably) it is enough to close the standard file descriptors and do asetpgrp(). ๐ป"d_vsnprintf"โ fromd_snprintf.U: this variable conditionally defines the"HAS_VSNPRINTF"symbol, which indicates to the C program that thevsnprintf ()library function is available. ๐จ๏ธ"d_wait4"โ fromd_wait4.U: this variable conditionally defines theHAS_WAIT4symbol, which indicates thewait4()routine is available. โณ"d_waitpid"โ fromd_waitpid.U: this variable conditionally defines"HAS_WAITPID"ifwaitpid()is available to wait for child process. ๐ถ"d_wcrtomb"โ fromd_wcrtomb.U: this variable conditionally defines the"HAS_WCRTOMB"symbol if thewcrtomb()routine is available to be used to convert a wide character into a multi-byte character. ๐"d_wcscmp"โ fromd_wcscmp.U: this variable conditionally defines the"HAS_WCSCMP"symbol if thewcscmp()routine is available and can be used to compare wide character strings. โ๏ธ"d_wcstombs"โ fromd_wcstombs.U: this variable conditionally defines the"HAS_WCSTOMBS"symbol, which indicates to the C program that thewcstombs()routine is available to convert wide character strings to multibyte strings. ๐"d_wcsxfrm"โ fromd_wcsxfrm.U: this variable conditionally defines the"HAS_WCSXFRM"symbol if thewcsxfrm()routine is available and can be used to compare wide character strings. ๐ช"d_wctomb"โ fromd_wctomb.U: this variable conditionally defines the"HAS_WCTOMB"symbol, which indicates to the C program that thewctomb()routine is available to convert a wide character to a multibyte. ๐ญ"d_writev"โ fromd_writev.U: this variable conditionally defines the"HAS_WRITEV"symbol, which indicates to the C program that thewritev()routine is available. ๐"d_xenix"โ fromGuess.U: this variable conditionally defines the symbol"XENIX", which alerts the C program that it runs under Xenix. ๐ฐ๏ธ"date"โ fromLoc.U: this variable is used internally by Configure to determine the full pathname (if any) of the date program. After Configure runs, the value is reset to a plain"date"and is not useful. ๐"db_hashtype"โ fromi_db.U: this variable contains the type of the hash structure element in the<db.h>header file. In older versions of"DB", it wasint, while in newer ones it isu_int32_t. ๐๏ธ"db_prefixtype"โ fromi_db.U: this variable contains the type of the prefix structure element in the<db.h>header file. In older versions of"DB", it wasint, while in newer ones it issize_t. ๐๏ธ"db_version_major"โ fromi_db.U: this variable contains the major version number of Berkeley"DB"found in the<db.h>header file. ๐ข"db_version_minor"โ fromi_db.U: this variable contains the minor version number of Berkeley"DB"found in the<db.h>header file. For"DB"version 1 this is always0. 0๏ธโฃ"db_version_patch"โ fromi_db.U: this variable contains the patch version number of Berkeley"DB"found in the<db.h>header file. For"DB"version 1 this is always0. ๐ฉน"default_inc_excludes_dot"โ fromdefaultincdot.U: when defined, remove the legacy.from@"INC". ๐ โโ๏ธ"direntrytype"โ fromi_dirent.U: this symbol is set to"struct direct"or"struct dirent"depending on whether dirent is available or not. You should use this pseudo type to portably declare your directory entries. ๐"dlext"โ fromdlext.U: this variable contains the extension that is to be used for the dynamically loaded modules that perl generates. ๐งฉ"dlsrc"โ fromdlsrc.U: this variable contains the name of the dynamic loading file that will be used with the package. ๐ฆ"doubleinfbytes"โ frominfnan.U: this variable contains comma-separated list of hexadecimal bytes for the double precision infinity. โพ๏ธ"doublekind"โ fromlongdblfio.U: this variable, if defined, encodes the type of a double:1="IEEE"754 32-bit little endian2="IEEE"754 32-bit big endian3="IEEE"754 64-bit little endian4="IEEE"754 64-bit big endian5="IEEE"754 128-bit little endian6="IEEE"754 128-bit big endian7="IEEE"754 64-bit mixed endian le-be8="IEEE"754 64-bit mixed endian be-le9="VAX"32bit little endian F float format10="VAX"64bit little endian D float format11="VAX"64bit little endian G float format12="IBM"32bit format13="IBM"64bit format14= Cray 64bit format-1= unknown format ๐
"doublemantbits"โ frommantbits.U: this symbol, if defined, tells how many mantissa bits there are in double precision floating point format. Note that this is usually"DBL_MANT_DIG"minus one, since with the standard"IEEE"754 formats"DBL_MANT_DIG"includes the implicit bit which doesn't really exist. ๐"doublenanbytes"โ frominfnan.U: this variable contains comma-separated list of hexadecimal bytes for the double precision not-a-number. ๐ซ"doublesize"โ fromdoublesize.U: this variable contains the value of the"DOUBLESIZE"symbol, which indicates to the C program how many bytes there are in a double. ๐"drand01"โ fromrandfunc.U: indicates the macro to be used to generate normalized random numbers. Uses randfunc, often divided by(double) (((unsigned long) 1 << randbits))in order to normalize the result. In C programs, the macro"Drand01"is mapped to drand01. ๐ฒ"drand48_r_proto"โ fromd_drand48_r.U: this variable encodes the prototype of drand48_r. It is zero if d_drand48_r is undef, and one of the"REENTRANT_PROTO_T_ABC"macros of reentr.h if d_drand48_r is defined. ๐งฌ"dtrace"โ fromusedtrace.U: this variable holds the location of the dtrace executable. ๐"dtraceobject"โ fromdtraceobject.U: whether we need to build an object file with the dtrace tool. ๐ ๏ธ"dtracexnolibs"โ fromdtraceobject.U: whether dtrace accepts-xnolibs. If available we calldtrace -handdtrace -Gwith-xnolibsto allow dtrace to run in a jail on FreeBSD. ๐๏ธ"dynamic_ext"โ fromExtensions.U: this variable holds a list of"XS"extension files we want to link dynamically into the package. It is used by Makefile. ๐งต
e โจ
"eagain"โ fromnblock_io.U: this variable bears the symbolic errno code set byread()when no data is present on the file and non-blocking I/O was enabled (otherwise,read()blocks naturally). โธ๏ธ"ebcdic"โ fromebcdic.U: this variable conditionally defines"EBCDIC"if this system uses"EBCDIC"encoding. ๐๏ธ"echo"โ fromLoc.U: this variable is used internally by Configure to determine the full pathname (if any) of the echo program. After Configure runs, the value is reset to a plain"echo"and is not useful. ๐"egrep"โ fromLoc.U: this variable is used internally by Configure to determine the full pathname (if any) of the egrep program. After Configure runs, the value is reset to a plain"egrep"and is not useful. ๐"emacs"โ fromLoc.U: this variable is defined but not used by Configure. The value is the empty string and is not useful. ๐ซฅ"endgrent_r_proto"โ fromd_endgrent_r.U: this variable encodes the prototype of endgrent_r. It is zero if d_endgrent_r is undef, and one of the"REENTRANT_PROTO_T_ABC"macros of reentr.h if d_endgrent_r is defined. ๐งฌ"endhostent_r_proto"โ fromd_endhostent_r.U: this variable encodes the prototype of endhostent_r. It is zero if d_endhostent_r is undef, and one of the"REENTRANT_PROTO_T_ABC"macros of reentr.h if d_endhostent_r is defined. ๐งฌ"endnetent_r_proto"โ fromd_endnetent_r.U: this variable encodes the prototype of endnetent_r. It is zero if d_endnetent_r is undef, and one of the"REENTRANT_PROTO_T_ABC"macros of reentr.h if d_endnetent_r is defined. ๐งฌ"endprotoent_r_proto"โ fromd_endprotoent_r.U: this variable encodes the prototype of endprotoent_r. It is zero if d_endprotoent_r is undef, and one of the"REENTRANT_PROTO_T_ABC"macros of reentr.h if d_endprotoent_r is defined. ๐งฌ
endpwent_r_proto
From d_endpwent_r.U:
This one is the prototype-encoder for endpwent_r ๐ซ It clocks in at zero if d_endpwent_r is undef, and if d_endpwent_r is defined it's one of the REENTRANT_PROTO_T_ABC macros living in reentr.h. that's it, that's the whole vibe ๐
endservent_r_proto
From d_endservent_r.U:
Same energy, different function โจ this encodes the prototype of endservent_r. It's zero when d_endservent_r is undef, and one of the REENTRANT_PROTO_T_ABC macros of reentr.h when d_endservent_r is defined. iconic, consistent, we love her ๐
eunicefix
From Init.U:
Ok so when you're running under Eunice, this variable holds a command that converts a shell script into the proper form of text file so the shell can actually execute it ๐ธ On every other system? It's a no-op. literally does nothing, bestie, it's just vibing ๐
exe_ext
From Unix.U:
An old synonym for _exe ๐ฆ yeah. that's the whole description. throwback era.
expr
From Loc.U:
This variable is used internally by Configure to figure out the full pathname (if any) of the expr program ๐ But heads up: after Configure finishes running, the value gets reset to a plain expr and is genuinely not useful anymore. so don't come for her after the build, she's retired ๐
extensions
From Extensions.U:
This variable holds a list of all extension files (both XS and non-xs) installed with the package ๐ It gets propagated through to Config.pm, and the typical glow-up use case is testing whether a particular extension is available. very "is my fave installed" energy ๐ง
extern_C
From Csym.U:
ANSI C wants extern where C++ wants 'extern "C"' ๐ญ so this variable exists so Configure can do the right thing. honestly a lifesaver fr fr.
extras
From Extras.U:
This variable holds a list of extra modules to install ๐ short, sweet, slays.
โจ f โจ
fflushNULL
From fflushall.U:
This symbol, if defined, tells you that fflush("NULL") correctly flushes all pending stdio output with zero side effects ๐ซถ But โ and this is the gag โ on some platforms, calling fflush("NULL") *still* corrupts STDIN if it happens to be a pipe ๐ญ so not everyone gets to be blessed with this one.
fflushall
From fflushall.U:
This symbol, if defined, tells you that to flush all pending stdio output you have to loop through every single stdio file handle stored in an array and fflush them one by one ๐ so, manual labour. Also important: if fflushNULL is defined, then fflushall will not even be probed for and will be left undefined. no probe, no nothing, she's just not invited ๐
find
From Loc.U:
This variable is defined but not used by Configure ๐ The value is the empty string and is not useful. that's the whole lore.
firstmakefile
From Unix.U:
This variable defines the first file searched by make ๐ On unix, it's makefile (and then Makefile). On case-insensitive systems it might be something else entirely. It's only used to deal with convoluted make depend tricks. messy legacy behaviour, but she serves.
flex
From Loc.U:
Defined but not used by Configure ๐ the value is the empty string and is not useful. twin of find, honestly.
fpossize
From fpossize.U:
This variable contains the size of a fpostype in bytes ๐
fpostype
From fpostype.U:
This variable defines Fpos_t to be something like fpos_t, long, uint, or whatever type is used to declare file positions in libc ๐ธ like, whatever libc decided that day, bestie.
freetype
From mallocsrc.U:
This variable contains the return type of free() โจ It's usually void, but occasionally int. the occasional int is giving chaos but okay ๐
from
From Cross.U:
This variable contains the command Configure uses to copy files from the target host ๐ฆ Useful and available only during Perl build. The string ":" if not cross-compiling.
full_ar
From Loc_ar.U:
This variable contains the full pathname to ar, whether or not the user has specified portability ๐ This is only used in the Makefile.SH.
full_csh
From d_csh.U:
This variable contains the full pathname to csh, whether or not the user has specified portability ๐ธ This one is only used in the compiled C program, and we assume that all systems which can share this executable will have the same full pathname to csh. bold assumption, iconic confidence ๐
full_sed
From Loc_sed.U:
This variable contains the full pathname to sed, whether or not the user has specified portability โจ This is only used in the compiled C program, and we assume that all systems which can share this executable will have the same full pathname to sed. same energy as full_csh, matching set ๐ซถ
๐ซ g ๐ซ
gccansipedantic
From gccvers.U:
If "GNU" cc (gcc) is being used, this variable will enable (if set) the -ansi and -pedantic ccflags for building core files (through the cflags script) ๐ค (See Porting/pumpkin.pod for full description). strict mode activated fr.
gccosandvers
From gccvers.U:
If "GNU" cc (gcc) is being used, this variable holds the operating system and version that were used to compile gcc ๐ It's set to '' if it's not gcc, or if nothing useful can be parsed as the os version. so sometimes it's just empty and we move on ๐
gccversion
From gccvers.U:
If "GNU" cc (gcc) is being used, this variable holds 1 or 2 to indicate whether the compiler is version 1 or version 2 ๐ This is used in setting some of the default cflags. It's set to '' if it's not gcc.
getgrent_r_proto
From d_getgrent_r.U:
This variable encodes the prototype of getgrent_r โจ It's zero if d_getgrent_r is undef, and one of the REENTRANT_PROTO_T_ABC macros of reentr.h if d_getgrent_r is defined.
getgrgid_r_proto
From d_getgrgid_r.U:
Same deal, bestie ๐ this encodes the prototype of getgrgid_r. Zero if d_getgrgid_r is undef, one of the REENTRANT_PROTO_T_ABC macros of reentr.h if d_getgrgid_r is defined.
getgrnam_r_proto
From d_getgrnam_r.U:
This variable encodes the prototype of getgrnam_r ๐ Zero if d_getgrnam_r is undef, and one of the REENTRANT_PROTO_T_ABC macros of reentr.h if d_getgrnam_r is defined.
gethostbyaddr_r_proto
From d_gethostbyaddr_r.U:
This variable encodes the prototype of gethostbyaddr_r ๐ธ It's zero if d_gethostbyaddr_r is undef, and one of the REENTRANT_PROTO_T_ABC macros of reentr.h if d_gethostbyaddr_r is defined.
gethostbyname_r_proto
From d_gethostbyname_r.U:
This variable encodes the prototype of gethostbyname_r โจ Zero if d_gethostbyname_r is undef, and one of the REENTRANT_PROTO_T_ABC macros of reentr.h if d_gethostbyname_r is defined.
gethostent_r_proto
From d_gethostent_r.U:
This variable encodes the prototype of gethostent_r ๐ฆ Zero if d_gethostent_r is undef, and one of the REENTRANT_PROTO_T_ABC macros of reentr.h if d_gethostent_r is defined.
getlogin_r_proto
From d_getlogin_r.U:
This variable encodes the prototype of getlogin_r ๐ Zero if d_getlogin_r is undef, and one of the REENTRANT_PROTO_T_ABC macros of reentr.h if d_getlogin_r is defined.
getnetbyaddr_r_proto
From d_getnetbyaddr_r.U:
This variable encodes the prototype of getnetbyaddr_r ๐ Zero if d_getnetbyaddr_r is undef, and one of the REENTRANT_PROTO_T_ABC macros of reentr.h if d_getnetbyaddr_r is defined.
getnetbyname_r_proto
From d_getnetbyname_r.U:
This variable encodes the prototype of getnetbyname_r ๐ Zero if d_getnetbyname_r is undef, and one of the REENTRANT_PROTO_T_ABC macros of reentr.h if d_getnetbyname_r is defined.
getnetent_r_proto
From d_getnetent_r.U:
This variable encodes the prototype of getnetent_r โญ Zero if d_getnetent_r is undef, and one of the REENTRANT_PROTO_T_ABC macros of reentr.h if d_getnetent_r is defined.
getprotobyname_r_proto
From d_getprotobyname_r.U:
This variable encodes the prototype of getprotobyname_r ๐ Zero if d_getprotobyname_r is undef, and one of the REENTRANT_PROTO_T_ABC macros of reentr.h if d_getprotobyname_r is defined.
getprotobynumber_r_proto
From d_getprotobynumber_r.U:
This variable encodes the prototype of getprotobynumber_r ๐ซ Zero if d_getprotobynumber_r is undef, and one of the REENTRANT_PROTO_T_ABC macros of reentr.h if d_getprotobynumber_r is defined.
getprotoent_r_proto
From d_getprotoent_r.U:
This variable encodes the prototype of getprotoent_r ๐ธ Zero if d_getprotoent_r is undef, and one of the REENTRANT_PROTO_T_ABC macros of reentr.h if d_getprotoent_r is defined.
getpwent_r_proto
From d_getpwent_r.U:
This variable encodes the prototype of getpwent_r โจ Zero if d_getpwent_r is undef, and one of the REENTRANT_PROTO_T_ABC macros of reentr.h if d_getpwent_r is defined.
getpwnam_r_proto
From d_getpwnam_r.U:
This variable encodes the prototype of getpwnam_r ๐ Zero if d_getpwnam_r is undef, and one of the REENTRANT_PROTO_T_ABC macros of reentr.h if d_getpwnam_r is defined.
getpwuid_r_proto
From d_getpwuid_r.U:
This variable encodes the prototype of getpwuid_r ๐ Zero if d_getpwuid_r is undef, and one of the REENTRANT_PROTO_T_ABC macros of reentr.h if d_getpwuid_r is defined.
getservbyname_r_proto
From d_getservbyname_r.U:
This variable encodes the prototype of getservbyname_r ๐ฆ Zero if d_getservbyname_r is undef, and one of the REENTRANT_PROTO_T_ABC macros of reentr.h if d_getservbyname_r is defined.
getservbyport_r_proto
From d_getservbyport_r.U:
This variable encodes the prototype of getservbyport_r ๐ Zero if d_getservbyport_r is undef, and one of the REENTRANT_PROTO_T_ABC macros of reentr.h if d_getservbyport_r is defined.
getservent_r_proto
From d_getservent_r.U:
This variable encodes the prototype of getservent_r ๐ Zero if d_getservent_r is undef, and one of the REENTRANT_PROTO_T_ABC macros of reentr.h if d_getservent_r is defined.
getspnam_r_proto
From d_getspnam_r.U:
This variable encodes the prototype of getspnam_r ๐ Zero if d_getspnam_r is undef, and one of the REENTRANT_PROTO_T_ABC macros of reentr.h if d_getspnam_r is defined.
ok not me clocking that this entire _r_proto run is the same sentence twenty-something times ๐ but bestie that's the assignment, every single one gets to be named and every single one gets to be correct. no skipping, no summarising, periodt ๐
gidformat
From gidf.U:
This variable contains the format string used for printing a Gid_t ๐จ๏ธโจ
gidsign
From gidsign.U:
This variable contains the signedness of a gidtype ๐ธ It's 1 for unsigned, -1 for signed. so, a vibe check in integer form.
gidsize
From gidsize.U:
This variable contains the size of a gidtype in bytes ๐
gidtype
From gidtype.U:
This variable defines Gid_t to be something like gid_t, int, ushort, or whatever type is used to declare the return type of getgid() ๐ Typically, it's the type of group ids in the kernel. mysterious, powerful, we stan.
glibpth
From libpth.U:
and that's where this part leaves us โ the description for glibpth is literally cut off mid-entry, so hold that thought, bestie, it's coming right up in the next bit ๐ซถ
So like, this variable holds the general path (space-separated) that's used to find libraries ๐ and heads up โ it may contain directories that do not exist on this platform, libpth is the cleaned-up version. โจ
"gmake"โ fromLoc.U: this one is used internally by Configure to figure out the full pathname (if any) of thegmakeprogram. After Configure runs, the value gets reset to a plain"gmake"and is not useful. ๐"gmtime_r_proto"โ fromd_gmtime_r.U: this variable encodes the prototype ofgmtime_r. It's zero ifd_gmtime_ris undef, and one of the"REENTRANT_PROTO_T_ABC"macros ofreentr.hifd_gmtime_ris defined. ๐ง"gnulibc_version"โ fromd_gnulibc.U: contains the version number of the"GNU"C library. Usually it's something like2.2.5. It's a plain''if this isn't the"GNU"C library, or if the version is unknown. ๐ซถ"grep"โ fromLoc.U: used internally by Configure to pin down the full pathname (if any) of thegrepprogram. After Configure runs, the value is reset to a plain"grep"and is not useful. ๐ธ"groupcat"โ fromnis.U: this one holds a command that produces the text of the/etc/groupfile ๐. Normally it'scat /etc/group, but it can beypcat groupwhen"NIS"is used. On some systems, like os390, there may be no equivalent command, in which case this variable is unset. ๐ญ"groupstype"โ fromgroupstype.U: this variable definesGroups_tto be something likegid_t,int,ushort, or whatever type is used for the second argument togetgroups()andsetgroups(). Usually it's the same asgidtype(gid_t), but sometimes it isn't. ๐"gzip"โ fromLoc.U: used internally by Configure to determine the full pathname (if any) of thegzipprogram. After Configure runs, the value is reset to a plain"gzip"and is not useful. ๐
๐ h ๐
"h_fcntl"โ fromh_fcntl.U: this variable gets set in various places to telli_fcntlthat<fcntl.h>should be included. ๐"h_sysfile"โ fromh_sysfile.U: gets set in various places to telli_sys_filethat<sys/file.h>should be included. โจ"hint"โ fromOldconfig.U: gives the type of hints used for previous answers. May be one of"default","recommended"or"previous". ๐"hostcat"โ fromnis.U: contains a command that produces the text of the/etc/hostsfile ๐. Normallycat /etc/hosts, but it can beypcat hostswhen"NIS"is used. On some systems, such as os390, there may be no equivalent command, in which case this variable is unset. ๐ญ"hostgenerate"โ fromCross.U: the path to agenerate_uudmapbinary that can be run on the host"OS"when cross-compiling ๐ฆ. Useful and available only during Perl build. Empty string''if not cross-compiling."hostosname"โ fromCross.U: the original value of$^Ofor hostperl when cross-compiling. Super useful for picking the proper tools when running build code in the host ๐ ๏ธ. Empty string''if not cross-compiling."hostperl"โ fromCross.U: the path to a miniperl binary that can be run on the host"OS"when cross-compiling. Useful and available only during Perl build. Empty string''if not cross-compiling. ๐ง"html1dir"โ fromhtml1dir.U: the name of the directory where html source pages are to be put ๐. This one's for pages that describe whole programs, not libraries or modules โ it's meant to roughly correspond to section 1 of the Unix manuals."html1direxp"โ fromhtml1dir.U: same as thehtml1dirvariable, but filename expanded at configuration time, for convenient use in makefiles. ๐"html3dir"โ fromhtml3dir.U: the directory where html source pages go ๐ โ this one's for pages describing libraries or modules, and it's intended to roughly correspond to section 3 of the Unix manuals."html3direxp"โ fromhtml3dir.U: same as thehtml3dirvariable, but filename expanded at configuration time, for convenient use in makefiles. โจ
๐ฆ i ๐ฆ
"i16size"โ fromperlxv.U: the size of an I16 in bytes. ๐"i16type"โ fromperlxv.U: the C type used for Perl's I16. ๐"i32dformat"โ fromperlx32f.U: the format string used for printing a Perl I32 as a signed decimal integer. ๐ข"i32size"โ fromperlxv.U: the size of an I32 in bytes. ๐"i32type"โ fromperlxv.U: the C type used for Perl's I32. ๐"i64size"โ fromperlxv.U: the size of an I64 in bytes. ๐"i64type"โ fromperlxv.U: the C type used for Perl's I64. ๐"i8size"โ fromperlxv.U: the size of an I8 in bytes. ๐"i8type"โ fromperlxv.U: the C type used for Perl's I8. ๐"i_arpainet"โ fromi_arpainet.U: conditionally defines the"I_ARPA_INET"symbol, and indicates whether a C program should include<arpa/inet.h>. ๐"i_bfd"โ fromi_bfd.U: conditionally defines the"I_BFD"symbol, and indicates whether a C program can include<bfd.h>. ๐ฅ"i_bsdioctl"โ fromi_sysioctl.U: conditionally defines the"I_SYS_BSDIOCTL"symbol, which tells the C program that<sys/bsdioctl.h>exists and should be included. โจ"i_crypt"โ fromi_crypt.U: conditionally defines the"I_CRYPT"symbol, and indicates whether a C program should include<crypt.h>. ๐"i_db"โ fromi_db.U: conditionally defines the"I_DB"symbol, and indicates whether a C program may include Berkeley's"DB"include file<db.h>. ๐๏ธ"i_dbm"โ fromi_dbm.U: conditionally defines the"I_DBM"symbol, which tells the C program that<dbm.h>exists and should be included. ๐พ"i_dirent"โ fromi_dirent.U: conditionally defines"I_DIRENT", which indicates to the C program that it should include<dirent.h>. ๐"i_dlfcn"โ fromi_dlfcn.U: conditionally defines the"I_DLFCN"symbol, which tells the C program that<dlfcn.h>exists and should be included. ๐งฉ"i_execinfo"โ fromi_execinfo.U: conditionally defines the"I_EXECINFO"symbol, and indicates whether a C program may include<execinfo.h>, forbacktrace()support. ๐ช"i_fcntl"โ fromi_fcntl.U: this variable controls the value of"I_FCNTL"(which tells the C program to include<fcntl.h>). ๐๏ธ"i_fenv"โ fromi_fenv.U: conditionally defines the"I_FENV"symbol, which tells the C program that<fenv.h>exists and should be included. ๐"i_fp"โ fromi_fp.U: conditionally defines the"I_FP"symbol, and indicates whether a C program should include<fp.h>. ๐งฎ"i_fp_class"โ fromi_fp_class.U: conditionally defines the"I_FP_CLASS"symbol, and indicates whether a C program should include<fp_class.h>. ๐"i_gdbm"โ fromi_gdbm.U: conditionally defines the"I_GDBM"symbol, which tells the C program that<gdbm.h>exists and should be included. ๐๏ธ"i_gdbm_ndbm"โ fromi_ndbm.U: conditionally defines the"I_GDBM_NDBM"symbol, which tells the C program that<gdbm-ndbm.h>exists and should be included. This is the location of the ndbm.h compatibility file in Debian 4.0. ๐ง"i_gdbmndbm"โ fromi_ndbm.U: conditionally defines the"I_GDBMNDBM"symbol, which tells the C program that<gdbm/ndbm.h>exists and should be included. This was the location of the ndbm.h compatibility file in RedHat 7.1. ๐ฉ"i_grp"โ fromi_grp.U: conditionally defines the"I_GRP"symbol, and indicates whether a C program should include<grp.h>. ๐ฅ"i_ieeefp"โ fromi_ieeefp.U: conditionally defines the"I_IEEEFP"symbol, and indicates whether a C program should include<ieeefp.h>. ๐งฎ"i_inttypes"โ fromi_inttypes.U: conditionally defines the"I_INTTYPES"symbol, and indicates whether a C program should include<inttypes.h>. ๐ข"i_langinfo"โ fromi_langinfo.U: conditionally defines the"I_LANGINFO"symbol, and indicates whether a C program should include<langinfo.h>. ๐"i_libutil"โ fromi_libutil.U: conditionally defines the"I_LIBUTIL"symbol, and indicates whether a C program should include<libutil.h>. ๐งฐ"i_locale"โ fromi_locale.U: conditionally defines the"I_LOCALE"symbol, and indicates whether a C program should include<locale.h>. ๐บ๏ธ"i_machcthr"โ fromi_machcthr.U: conditionally defines the"I_MACH_CTHREADS"symbol, and indicates whether a C program should include<mach/cthreads.h>. ๐งต"i_malloc"โ fromi_malloc.U: conditionally defines the"I_MALLOC"symbol, and indicates whether a C program should include<malloc.h>. ๐ง"i_mallocmalloc"โ fromi_mallocmalloc.U: conditionally defines the"I_MALLOCMALLOC"symbol, and indicates whether a C program should include<malloc/malloc.h>. ๐"i_mntent"โ fromi_mntent.U: conditionally defines the"I_MNTENT"symbol, and indicates whether a C program should include<mntent.h>. ๐ฝ"i_ndbm"โ fromi_ndbm.U: conditionally defines the"I_NDBM"symbol, which tells the C program that<ndbm.h>exists and should be included. ๐๏ธ"i_netdb"โ fromi_netdb.U: conditionally defines the"I_NETDB"symbol, and indicates whether a C program should include<netdb.h>. ๐"i_neterrno"โ fromi_neterrno.U:
This variable conditionally defines the I_NET_ERRNO symbol, which is basically telling your C program that <net/errno.h> exists and should be included. โจ
i_netinettcpโ Fromi_netinettcp.U: this variable conditionally defines theI_NETINET_TCPsymbol, and it's like a little flag telling your C program whether to include<netinet/tcp.h>. ๐i_niinโ Fromi_niin.U: this one conditionally definesI_NETINET_IN, which tells your C program to include<netinet/in.h>. Otherwise, you might try<sys/in.h>. ๐i_pollโ Fromi_poll.U: conditionally definesI_POLL, and says whether a C program should include<poll.h>. ๐ธi_protโ Fromi_prot.U: conditionally definesI_PROT, and says whether a C program should include<prot.h>. โจi_pthreadโ Fromi_pthread.U: conditionally definesI_PTHREAD, and says whether a C program should include<pthread.h>. ๐i_pwdโ Fromi_pwd.U: conditionally definesI_PWD, which tells your C program to include<pwd.h>. ๐i_quadmathโ Fromi_quadmath.U: conditionally definesI_QUADMATH, which tells your C program to include<quadmath.h>. ๐ฅi_rpcsvcdbmโ Fromi_dbm.U: conditionally defines theI_RPCSVC_DBMsymbol, which tells your C program that<rpcsvc/dbm.h>exists and should be included. Some System V systems might need this instead of<dbm.h>. ๐i_sgttyโ Fromi_termio.U: conditionally defines theI_SGTTYsymbol, which tells your C program to include<sgtty.h>rather than<termio.h>. ๐i_shadowโ Fromi_shadow.U: conditionally definesI_SHADOW, and says whether a C program should include<shadow.h>. ๐ธi_socksโ Fromi_socks.U: conditionally definesI_SOCKS, and says whether a C program should include<socks.h>. ๐งi_stdboolโ Fromi_stdbool.U: conditionally defines theI_STDBOOLsymbol, which tells your C program that<stdbool.h>exists and should be included. ๐i_stdckdintโ Fromi_stdckdint.U: conditionally defines theI_STDCKDINTsymbol, which tells your C program that<stdckdint.h>exists and should be included. โจi_stdintโ Fromi_stdint.U: conditionally defines theI_STDINTsymbol, which tells your C program that<stdint.h>exists and should be included. ๐ฆi_stdlibโ Fromi_stdlib.U: this one unconditionally defines theI_STDLIBsymbol. No ifs, ands, or buts. ๐i_sunmathโ Fromi_sunmath.U: conditionally defines theI_SUNMATHsymbol, and says whether a C program should include<sunmath.h>. ๐i_sysaccessโ Fromi_sysaccess.U: conditionally defines theI_SYS_ACCESSsymbol, and says whether a C program should include<sys/access.h>. ๐i_sysdirโ Fromi_sysdir.U: conditionally defines theI_SYS_DIRsymbol, and says whether a C program should include<sys/dir.h>. ๐i_sysfileโ Fromi_sysfile.U: conditionally defines theI_SYS_FILEsymbol, and says whether a C program should include<sys/file.h>to getR_OKand friends. ๐ฏi_sysfilioโ Fromi_sysioctl.U: conditionally defines theI_SYS_FILIOsymbol, which tells your C program that<sys/filio.h>exists and should be included in preference to<sys/ioctl.h>. ๐i_sysinโ Fromi_niin.U: conditionally definesI_SYS_IN, which tells your C program to include<sys/in.h>instead of<netinet/in.h>. ๐i_sysioctlโ Fromi_sysioctl.U: conditionally defines theI_SYS_IOCTLsymbol, which tells your C program that<sys/ioctl.h>exists and should be included. โ๏ธi_syslogโ Fromi_syslog.U: conditionally definesI_SYSLOG, and says whether a C program should include<syslog.h>. ๐i_sysmmanโ Fromi_sysmman.U: conditionally definesI_SYS_MMAN, and says whether a C program should include<sys/mman.h>. ๐งi_sysmodeโ Fromi_sysmode.U: conditionally definesI_SYSMODE, and says whether a C program should include<sys/mode.h>. ๐๏ธi_sysmountโ Fromi_sysmount.U: conditionally definesI_SYSMOUNT, and says whether a C program should include<sys/mount.h>. ๐๏ธi_sysndirโ Fromi_sysndir.U: conditionally defines theI_SYS_NDIRsymbol, and says whether a C program should include<sys/ndir.h>. ๐i_sysparamโ Fromi_sysparam.U: conditionally defines theI_SYS_PARAMsymbol, and says whether a C program should include<sys/param.h>. โ๏ธi_syspollโ Fromi_syspoll.U: conditionally defines theI_SYS_POLLsymbol, which tells your C program to include<sys/poll.h>. ๐ณ๏ธi_sysrandomโ Fromi_sysrandom.U: conditionally defines theI_SYS_RANDOMsymbol, and says whether a C program should include<sys/random.h>. ๐ฒi_sysresrcโ Fromi_sysresrc.U: conditionally defines theI_SYS_RESOURCEsymbol, and says whether a C program should include<sys/resource.h>. ๐i_syssecrtโ Fromi_syssecrt.U: conditionally defines theI_SYS_SECURITYsymbol, and says whether a C program should include<sys/security.h>. ๐i_sysselctโ Fromi_sysselct.U: conditionally definesI_SYS_SELECT, which tells your C program to include<sys/select.h>in order to get the definition ofstruct timeval. โฑ๏ธi_syssockioโ Fromi_sysioctl.U: conditionally definesI_SYS_SOCKIOto indicate to the C program that socket ioctl codes may be found in<sys/sockio.h>instead of<sys/ioctl.h>. ๐ฆi_sysstatโ Fromi_sysstat.U: conditionally defines theI_SYS_STATsymbol, and says whether a C program should include<sys/stat.h>. ๐i_sysstatfsโ Fromi_sysstatfs.U: conditionally defines theI_SYSSTATFSsymbol, and says whether a C program should include<sys/statfs.h>. ๐i_sysstatvfsโ Fromi_sysstatvfs.U: conditionally defines theI_SYSSTATVFSsymbol, and says whether a C program should include<sys/statvfs.h>. ๐พi_syssyscallโ Fromi_syssyscall.U: conditionally defines theI_SYS_SYSCALLsymbol, and says whether a C program should include<sys/syscall.h>. ๐i_systimeโ Fromi_time.U: conditionally definesI_SYS_TIME, which tells your C program to include<sys/time.h>. ๐ฐ๏ธi_systimekโ Fromi_time.U: conditionally definesI_SYS_TIME_KERNEL, which tells your C program to include<sys/time.h>with"KERNEL"defined. ๐งi_systimesโ Fromi_systimes.U: conditionally defines theI_SYS_TIMESsymbol, and says whether a C program should include<sys/times.h>. โณi_systypesโ Fromi_systypes.U: conditionally defines theI_SYS_TYPESsymbol, and says whether a C program should include<sys/types.h>. ๐i_sysuioโ Fromi_sysuio.U: conditionally defines theI_SYSUIOsymbol, and says whether a C program should include<sys/uio.h>. ๐i_sysunโ Fromi_sysun.U: conditionally definesI_SYS_UN, which tells your C program to include<sys/un.h>to get"UNIX"domain socket definitions. ๐i_sysutsnameโ Fromi_sysutsname.U: conditionally defines theI_SYSUTSNAMEsymbol, and says whether a C program should include<sys/utsname.h>. ๐ฅ๏ธi_sysvfsโ Fromi_sysvfs.U: conditionally defines theI_SYSVFSsymbol, and says whether a C program should include<sys/vfs.h>. ๐๏ธi_syswaitโ Fromi_syswait.U: conditionally definesI_SYS_WAIT, which tells your C program to include<sys/wait.h>. โณi_termioโ Fromi_termio.U: conditionally defines theI_TERMIOsymbol, which tells your C program to include<termio.h>rather than<sgtty.h>. โจ๏ธi_termiosโ Fromi_termio.U: conditionally defines theI_TERMIOSsymbol, which tells your C program that the"POSIX"<termios.h>file is to be included. ๐งi_timeโ Fromi_time.U: unconditionally definesI_TIME, which tells your C program to include<time.h>. โฐi_unistdโ Fromi_unistd.U: conditionally defines theI_UNISTDsymbol, and says whether a C program should include<unistd.h>. ๐i_ustatโ Fromi_ustat.U: conditionally defines theI_USTATsymbol, and says whether a C program should include<ustat.h>. ๐i_utimeโ Fromi_utime.U: conditionally defines theI_UTIMEsymbol, and says whether a C program should include<utime.h>. โฒ๏ธi_vforkโ Fromi_vfork.U: conditionally defines theI_VFORKsymbol, and says whether a C program should includevfork.h. ๐ฟi_wcharโ Fromi_wchar.U: conditionally defines theI_WCHARsymbol, which indicates whether a C program may include<wchar.h>. ๐i_wctypeโ Fromi_wctype.U: conditionally defines theI_WCTYPEsymbol, which indicates whether a C program may include<wctype.h>. ๐คi_xlocaleโ Fromd_newlocale.U: this symbol, if defined, indicates to the C program that the headerxlocale.his available. See alsoxlocale_needed. ๐ignore_versioned_solibsโ Fromlibs.U:
If non-versioned shared libraries (libfoo.so.x.y) are a thing you want straight-up IGNORED โ because bestie, you literally cannot link against them โ then this variable should be non-empty. That's the whole vibe check. ๐
inc_version_listโ frominc_version_list.U: this one holds the list of subdirectories thatperl.c:incpush()andlib/lib.pmwill automatically search through when they're adding directories to@"INC". Elements in the list are separated by spaces ๐ซถ. It's only useful if you've got a perl library directory tree structured like the default one โ see"INSTALL"for how that whole thing works. The versionedsite_perldirectory showed up in 5.005, so that's the lowest possible value, no cap. โจ
This list includes architecture-dependent directories all the way back to version $api_versionstring (e.g. 5.5.640) and architecture-independent directories all the way back to 5.005. Iconic range tbh. ๐
inc_version_list_initโ frominc_version_list.U: holds the same list asinc_version_list, but every single item is wrapped in double quotes and separated by commas, so it's suitable for use in the"PERL_INC_VERSION_LIST"initialization. Same energy, different outfit. ๐incpathโ fromusrinc.U: this variable must come BEFORE the normal include path to get the right one, like in$incpath/usr/includeor$incpath/usr/lib. Value can be""or/bsd43on mips. ๐incpthโ fromlibpth.U: this variable must come BEFORE the normal include path to get the right one, like in$incpath/usr/includeor$incpath/usr/lib. Value can be""or/bsd43on mips. Yep, she's giving identical twin energy withincpathโ not a typo on my end, they really do read the same. ๐inewsโ fromLoc.U: this variable is defined but not used by Configure. The value is the empty string and it is not useful. It's giving background character. ๐initialinstalllocationโ frombin.U: whenuserelocatableincis true, this variable holds the location thatmake installshould copy the perl binary to, with all the run-time relocatable paths calculated from this at install time. When it's used, it gets initialized to the original value ofbinexp, and thenbinexpis set to.../, since the other binaries are found relative to the perl binary. Relocatable queen. ๐installarchlibโ fromarchlib.U: this variable is really the same asarchlibexp, but it may differ on those systems usingAFS. For extra portability, only this variable should be used in makefiles. Got it, bestie: makefiles getinstall*, periodt. โญinstallbinโ frombin.U: this variable is the same asbinexpunlessAFSis running, in which case the user is explicitly prompted for it. This variable should ALWAYS be used in your makefiles for maximum portability. ๐ฅinstallhtml1dirโ fromhtml1dir.U: really the same ashtml1direxp, unless you're using a differentinstallprefix. For extra portability, you should only use this variable within your makefiles. ๐ฆinstallhtml3dirโ fromhtml3dir.U: really the same ashtml3direxp, unless you're using a differentinstallprefix. For extra portability, you should only use this variable within your makefiles. ๐ฆinstallman1dirโ fromman1dir.U: really the same asman1direxp, unless you're usingAFS, in which case it points to the read/write location whereasman1direxponly points to the read-only access location. For extra portability, you should only use this variable within your makefiles. ๐ธinstallman3dirโ fromman3dir.U: really the same asman3direxp, unless you're usingAFS, in which case it points to the read/write location whereasman3direxponly points to the read-only access location. For extra portability, you should only use this variable within your makefiles. ๐ธinstallprefixโ frominstallprefix.U: holds the name of the directory below whichmake installwill install the package. For most users this is the same asprefix. But it's useful for installing the software into a different (usually temporary) location, after which it can be bundled up and moved somehow to the final location specified byprefix. Staging directory main character energy. ๐installprefixexpโ frominstallprefix.U: holds the full absolute path ofinstallprefixwith all~-expansion done. Glow-up complete. โจinstallprivlibโ fromprivlib.U: really the same asprivlibexp, but it may differ on those systems usingAFS. For extra portability, only this variable should be used in makefiles. ๐installscriptโ fromscriptdir.U: usually the same asscriptdirexp, unless you're on a system runningAFS, in which case they may differ slightly. You should always use this variable within your makefiles for portability. ๐installsitearchโ fromsitearch.U: really the same assitearchexp, but it may differ on those systems usingAFS. For extra portability, only this variable should be used in makefiles. ๐installsitebinโ fromsitebin.U: usually the same assitebinexp, unless you're on a system runningAFS, in which case they may differ slightly. You should always use this variable within your makefiles for portability. ๐installsitehtml1dirโ fromsitehtml1dir.U: really the same assitehtml1direxp, unless you're usingAFS, in which case it points to the read/write location whereashtml1direxponly points to the read-only access location. For extra portability, you should only use this variable within your makefiles. ๐ฆinstallsitehtml3dirโ fromsitehtml3dir.U: really the same assitehtml3direxp, unless you're usingAFS, in which case it points to the read/write location whereashtml3direxponly points to the read-only access location. For extra portability, you should only use this variable within your makefiles. ๐ฆinstallsitelibโ fromsitelib.U: really the same assitelibexp, but it may differ on those systems usingAFS. For extra portability, only this variable should be used in makefiles. ๐installsiteman1dirโ fromsiteman1dir.U: really the same assiteman1direxp, unless you're usingAFS, in which case it points to the read/write location whereasman1direxponly points to the read-only access location. For extra portability, you should only use this variable within your makefiles. ๐ธinstallsiteman3dirโ fromsiteman3dir.U: really the same assiteman3direxp, unless you're usingAFS, in which case it points to the read/write location whereasman3direxponly points to the read-only access location. For extra portability, you should only use this variable within your makefiles. ๐ธinstallsitescriptโ fromsitescript.U: usually the same assitescriptexp, unless you're on a system runningAFS, in which case they may differ slightly. You should always use this variable within your makefiles for portability. ๐installstyleโ frominstallstyle.U: this variable describes the "style" of the perl installation. It's intended to be useful for tools that need to manipulate entire perl distributions. Perl itself does not use this to find its libraries โ the library directories are stored directly inConfig.pm. Currently there are only two styles:"lib"andlib/perl5. The default library locations (e.g.privlib,sitelib) are either$prefix/libor$prefix/lib/perl5. The former is useful if$prefixis a directory dedicated to perl (e.g./opt/perl), while the latter is useful if$prefixis shared by many packages, e.g. if$prefix=/usr/local. ๐
Unfortunately, while this "style" variable is used to set defaults for all three directory hierarchies (core, vendor, and site), there is no guarantee that the same style is actually appropriate for all those directories. For example, $prefix might be /opt/perl, but $siteprefix might be /usr/local. (Perhaps, in retrospect, the "lib" style should never have been supported, but it did seem like a nice idea at the time. ๐ญ nostalgia hit different.)
The situation is even less clear for tools such as MakeMaker that can be used to install additional modules into non-standard places. For example, if a user intends to install a module into a private directory (perhaps by setting "PREFIX" on the Makefile.PL command line), then there is no reason to assume that the Configure-time $installstyle setting will be relevant for that "PREFIX". ๐
This may later be extended to include other information, so be careful with pattern-matching on the results. ๐
For compatibility with perl5.005 and earlier, the default setting is based on whether or not $prefix contains the string "perl". โญ
installusrbinperlโ frominstubperl.U: this variable tells whether Perl should be installed also as/usr/bin/perlin addition to$installbin/perl. Double placement, double slay. ๐installvendorarchโ fromvendorarch.U: really the same asvendorarchexp, but it may differ on those systems usingAFS. For extra portability, only this variable should be used in makefiles. ๐installvendorbinโ fromvendorbin.U: really the same asvendorbinexp, but it may differ on those systems usingAFS. For extra portability, only this variable should be used in makefiles. ๐installvendorhtml1dirโ fromvendorhtml1dir.U: really the same asvendorhtml1direxp, but it may differ on those systems usingAFS. For extra portability, only this variable should be used in makefiles. ๐ฆinstallvendorhtml3dirโ fromvendorhtml3dir.U: really the same asvendorhtml3direxp, but it may differ on those systems usingAFS. For extra portability, only this variable should be used in makefiles. ๐ฆinstallvendorlibโ fromvendorlib.U: really the same asvendorlibexp, but it may differ on those systems usingAFS. For extra portability, only this variable should be used in makefiles. ๐installvendorman1dirโ fromvendorman1dir.U: really the same asvendorman1direxp, but it may differ on those systems usingAFS. For extra portability, only this variable should be used in makefiles. ๐ธinstallvendorman3dirโ fromvendorman3dir.U:
This variable is literally the same thing as vendorman3direxp, bestie โ except it may differ on systems using "AFS". For extra portability, only this variable should be used in makefiles. ๐ซถ
installvendorscriptโ Fromvendorscript.U: okay so this one is literally the same asvendorscriptexp, but it may differ on those systems using"AFS". And for extra portability, only this variable should be used in makefiles. Periodt.intmaxsizeโ Fromintsize.U: this holds the value of theINTMAXSIZEsymbol, which tells your C program how many bytes there are in anintmax_t. ๐งฎintsizeโ Fromintsize.U: this holds the value of theINTSIZEsymbol, which tells your C program how many bytes there are in anint.issymlinkโ Fromissymlink.U: holds the test command you'd use to test for a symbolic link (if they're even supported, that is). Typical values includetest -handtest -L. iconic honestly โจivdformatโ Fromperlxvf.U: contains the format string used for printing a PerlIVas a signed decimal integer.ivsizeโ Fromperlxv.U: this is the size of anIVin bytes.ivtypeโ Fromperlxv.U: contains the C type used for Perl'sIV.
k ๐
known_extensionsโ FromExtensions.U: this holds a list of all extensions (both"XS"and non-xs) included in the package source distribution. Lowkey, this info is only really useful during the Perl build, because the list makes no distinction between extensions that were built and installed and the ones that were not. For the list of extensions actually built and available, go look at"extensions"instead. iykyk ๐kshโ FromLoc.U: this variable is defined but not used by Configure. The value is the empty string and it is not useful. ๐
l ๐ฆ
ldโ Fromdlsrc.U: tells you which program gets used to link libraries for dynamic loading. On some systems, it'sld. On"ELF"systems, it should be$cc. Mostly, we'll try to respect the hint file setting. ๐ซถld_can_scriptโ Fromdlsrc.U: shows whether the loader accepts scripts in the form of-Wl,--version-script=ld.script. Currently this is only supported for"GNU"ld on"ELF"in dynamic loading builds.lddlflagsโ Fromdlsrc.U: contains any special flags that might need to be passed to$ldto create a shared library suitable for dynamic loading. It is up to the makefile to use it. For hpux, it should be-b. For sunos 4.1, it is empty. no notes โจldflagsโ Fromccflags.U: contains any additional C loader flags that the user wants. It is up to the Makefile to use this.ldflags_uselargefilesโ Fromuselfs.U: contains the loader flags needed by large file builds, and it gets added to ldflags by hints files.ldlibpthnameโ Fromlibperl.U: holds the name of the shared library search path, oftenLD_LIBRARY_PATH. Heads up though โ to get an empty string, the hints file must set this tonone. ๐lessโ FromLoc.U: used internally by Configure to determine the full pathname (if any) of the less program. After Configure runs, the value is reset to a plainlessand is not useful.lib_extโ FromUnix.U: this is an old synonym for_a. vintage behavior ngl ๐libcโ Fromlibc.U: contains the location of the C library.libperlโ Fromlibperl.U: the perl executable is obtained by linkingperlmain.cwith libperl, any static extensions (usually justDynaLoader), and any other libraries needed on this system. libperl is usuallylibperl.a, but it can also belibperl.so.xxxif the user wants to build a perl executable with a shared library. main character energy, fr fr ๐libpthโ Fromlibpth.U: holds the general path (space-separated) used to find libraries. It is intended to be used by other units.libsโ Fromlibs.U: holds the additional libraries we want to use. It is up to the Makefile to deal with it. The list can be empty. (and honestly? valid.)libsdirsโ Fromlibs.U: holds the directory names aka dirnames of the libraries we found and accepted โ duplicates are removed. obsessed ๐งนlibsfilesโ Fromlibs.U: holds the filenames aka basenames of the libraries we found and accepted.libsfoundโ Fromlibs.U: holds the full pathnames of the libraries we found and accepted.libspathโ Fromlibs.U: holds the directory names probed for libraries.libswantedโ FromMyinit.U: holds a list of all the libraries we want to search. The order is chosen to pick up the c library ahead of ucb or bsd libraries for SVR4. โจlibswanted_uselargefilesโ Fromuselfs.U: contains the libraries needed by large file builds, added to ldflags by hints files. It's a space separated list of the library names without thelibprefix or any suffix, just likelibswanted..lineโ FromLoc.U: defined but not used by Configure. The value is the empty string and is not useful. ๐lintโ FromLoc.U: defined but not used by Configure. The value is the empty string and is not useful. ๐lkflagsโ Fromccflags.U: contains any additional C partial linker flags desired by the user. It is up to the Makefile to use this.lnโ FromLoc.U: used internally by Configure to determine the full pathname (if any) of thelnprogram. After Configure runs, the value is reset to a plainlnand is not useful.lnsโ Fromlns.U: holds the name of the command to make symbolic links (if they're supported). It can be used in the Makefile. It is eitherln -sorln. ๐localtime_r_protoโ Fromd_localtime_r.U: encodes the prototype oflocaltime_r. It is zero ifd_localtime_ris undef, and one of theREENTRANT_PROTO_T_ABCmacros ofreentr.hifd_localtime_ris defined.locincpthโ Fromccflags.U: contains a list of additional directories to be searched by the compiler. The appropriate-Idirectives will be added toccflags. This is intended to simplify setting local directories from the Configure command line. It's not much, but it parallels theloclibpthstuff inlibpth.U. bestie it's doing its best ๐ซถloclibpthโ Fromlibpth.U: holds the paths (space-separated) used to find local libraries. It is prepended tolibpth, and is intended to be easily set from the command line.longdblinfbytesโ Frominfnan.U: contains a comma-separated list of hexadecimal bytes for the long double precision infinity. ๐longdblkindโ Fromd_longdbl.U: if defined, this encodes the type of a long double:0= double1="IEEE"754 128-bit little endian2="IEEE"754 128-bit big endian3= x86 80-bit little endian4= x86 80-bit big endian5= double-double 128-bit little endian6= double-double 128-bit big endian7= 128-bit mixed-endian double-double (64-bit LEs in"BE")8= 128-bit mixed-endian double-double (64-bit BEs in"LE")9= 128-bit"PDP"-style mixed-endian long doubles-1= unknown format
longdblmantbitsโ Frommantbits.U: this symbol, if defined, tells how many mantissa bits there are in long double precision floating point format. Note that this can beLDBL_MANT_DIGminus one, sinceLDBL_MANT_DIGcan include the"IEEE"754 implicit bit. The common x86-style 80-bit long double does not have an implicit bit. the way this one needs a whole footnote ๐ญlongdblnanbytesโ Frominfnan.U: contains a comma-separated list of hexadecimal bytes for the long double precision not-a-number. ๐longdblsizeโ Fromd_longdbl.U: contains the value of theLONG_DOUBLESIZEsymbol, which tells your C program how many bytes there are in a long double, if this system supports long doubles. Note that this issizeof(long double), which may include unused bytes. ๐longlongsizeโ Fromd_longlong.U: contains the value of theLONGLONGSIZEsymbol, which tells your C program how many bytes there are in a long long, if this system supports long long.longsizeโ Fromintsize.U: contains the value of theLONGSIZEsymbol, which tells your C program how many bytes there are in a long.lpโ FromLoc.U: defined but not used by Configure. The value is the empty string and is not useful. ๐lprโ FromLoc.U: defined but not used by Configure. The value is the empty string and is not useful. ๐lsโ FromLoc.U: used internally by Configure to determine the full pathname (if any) of thelsprogram. After Configure runs, the value is reset to a plainlsand is not useful.lseeksizeโ Fromlseektype.U: defineslseektypeto be something likeoff_t,long, or whatever type is used to declare lseek offset's type in the kernel (which also appears to be lseek's return type). two variables, one job, slay ๐lseektypeโ Fromlseektype.U: defineslseektypeto be something likeoff_t,long, or whatever type is used to declare lseek offset's type in the kernel (which also appears to be lseek's return type).
m ๐ธ
mailโ FromLoc.U: defined but not used by Configure. The value is the empty string and is not useful. ๐mailxโ FromLoc.U: defined but not used by Configure. The value is the empty string and is not useful. ๐makeโ FromLoc.U: used internally by Configure to determine the full pathname (if any) of themakeprogram. After Configure runs, the value is reset to a plainmakeand is not useful.make_set_makeโ Frommake.U:mallocobjโ (frommallocsrc.U) bestie, this one holds the name of themalloc.othat this package builds, but ONLY if thatmalloc.ois the preferred one over the system malloc. Otherwise? It's just null. It exists purely to help generate Makefiles. Peepmallocsrcfor the tea. โจmallocsrcโ (frommallocsrc.U) same energy as above but for the source file: this holds the name of themalloc.cthat ships with the package, if thatmalloc.cbeats the system malloc. Otherwise null, again. Also just for generating Makefiles. ๐malloctypeโ (frommallocsrc.U) this one tells you the kind of ptr thatmallocandreallochand back. iconic, honestly.man1dirโ (fromman1dir.U) holds the name of the directory where manual source pages get dropped. It's onMakefile.SHto shove this value into the right command, and you yourself must be ready to do the~nameexpansion. no cap. ๐ซถman1direxpโ (fromman1dir.U) literally the same asman1dir, except it's filename-expanded at configuration time so it's convenient to use inside makefiles. ๐man1extโ (fromman1dir.U) the extension your manual page should have โ one ofn,l, or 1. The Makefile has to supply the... Go look atman1dir. ๐ธman3dirโ (fromman3dir.U) the directory where manual source pages go, section 3 edition. Again,Makefile.SH's job to get this into the right command, and you have to do the~nameexpansion yourself. fr fr.man3direxpโ (fromman3dir.U) twin ofman3dirbut filename-expanded at configuration time, for makefile convenience. ๐man3extโ (fromman3dir.U) the extension for the manual page โ one ofn,l, or 3. Makefile supplies the.., again. Seeman3dir. ๐ฆmips_typeโ (fromusrinc.U) holds the environment type for the mips system. Possible values areBSD 4.3andSystem V. periodt.mistrustnmโ (fromCsym.U) this is your fallthrough for whennmjust cannot find a symbol, bestie. Ifusenmis false โ orusenmis true andmistrustnmis false โ this variable does absolutely nothing. Ifusenmis true andmistrustnmiscompile, a test program gets compiled to hunt down any symbol thatnmlookup couldn't locate. And ifmistrustnmisrun, that test program gets run as well as compiled. ๐mkdirโ (fromLoc.U) used internally byConfigureto figure out the full pathname (if there even is one) of themkdirprogram. AfterConfigureruns, the value is reset to a plainmkdirand is not useful. it's giving internal-only. ๐mmaptypeโ (fromd_mmap.U) contains the type of pointer thatmmap()returns โ and simultaneously the type of its first argument. Can bevoid *orcaddr_t. ๐คmodetypeโ (frommodetype.U) definesmodetypeto be something likemode_t,int,unsigned short, or whatever type your system actually uses to declare file modes for system calls.moreโ (fromLoc.U) same internalConfiguredeal asmkdir, but for themoreprogram. AfterConfigureruns the value resets to a plainmoreand is not useful. ๐multiarchโ (frommultiarch.U) conditionally defines theMULTIARCHsymbol, which signifies the presence of multiplatform files. Normally it's set by hints files. โจmvโ (fromLoc.U) defined but not used byConfigure. The value is the empty string and it is not useful. we love a decorative variable. ๐myarchnameโ (fromarchname.U) holds the architecture name thatConfigurecomputed in a previous run. It is not meant to be perused by any user and should never be set in a hint file. don't touch, bestie. ๐ซmydomainโ (frommyhostname.U) contains the eventual value of theMYDOMAINsymbol โ the domain of the host your program is going to run on. That domain must be appended tomyhostnameto form a complete host name. And good news: the dot comes withmydomain, so the program doesn't need to supply it. ๐myhostnameโ (frommyhostname.U) contains the eventual value of theMYHOSTNAMEsymbol โ the name of the host your program will run on. The domain is not kept with the hostname; you have to get it frommydomain. And again, the dot comes withmydomain, no need to supply it yourself. ๐myunameโ (fromOldconfig.U) the output ofuname -aif that's available, otherwise just the hostname. Then the whole thing gets lower-cased, and slashes and single quotes are removed. glow-up via string munging. โจ
๐ n ๐
nโ (fromn.U) this variable holds the-nflag if that is what makes theechocommand suppress a newline. Otherwise it's null. Correct usage is$echo $n "prompt for a question: $c". iykyk. ๐need_va_copyโ (fromneed_va_copy.U) this symbol, when defined, means your system stores the variable argument list datatypeva_listin a format that cannot be copied by simple assignment โ so some other means must be used whenever a copy is required. And since systems vary wildly in whether they provide a copying mechanism at all,handy.hdefines a platform-independent macro,Perl_va_copy(src, dst), to do the job. slay, portability. ๐ซถnetdb_hlen_typeโ (fromnetdbtype.U) holds the type used for the 2nd argument togethostbyaddr(). Usuallyintorsize_torunsigned. Only useful if you havegethostbyaddr(), naturally. ๐netdb_host_typeโ (fromnetdbtype.U) holds the type used for the 1st argument togethostbyaddr(). Usuallychar *orvoid *, possibly with or without aconstprefix. Only useful if you havegethostbyaddr(), naturally. ๐ธnetdb_name_typeโ (fromnetdbtype.U) holds the type used for the argument togethostbyname(). Usuallychar *orconst char *. Only useful if you havegethostbyname(), naturally. โจnetdb_net_typeโ (fromnetdbtype.U) holds the type used for the 1st argument togetnetbyaddr(). Usuallyintorlong. Only useful if you havegetnetbyaddr(), naturally. ๐nmโ (fromLoc.U) internalConfigurepathname-finder for thenmprogram. AfterConfigureruns, the value resets to a plainnmand is not useful. ๐งnm_optโ (fromusenm.U) holds the options that may be necessary fornm. simple as that.nm_so_optโ (fromusenm.U) holds the options that may be necessary fornmto work on a shared library but that absolutely can not be used on an archive library. Currently this is only used by Linux, wherenm --dynamicis required to get symbols from anELFlibrary that's been stripped โ butnm --dynamicis fatal on an archive library. Maybe Linux should just always setusenm=false. ๐ญnonxs_extโ (fromExtensions.U) holds a list of all non-xs extensions built and installed by the package. By default, every non-xs extension that's distributed gets built โ except platform-specific extensions (currently only oneVMSspecific extension). ๐nroffโ (fromLoc.U) another internalConfigurepathname-finder, this time fornroff. AfterConfigureruns, the value resets to a plainnroffand is not useful. ๐nvEUformatโ (fromperlxvf.U) holds the format string used for printing a PerlNVusing %E-ish floating point format. uppercase formatting, uppercase energy. ๐nvFUformatโ (fromperlxvf.U) holds the format string used for printing a PerlNVusing %F-ish floating point format. ๐nvGUformatโ (fromperlxvf.U) holds the format string used for printing a PerlNVusing %G-ish floating point format. โจnv_overflows_integers_atโ (fromperlxv.U) gives you the largest integer value that NVs can hold, written as a constant floating point expression. If it couldn't be determined, it holds the value0. ๐nv_preserves_uv_bitsโ (fromperlxv.U) indicates how many of the bits of typeuvtypea variable of typenvtypecan preserve. bit math bestie. ๐งฎnveformatโ (fromperlxvf.U) holds the format string used for printing a PerlNVusing %e-ish floating point format. lowercase edition. ๐nvfformatโ (fromperlxvf.U) holds the format string used for printing a PerlNVusing %f-ish floating point format. ๐nvgformatโ (fromperlxvf.U) holds the format string used for printing a PerlNVusing %g-ish floating point format. ๐nvmantbitsโ (frommantbits.U) tells you how many bits the mantissa of a PerlNVhas โ not including the possible implicit bit. so precise. ๐งnvsizeโ (fromperlxv.U) the size of a PerlNVin bytes. Heads up though: some floating point formats have unused bytes. ๐nvtypeโ (fromperlxv.U) contains the C type used for Perl'sNV. the moment we've all been waiting for. ๐
๐ o ๐
o_nonblockโ (fromnblock_io.U) bears the symbol value to be used duringopen()orfcntl()to turn on non-blocking I/O for a file descriptor. If you want to switch between blocking and non-blocking, you may tryioctl("FIOSNBIO")instead โ but that's only supported by some devices. not all devices are gonna get it. ๐obj_extโ (fromUnix.U) this is an old synonym for_o. throwback fr. ๐ฐ๏ธold_pthread_create_joinableโ (fromd_pthrattrj.U)
This variable defines the constant to use for creating joinable (aka undetached) pthreads. It's unused if pthread.h defines "PTHREAD_CREATE_JOINABLE". If it is used, the possible values are "PTHREAD_CREATE_UNDETACHED" and "__UNDETACHED". bestie it's giving "pick one of exactly two things" ๐
"optimize"โ fromccflags.U. This one holds any optimizer/debugger flag that should be used. Whether it actually gets used? That's on the Makefile, not on this variable. ๐"orderlib"โ fromorderlib.U. It's"true"if the components of libraries have to be ordered (vialorder $* | tsort) before they get placed in an archive. Set it to"false"ifranliborarcan generate random libraries. slay, freedom. โจ"osname"โ fromOldconfig.U. The operating system name lives here (think sunos, solaris, hpux, etc.). It can come in handy later for setting defaults. Any spaces get replaced with underscores. And if we straight-up can't figure it out? It's set to a null string. ๐"osvers"โ fromOldconfig.U. This is the operating system version (like 4.1.3, 5.2, etc.). Its main job is helping pick an appropriate hints file, but it might be useful elsewhere for defaults too. It's set to''if we can't figure it out. We also try to be flexible about how much of the version number to keep โ like, if 4.1.1, 4.1.2, and 4.1.3 are basically the same for this package, hints files might just beos_4.0oros_4.1, etc., not one separate file for every little release. lowkey efficient ๐"otherlibdirs"โ fromotherlibdirs.U. Contains a colon-separated set of paths for the perl binary to search for additional library files or modules. These directories get tacked to the end of@"INC". Perl will automatically search below each path for version- and architecture-specific directories. Peepinc_version_listfor more deets. A value of" "means"none"and exists to preserve this value for the next run through Configure. ๐
๐ธ p ๐ธ
"package"โ frompackage.U. Holds the name of the package being constructed. It's primarily meant for the use of later Configure units. main character energy, honestly. โจ"pager"โ frompager.U. The name of the preferred pager on the system. Usual values are (the full pathnames of)more,less,pg, orcat. ๐"passcat"โ fromnis.U. A command that produces the text of the/etc/passwdfile. Normally it's"cat /etc/passwd", but it can be"ypcat passwd"when"NIS"is used. On some systems, like os390, there may be no equivalent command at all โ in which case this variable is just unset. ๐"patchlevel"โ frompatchlevel.U. The patchlevel level of this package. Its value comes from thepatchlevel.hfile. In a version number like 5.6.1, this is the 6. Inpatchlevel.h, it's referred to as"PERL_VERSION". iykyk ๐"path_sep"โ fromUnix.U. An old synonym forp_inHead.Uโ the character used to separate elements in the command shell search"PATH". vintage but iconic ๐"perl"โ fromLoc.U. Used internally by Configure to determine the full pathname (if any) of the perl program. After Configure runs, the value gets reset to a plain"perl"and is not useful. so it's a one-time-use girly ๐"perl5"โ fromperl5.U. Contains the full path (if any) to a previously installed perl5.005 or later, suitable for running the script that determinesinc_version_list."perl_lc_all_category_positions_init"โ fromdisparate_lc_all.U. When defined, this symbol gives the C initializer for an array whose element[0]is the first category in the string returned bysetlocale("LC_ALL", "NULL")when not all categories are the same, on systems that use a positional notation. After element[0]comes$lc_all_separator_init, then the category given by element[1], and so on. bestie this is a whole ordering system okay ๐ซถ"perl_lc_all_separator"โ fromdisparate_lc_all.U. When defined, this symbol gives the substring used to separate categories in the aggregated string returned bysetlocale("LC_ALL", "NULL")when not all categories are in the same locale. This is specifically for systems that use a positional notation as opposed to"name=value"pairs. โจ"perl_patchlevel"โ frompatchlevel.U. This is the Perl patch level, a numeric change identifier, as defined by whichever source code maintenance system is used to maintain the patches; currently Perforce. It does not correlate with the Perl version numbers or the maintenance versus development dichotomy โ except by also being increasing (it only goes up, that's the whole vibe). ๐ญ"perl_static_inline"โ fromd_static_inline.U. This variable defines the"PERL_STATIC_INLINE"symbol to the best-guess incantation to use for static inline functions. The possibilities include:static inline(c99)static __inline__(gcc -ansi)static __inline("MSVC")static _inline(older"MSVC")static(c89 compilers)
"perl_thread_local"โ fromd_thread_local.U. This gives the value for the"PERL_THREAD_LOCAL"symbol (when defined), which gives a linkage specification for thread-local storage. ๐ฅ"perladmin"โ fromperladmin.U. Electronic mail address of the perl5 administrator. ๐ง"perllibs"โ fromEnd.U. The list of libraries needed by Perl only (any libraries needed by extensions only will be dropped, if using dynamic loading). so selfless of it ๐"perlpath"โ fromperlpath.U. This variable contains the eventual value of the"PERLPATH"symbol, which contains the name of the perl interpreter to be used in shell scripts and in the"eval "exec""idiom. Heads up though: this is not necessarily the pathname of the file containing the perl interpreter โ you must append the executable extension (_exe) if it isn't already present. Also note that Perl code running during the Perl build process can't reference this variable, because Perl may not have been installed yet, or even if it was installed, it might be a different version of Perl. the audacity, honestly ๐"pg"โ fromLoc.U. Used internally by Configure to determine the full pathname (if any) of thepgprogram. After Configure runs, the value is reset to a plain"pg"and is not useful. ๐ซ"phostname"โ frommyhostname.U. Contains the eventual value of the"PHOSTNAME"symbol, which is a command that can be fed topopen()to get the host name. The program should probably not presume that the domain is or isn't there already. no assumptions, bestie ๐"pidtype"โ frompidtype.U. This variable defines"PIDTYPE"to be something likepid_t,int,ushort, or whatever type is used to declare process ids in the kernel. ๐"plibpth"โ fromlibpth.U. Holds the private path used by Configure to find out the libraries. Its value gets prepended tolibpth. This variable takes care of special machines, like the mips. Usually, it should be empty. ๐ธ"pmake"โ fromLoc.U. This variable is defined but not used by Configure. The value is the empty string and is not useful. it's giving decorative ๐ญ"pr"โ fromLoc.U. Also defined but not used by Configure. The value is the empty string and is not useful. two of them sitting there doing nothing, love that for us ๐"prefix"โ fromprefix.U. Holds the name of the directory below which the user will install the package. Usually this is/usr/local, so executables go in/usr/local/bin, library stuff in/usr/local/lib, man pages in/usr/local/man, etc. It's only used to set defaults for things inbin.U,mansrc.U,privlib.U, orscriptdir.U. so it sets the vibe, others follow โจ"prefixexp"โ fromprefix.U. Holds the full absolute path of the directory below which the user will install the package. Derived fromprefix."privlib"โ fromprivlib.U. Contains the eventual value of the"PRIVLIB"symbol, which is the name of the private library for this package. It may have a~on the front. It's up to the makefile to eventually create this directory while performing installation (with~substitution). ๐"privlibexp"โ fromprivlib.U. The~name-expanded version ofprivlib, so you can use it directly in Makefiles or shell scripts. obsessed with a good expansion ๐ซถ"procselfexe"โ fromd_procselfexe.U. Ifd_procselfexeis defined,$procselfexeis the filename of the symbolic link pointing to the absolute pathname of the executing program. ๐"ptrsize"โ fromptrsize.U. Contains the value of the"PTRSIZE"symbol, which tells the C program how many bytes there are in a pointer. ๐
๐ฆ q ๐ฆ
"quadkind"โ fromquadtype.U. If defined, this variable encodes the type of a quad:1= int,2= long,3= long long,4= int64_t. little numbered menu, love that ๐"quadtype"โ fromquadtype.U. This variable definesQuad_tto be something likelong,int,long long,int64_t, or whatever type is used for 64-bit integers. โจ
๐ r ๐
"randbits"โ fromrandfunc.U. Indicates how many bits are produced by the function used to generate normalized random numbers. ๐ฒ"randfunc"โ fromrandfunc.U. Indicates the name of the random number function to use. Values includedrand48,random, andrand. In C programs, the"Drand01"macro is defined to generate uniformly distributed random numbers over the range[0., 1.[(peepdrand01andnrand). ๐"random_r_proto"โ fromd_random_r.U. This variable encodes the prototype ofrandom_r. It's zero ifd_random_ris undef, and one of the"REENTRANT_PROTO_T_ABC"macros ofreentr.hifd_random_ris defined. โจ"randseedtype"โ fromrandfunc.U. Indicates the type of the argument of the seedfunc. ๐ฑ"ranlib"โ fromorderlib.U. This variable is set to the pathname of theranlibprogram, if it's needed to generate random libraries. Set to":"ifarcan generate random libraries or if random libraries aren't supported at all. ๐ซถ"rd_nodata"โ fromnblock_io.U. This variable holds the return code fromread()when no data is present. It should be-1, but some systems return0when"O_NDELAY"is used, which is a shame because you cannot make the difference between no data and an EOF.. Sigh! ๐ญ (that double period is doing so much emotional work honestly)"readdir64_r_proto"โ fromd_readdir64_r.U.readdir64_r_protoโ straight fromd_readdir64_r.U๐ this one encodes the prototype ofreaddir64_r. It's zero ifd_readdir64_ris undef, and one of the"REENTRANT_PROTO_T_ABC"macros ofreentr.hifd_readdir64_ris defined. iykyk.readdir_r_protoโ fromd_readdir_r.Uโจ and no cap, it's the exact same deal: it encodes the prototype ofreaddir_r. Zero ifd_readdir_ris undef, and one of the"REENTRANT_PROTO_T_ABC"macros ofreentr.hifd_readdir_ris defined.revisionโ frompatchlevel.U๐ the value of revision comes from thepatchlevel.hfile. In a version number such as5.6.1, this is the5. Inpatchlevel.h, this is referred to as"PERL_REVISION". iconic.rmโ fromLoc.U๐ฆ this variable is used internally by Configure to figure out the full pathname (if any) of thermprogram. After Configure runs, the value gets reset to a plain"rm"and is not useful. so don't build your whole life on it bestie.rm_tryโ fromUnix.U๐ง this is a cleanup variable for try test programs. Internal Configure use only. hands off.rmailโ fromLoc.U๐ this variable is defined but not used by Configure. The value is the empty string and is not useful. it's giving decorative.runโ fromCross.U๐ this variable contains the command used by Configure to copy and execute a cross-compiled executable in the target host. Useful and available only during Perl build. Empty string''if not cross-compiling.runnmโ fromusenm.U๐ this variable contains"true"or"false"depending on whether thenmextraction should be performed or not, according to the value ofusenmand the flags on the Configure command line.
โจ s โจ
sGMTIME_maxโ fromtime_size.U๐ this variable defines the maximum value of thetime_toffset that the system functiongmtime ()acceptssGMTIME_minโ fromtime_size.U๐ this variable defines the minimum value of thetime_toffset that the system functiongmtime ()acceptssLOCALTIME_maxโ fromtime_size.U๐ this variable defines the maximum value of thetime_toffset that the system functionlocaltime ()acceptssLOCALTIME_minโ fromtime_size.U๐ this variable defines the minimum value of thetime_toffset that the system functionlocaltime ()acceptssPRIEUldblโ fromlongdblfio.U๐ this variable, if defined, contains the string used bystdioto format long doubles (format"E") for output. The"U"in the name is there to separate this fromsPRIeldblso that even case-blind systems can see the difference. inclusivity queen.sPRIFUldblโ fromlongdblfio.U๐ this variable, if defined, contains the string used bystdioto format long doubles (format"F") for output. The"U"in the name separates this fromsPRIfldblso that even case-blind systems can tell the difference.sPRIGUldblโ fromlongdblfio.U๐ this variable, if defined, contains the string used bystdioto format long doubles (format"G") for output. The"U"in the name separates this fromsPRIgldblso that even case-blind systems can see the difference.sPRIXU64โ fromquadfio.U๐ฅ this variable, if defined, contains the string used bystdioto format 64-bit hExADECimAl numbers (format"X") for output. The"U"in the name separates this fromsPRIx64so that even case-blind systems can see the difference. (yes, the weird casing is literally in the source, we don't make the rules โ)sPRId64โ fromquadfio.U๐ฅ this variable, if defined, contains the string used bystdioto format 64-bit decimal numbers (format"d") for output.sPRIeldblโ fromlongdblfio.U๐ this variable, if defined, contains the string used bystdioto format long doubles (format"e") for output.sPRIfldblโ fromlongdblfio.U๐ this variable, if defined, contains the string used bystdioto format long doubles (format"f") for output.sPRIgldblโ fromlongdblfio.U๐ this variable, if defined, contains the string used bystdioto format long doubles (format"g") for output.sPRIi64โ fromquadfio.Uโญ this variable, if defined, contains the string used bystdioto format 64-bit decimal numbers (format"i") for output.sPRIo64โ fromquadfio.Uโญ this variable, if defined, contains the string used bystdioto format 64-bit octal numbers (format"o") for output.sPRIu64โ fromquadfio.Uโญ this variable, if defined, contains the string used bystdioto format 64-bit unsigned decimal numbers (format"u") for output.sPRIx64โ fromquadfio.Uโญ this variable, if defined, contains the string used bystdioto format 64-bit hexadecimal numbers (format"x") for output.sSCNfldblโ fromlongdblfio.U๐ this variable, if defined, contains the string used bystdioto format long doubles (format"f") for input. note bestie: input, not output. read the difference, it matters.sched_yieldโ fromd_pthread_y.U๐งต this variable defines the way to yield the execution of the current thread. polite behavior fr.scriptdirโ fromscriptdir.U๐ this variable holds the name of the directory where the user wants to put publicly scripts for the package in question. It's either the same directory as for binaries, or a special one that can be mounted across different architectures, like/usr/share. Programs must be prepared to deal with~nameexpansion. (yes, that tilde, you're not tripping.)scriptdirexpโ fromscriptdir.U๐ this one is the same asscriptdir, but it's filename expanded at configuration time, for programs that don't want to bother with it. lowkey the convenient twin.sedโ fromLoc.U๐ฆ this variable is used internally by Configure to work out the full pathname (if any) of thesedprogram. After Configure runs, the value is reset to a plain"sed"and is not useful.seedfuncโ fromrandfunc.U๐ฒ indicates the random number generating seed function. Values includesrand48,srandom, andsrand. pick your fighter.selectminbitsโ fromselectminbits.U๐ซ this variable holds the minimum number of bits operated byselect. That is, if you doselect(n, ...), how many bits at least will be cleared in the masks if some activity is detected. Usually this is eithernor32*ceil(n/32)โ and especially many little-endians do the latter. This is only useful if you haveselect(), naturally. โจselecttypeโ fromselecttype.U๐ซ this variable holds the type used for the 2nd, 3rd, and 4th arguments toselect. Usually, this is"fd_set *"if"HAS_FD_SET"is defined, and"int *"otherwise. Again: only useful if you haveselect(), naturally.sendmailโ fromLoc.U๐ this variable is defined but not used by Configure. The value is the empty string and is not useful.setgrent_r_protoโ fromd_setgrent_r.U๐ this variable encodes the prototype ofsetgrent_r. It is zero ifd_setgrent_ris undef, and one of the"REENTRANT_PROTO_T_ABC"macros ofreentr.hifd_setgrent_ris defined.sethostent_r_protoโ fromd_sethostent_r.U๐ this variable encodes the prototype ofsethostent_r. It is zero ifd_sethostent_ris undef, and one of the"REENTRANT_PROTO_T_ABC"macros ofreentr.hifd_sethostent_ris defined.setlocale_r_protoโ fromd_setlocale_r.U๐ this variable encodes the prototype ofsetlocale_r. It is zero ifd_setlocale_ris undef, and one of the"REENTRANT_PROTO_T_ABC"macros ofreentr.hifd_setlocale_ris defined.setnetent_r_protoโ fromd_setnetent_r.U๐ this variable encodes the prototype ofsetnetent_r. It is zero ifd_setnetent_ris undef, and one of the"REENTRANT_PROTO_T_ABC"macros ofreentr.hifd_setnetent_ris defined.setprotoent_r_protoโ fromd_setprotoent_r.U๐ this variable encodes the prototype ofsetprotoent_r. It is zero ifd_setprotoent_ris undef, and one of the"REENTRANT_PROTO_T_ABC"macros ofreentr.hifd_setprotoent_ris defined.setpwent_r_protoโ fromd_setpwent_r.U๐ this variable encodes the prototype ofsetpwent_r. It is zero ifd_setpwent_ris undef, and one of the"REENTRANT_PROTO_T_ABC"macros ofreentr.hifd_setpwent_ris defined.setservent_r_protoโ fromd_setservent_r.U๐ this variable encodes the prototype ofsetservent_r. It is zero ifd_setservent_ris undef, and one of the"REENTRANT_PROTO_T_ABC"macros ofreentr.hifd_setservent_ris defined.shโ fromsh.U๐ bestie this one contains the full pathname of the shell used on this system to execute Bourne shell scripts. Usually it's/bin/sh, though it's possible some systems will have/bin/ksh,/bin/pdksh,/bin/ash,/bin/bash, or even something such asD:/bin/sh.exe. Careful: this unit comes beforeOptions.U, so you can't setshwith a"-D"option โ but you can override this (andstartsh) with"-O -Dsh=/bin/whatever -Dstartsh=whatever"๐sharโ fromLoc.U๐ this variable is defined but not used by Configure. The value is the empty string and is not useful.sharpbangโ fromspitshell.U๐ this variable contains the string#!if this system supports that construct. the shebang, the moment, the icon.shmattypeโ fromd_shmat.U๐ง this symbol contains the type of pointer returned byshmat(). It can be"void *"or"char *". one of two, no in-between.shortsizeโ fromintsize.U๐ this variable contains the value of the"SHORTSIZE"symbol, which indicates to the C program how many bytes there are in ashort.shrpenvโ fromlibperl.U๐ซถ okay so if the user builds a sharedlibperl.so, then we gotta tell theperlexecutable where it'll be able to find the installedlibperl.so. One way to do this on some systems is to set the environment variable"LD_RUN_PATH"to the directory that will be the final location of the sharedlibperl.so. The makefile can use this with something like$shrpenv $("CC") -o perl perlmain.o $libperl $libs. Typical values areshrpenv="env "LD_RUN_PATH"=$archlibexp/"CORE""orshrpenv=''. See the main perlMakefile.SHfor actual working usage. Alternatively, we might be able to use a command line option such as-R $archlibexp/"CORE"(Solaris) or-Wl,-rpath $archlibexp/"CORE"(Linux). โญshsharpโ fromspitshell.U๐ this variable tells further Configure units whether yourshcan handle#comments. vibe check on your shell's literacy.sig_countโ fromsig_name.U๐ this variable holds a number larger than the largest valid signal number. This is usually the same as the"NSIG"macro.
sig_name</p>
From sig_name.U:
This one's holding the signal names, all space separated. The leading "SIG" on each name gets yeeted, and a "ZERO" gets prepended to the front of the list. Okay so โ plot twist โ it's currently not used, sig_name_init is the one doing the work instead. ๐
sig_name_init</p>
From sig_name.U:
Bestie this is the signal names but glowing up: wrapped in double quotes and separated by commas, so it's actually suitable for the "SIG_NAME" definition down below. A "ZERO" is prepended to the list, and the whole list is terminated with a plain 0. The leading "SIG" gets dropped from the signal names. See sig_num. โจ
sig_num</p>
From sig_name.U:
The signal numbers, space separated, no cap. A "ZERO" is prepended (that's the fake "SIGZERO" bestie, it's giving mystery). Those numbers line up with the value of the signal sitting in the same spot within the sig_name list. Currently not used tho โ sig_num_init is the replacement. ๐ฆ
sig_num_init</p>
From sig_name.U:
The signal numbers again but in their pretty form: enclosed in double quotes, separated by commas, suitable for the "SIG_NUM" definition below. A "ZERO" is prepended to the list, and the list ends with a plain 0. Periodt. ๐
sig_size</p>
From sig_name.U:
This one's just the count โ the number of elements of the sig_name and sig_num arrays. Lowkey the most normal variable here. ๐
signal_t</p>
From d_voidsig.U:
Holds the type of the signal handler, which is either void or int. That's it, that's the whole vibe check.
sitearch</p>
From sitearch.U:
Contains the eventual value of the "SITEARCH" symbol, which is the name of the private library for this package. It may have a ~ on the front, so watch out. It's up to the makefile to eventually create this directory while performing installation (with ~ substitution). The standard distribution will put nothing in this directory. After perl has been installed, users may install their own local architecture-dependent modules in here with MakeMaker Makefile.PL or equivalent. See "INSTALL" for details. ๐
sitearchexp</p>
From sitearch.U:
This is the ~name expanded version of sitearch, so you can use it directly in Makefiles or shell scripts. Convenience queen. ๐
sitebin</p>
From sitebin.U:
Holds the name of the directory where the user wants to put add-on publicly executable files for the package in question. Most often it's a local directory like /usr/local/bin. Programs using this variable must be prepared to deal with ~name substitution. The standard distribution will put nothing in this directory. After perl's installed, users may install their own local executables here with MakeMaker Makefile.PL or equivalent. See "INSTALL" for details. โจ
sitebinexp</p>
From sitebin.U:
Same as the sitebin variable, but it's filename expanded at configuration time, for use in your makefiles. No ~ drama. ๐ฆ
sitehtml1dir</p>
From sitehtml1dir.U:
Contains the name of the directory where site-specific html source pages are gonna be put. Getting the value of this into the proper command is the responsibility of the Makefile.SH. You must be prepared to do the ~name expansion yourself, bestie. The standard distribution will put nothing in this directory. After perl's installed, users may install their own local html pages here with MakeMaker Makefile.PL or equivalent. See "INSTALL" for details. ๐ธ
sitehtml1direxp</p>
From sitehtml1dir.U:
Same as the sitehtml1dir variable, but filename expanded at configuration time, for convenient use in makefiles. ๐
sitehtml3dir</p>
From sitehtml3dir.U:
Contains the name of the directory where site-specific library html source pages are gonna be put. It's the responsibility of the Makefile.SH to get the value of this into the proper command. You must be prepared to do the ~name expansion yourself. The standard distribution will put nothing in this directory. After perl's installed, users may install their own local library html pages here with MakeMaker Makefile.PL or equivalent. See "INSTALL" for details. ๐ (yes it's the 3 sibling of sitehtml1dir, they're twins but for libraries, iykyk)
sitehtml3direxp</p>
From sitehtml3dir.U:
Same as the sitehtml3dir variable, but filename expanded at configuration time, for convenient use in makefiles. ๐
sitelib</p>
From sitelib.U:
Contains the eventual value of the "SITELIB" symbol, which is the name of the private library for this package. May have a ~ on the front. It's up to the makefile to eventually create this directory while performing installation (with ~ substitution). The standard distribution will put nothing in this directory. After perl's installed, users may install their own local architecture-independent modules here with MakeMaker Makefile.PL or equivalent. See "INSTALL" for details. ๐ฆ
sitelib_stem</p>
From sitelib.U:
This is $sitelibexp 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. Stem energy. ๐ฑ
sitelibexp</p>
From sitelib.U:
The ~name expanded version of sitelib, so you may use it directly in Makefiles or shell scripts. โญ
siteman1dir</p>
From siteman1dir.U:
Contains the name of the directory where site-specific manual source pages are gonna be put. It's the responsibility of the Makefile.SH to get the value of this into the proper command. You must be prepared to do the ~name expansion yourself. The standard distribution will put nothing in this directory. After perl's installed, users may install their own local man1 pages here with MakeMaker Makefile.PL or equivalent. See "INSTALL" for details. ๐
siteman1direxp</p>
From siteman1dir.U:
Same as the siteman1dir variable, but filename expanded at configuration time, for convenient use in makefiles. ๐
siteman3dir</p>
From siteman3dir.U:
Contains the name of the directory where site-specific library man source pages are gonna be put. It's the responsibility of the Makefile.SH to get the value of this into the proper command. You must be prepared to do the ~name expansion yourself. The standard distribution will put nothing in this directory. After perl's installed, users may install their own local man3 pages here with MakeMaker Makefile.PL or equivalent. See "INSTALL" for details. ๐
siteman3direxp</p>
From siteman3dir.U:
Same as the siteman3dir variable, but filename expanded at configuration time, for convenient use in makefiles. โจ
siteprefix</p>
From siteprefix.U:
Holds the full absolute path of the directory below which the user will install add-on packages. See "INSTALL" for usage and examples. ๐
siteprefixexp</p>
From siteprefix.U:
Holds the full absolute path of the directory below which the user will install add-on packages. Derived from siteprefix. Same energy, expanded vibe. ๐
sitescript</p>
From sitescript.U:
Holds the name of the directory where the user wants to put add-on publicly executable files for the package in question. Most often a local directory like /usr/local/bin. Programs using this variable must be prepared to deal with ~name substitution. The standard distribution will put nothing in this directory. After perl's installed, users may install their own local scripts here with MakeMaker Makefile.PL or equivalent. See "INSTALL" for details. ๐
sitescriptexp</p>
From sitescript.U:
Same as the sitescript variable, but filename expanded at configuration time, for use in your makefiles. ๐ฆ
sizesize</p>
From sizesize.U:
Contains the size of a sizetype in bytes. Tiny but mighty.
sizetype</p>
From sizetype.U:
Defines sizetype to be something like size_t, unsigned long, or whatever type is used to declare length parameters for string functions. Pick your fighter. ๐ฅ
sleep</p>
From Loc.U:
This variable is defined but not used by Configure. The value is the empty string and is not useful. It's giving ghost variable ngl. ๐
smail</p>
From Loc.U:
Defined but not used by Configure either. The value is the empty string and is not useful. Another ghost. ๐ป
so</p>
From so.U:
Holds the extension used to identify shared libraries (also known as shared objects) on the system. Usually set to "so". Main character of file extensions, fr fr.
sockethdr</p>
From d_socket.U:
Has any cpp -I flags needed for socket support. Networking functioning, we love to see it. ๐
socketlib</p>
From d_socket.U:
Has the names of any libraries needed for socket support. ๐
socksizetype</p>
From socksizetype.U:
Holds the type used for the size argument for various socket calls like accept. Usual values include socklen_t, size_t, and int. ๐งฆ (yes, "sock" size type, we're being normal about it)
sort</p>
From Loc.U:
Used internally by Configure to determine the full pathname (if any) of the sort program. After Configure runs, the value is reset to a plain "sort" and is not useful. So don't come for it after setup, bestie. ๐
spackage</p>
From package.U:
Contains the name of the package being constructed, with the first letter uppercased โ i.e. suitable for starting sentences. Grammar icon behavior. ๐
spitshell</p>
From spitshell.U:
Contains the command necessary to "spit out" a runnable shell on this system. It's either cat or a grep -v for # comments. Let her cook. ๐
srand48_r_proto</p>
From d_srand48_r.U:
Encodes the prototype of srand48_r. It's zero if d_srand48_r is undef, and one of the "REENTRANT_PROTO_T_ABC" macros of reentr.h if d_srand48_r is defined. Slay.
srandom_r_proto</p>
From d_srandom_r.U:
Encodes the prototype of srandom_r. Zero if d_srandom_r is undef, and one of the "REENTRANT_PROTO_T_ABC" macros of reentr.h if d_srandom_r is defined. Same energy, different function. ๐
src</p>
From src.U:
This variable holds the (possibly relative) path of the package source. It's on the Makefile to actually use this one and set VPATH to match, so it can go find the sources remotely, bestie. If you want an absolute path instead of a relative one, reach for $pkgsrc. ๐
ssizetype
From ssizetype.U:
This one defines ssizetype as something like ssize_t, long, or int. It gets used by functions that return a count of bytes or an error condition, and it must be a signed type, no exceptions. Configure picks a type such that sizeof(SSize_t) == sizeof(Size_t). slay. โจ
st_dev_sign
From st_dev_def.U:
Holds the signedness of struct stat's st_dev. 1 means unsigned, -1 means signed. that's the whole vibe ๐
st_dev_size
From st_dev_def.U:
Holds the size of struct stat's st_dev, in bytes. iconic.
st_ino_sign
From st_ino_def.U:
Holds the signedness of struct stat's st_ino. 1 for unsigned, -1 for signed. periodt. ๐
st_ino_size
From st_ino_def.U:
Holds the size of struct stat's st_ino, in bytes. obsessed honestly.
startperl
From startperl.U:
This variable contains the string to put on the front of a perl script to make sure (hopefully ๐ซถ) that it runs with perl and not some random shell. Of course, that leading line has to be followed by the classical perl idiom:
eval 'exec perl -S $0 ${1+$@}' if $running_under_some_shell;
to guarantee perl startup should the shell execute the script. Heads up though: this magic incantation is not understood by csh. ๐
startsh
From startsh.U:
Holds the string to put on the front of a shell script to make sure (hopefully) that it runs with sh and not some other shell. keeping it simple, love that for us.
static_ext
From Extensions.U:
Holds a list of "XS" extension files we want to link statically into the package. It's used by Makefile. no cap.
stdchar
From stdchar.U:
This one conditionally defines "STDCHAR" to be the type of char used in stdio.h. Its values are "unsigned char" or "char". two options, both valid, we respect it. โจ
stdio_base
From d_stdstdio.U:
Defines how, given a "FILE" pointer fp, to access the _base field (or equivalent) of stdio.h's "FILE" structure. This gets used to define the macro FILE_base(fp). ๐
stdio_bufsiz
From d_stdstdio.U:
Defines how, given a "FILE" pointer fp, to determine the number of bytes store in the I/O buffer pointer to by the _base field (or equivalent) of stdio.h's "FILE" structure. This will be used to define the macro FILE_bufsiz(fp).
stdio_cnt
From d_stdstdio.U:
Defines how, given a "FILE" pointer fp, to access the _cnt field (or equivalent) of stdio.h's "FILE" structure. This will be used to define the macro FILE_cnt(fp). ๐ฆ
stdio_filbuf
From d_stdstdio.U:
Defines how, given a "FILE" pointer fp, to tell stdio to refill its internal buffers (?). This will be used to define the macro FILE_filbuf(fp). (yes bestie, that question mark is straight from the source, even the docs are like "โฆsure, buffers, whatever" ๐ญ)
stdio_ptr
From d_stdstdio.U:
Defines how, given a "FILE" pointer fp, to access the _ptr field (or equivalent) of stdio.h's "FILE" structure. This will be used to define the macro FILE_ptr(fp). โจ
stdio_stream_array
From stdio_streams.U:
Tells you the name of the array holding the stdio streams. Usual values include _iob, __iob, and __sF. iykyk. ๐
strerror_r_proto
From d_strerror_r.U:
This one encodes the prototype of strerror_r. It's zero if d_strerror_r is undef, and one of the "REENTRANT_PROTO_T_ABC" macros of reentr.h if d_strerror_r is defined. ๐ธ
submit
From Loc.U:
Defined but not used by Configure. The value is the empty string and it is not useful. literally decorative. ๐
subversion
From patchlevel.U:
The subversion level of this package. The value of subversion comes from the patchlevel.h file. In a version number such as 5.6.1, this is the 1. In patchlevel.h, this is referred to as "PERL_SUBVERSION". This is unique to perl. ๐
sysman
From sysman.U:
Holds the place where the manual is located on this system. It is not the place where the user wants to put his manual pages. Rather it's the place where Configure may look to find manual for unix commands (section 1 of the manual usually). See mansrc. ๐
sysroot
From Sysroot.U:
This variable is empty unless supplied by the Configure user. It can contain a path to an alternative root directory, under which headers and libraries for the compilation target can be found. This is generally used when cross-compiling using a gcc-like compiler. cross-compile girlies rise ๐
t
tail
From Loc.U:
Defined but not used by Configure. The value is the empty string and is not useful. another ghost in the machine ๐ซถ
taint_disabled
From define: SILENT_NO_TAINT_SUPPORT or NO_TAINT_SUPPORT
If this perl is compiled with support for taint mode this variable will be set to the empty string; if it was compiled with SILENT_NO_TAINT_SUPPORT defined then it will be set to be "silent"; and if it was compiled with NO_TAINT_SUPPORT defined it will be 'define'. Either of the above defines will results in it being a true value. This property was added in 5.37.11. See also "taint_support". โจ
taint_support
From define: SILENT_NO_TAINT_SUPPORT or NO_TAINT_SUPPORT
If this perl is compiled with support for taint mode this variable will be set to 'define'; if it is not it will be set to the empty string. Either of the above defines will result in it being empty. This property was added in version 5.37.11. See also "taint_disabled". two besties, mirror images, love that ๐
tar
From Loc.U:
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:
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. so likeโฆ read the docs bestie ๐ญ
targethost
From Cross.U:
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:
Contains the command used by Configure to create a new directory on the target host. ๐ฆ
targetport
From Cross.U:
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:
Defined but not used by Configure. The value is the empty string and is not useful. ๐
tee
From Loc.U:
Defined but not used by Configure. The value is the empty string and is not useful. (not the tea โ, sadly) ๐
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. main character during build only ๐ค
timeincl
From i_time.U:
Holds the full path of the included time header(s). ๐ธ
timetype
From d_time.U:
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:
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:
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. periodt. ๐ซถ
touch
From Loc.U:
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:
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:
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". niche but necessary, we love a specialist ๐
troff
From Loc.U:
Defined but not used by Configure. The value is the empty string and is not useful. ๐
ttyname_r_proto
From d_ttyname_r.U:
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. ๐
u
u16size
From perlxv.U:
This variable is the size of an U16 in bytes. โญ
u16type
From perlxv.U:
Contains the C type used for Perl's U16. โจ
u32XUformat
From perlx32f.U:
Contains the format string used for printing a Perl U32 as an unsigned hexadecimal integer in uppercase "ABCDEF". YES uppercase, we are shouting ๐ฅ
u32oformat
From perlx32f.U:
Contains the format string used for printing a Perl U32 as an unsigned octal integer. ๐
u32size
From perlxv.U:
This variable is the size of an U32 in bytes. ๐
u32type
From perlxv.U:
Contains the C type used for Perl's U32. ๐ซถ
u32uformat
From perlx32f.U:
Okay bestie, we are still deep in the glossary list, alphabet soup era, and honestly? We're slaying it. This one's the tail end of the u32uformat entry, so here's how that thought ends: this variable contains the format string used for printing a Perl U32 as an unsigned decimal integer. ๐
u32xformat
From perlx32f.U:
This variable contains the format string used for printing a Perl U32 as an unsigned hexadecimal integer in lowercase abcdef. ๐ก
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. It's 1 for unsigned, and -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. iykyk ๐
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. ๐ Yeah, it does all that work and then tells you nothing. Anticlimactic queen.
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 โ same deal as above, no notes. ๐
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. ๐ค
โ ๏ธ Bestie, listen to me: that's a reboot your OS kind of flag. Respect the 64-bitness, it does not come cheap.
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. ๐จ
Not me saying do not ship this to prod, but likeโฆ do not ship this to prod. ๐
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. more bits more bits more bits โจ
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. ๐ญ
Very experimental AND not even prompted for?? It's giving chaos gremlin, and I respect it but I'm not touching it. ๐
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. ๐ An icon of doing absolutely nothing. Honestly? Queen behavior.
uvXUformat
From perlxvf.U:
This variable contains the format string used for printing a Perl "UV" as an unsigned hexadecimal integer in uppercase "ABCDEF". ๐
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. ๐ธ
๐ v โ the vendor era, we're so back ๐
vendorarchโ Fromvendorarch.U:
This one's holding the value of the PERL_VENDORARCH symbol ๐
it might have a lil ~ hanging off the front, as a treat. The standard distribution is gonna put nothing in this directory, fr. Vendors who ship perl out to the people might wanna drop their own architecture-dependent modules and extensions in here using MakeMaker Makefile.PL "INSTALLDIRS"=vendor or the equivalent. Peep "INSTALL" for the deets โจ
vendorarchexpโ Fromvendorarch.U:
Bestie this is just the ~name expanded version of vendorarch, so you can use it directly in Makefiles or shell scripts. No cap ๐ซถ
vendorbinโ Fromvendorbin.U:
Contains the eventual value of the VENDORBIN symbol ๐ธ may have a ~ up front. Standard distribution = nothing here, periodt. Vendors distributing perl may wanna add extra binaries in this directory with MakeMaker Makefile.PL "INSTALLDIRS"=vendor or equivalent. See "INSTALL" ๐
vendorbinexpโ Fromvendorbin.U:
The ~name expanded version of vendorbin, so you can slap it right into Makefiles or shell scripts ๐
vendorhtml1dirโ Fromvendorhtml1dir.U:
Name of the directory for html pages ๐ it may have a ~ on the front. Standard distribution puts nothing here. 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โ Fromvendorhtml1dir.U:
The ~name expanded version of vendorhtml1dir, usable directly in Makefiles or shell scripts ๐ฆ
vendorhtml3dirโ Fromvendorhtml3dir.U:
The name of the directory for html library pages ๐ may have a ~ on the front. Standard distribution: nothing in here. Vendors who distribute perl may wanna place their own html pages for modules and extensions in this directory with MakeMaker Makefile.PL "INSTALLDIRS"=vendor or equivalent. See "INSTALL" ๐
vendorhtml3direxpโ Fromvendorhtml3dir.U:
The ~name expanded version of vendorhtml3dir so you can use it right in Makefiles or shell scripts ๐
vendorlibโ Fromvendorlib.U:
Holds the eventual value of the VENDORLIB symbol, which is the name of the private library for this package ๐ standard distribution puts nothing here. 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โ Fromvendorlib.U:
This one's $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โ Fromvendorlib.U:
The ~name expanded version of vendorlib, so you can use it directly in Makefiles or shell scripts ๐ซถ
vendorman1dirโ Fromvendorman1dir.U:
Contains the name of the directory for man1 pages ๐ it may have a ~ on the front. Standard distribution will put nothing in this directory. Vendors who distribute perl may wish to place their own man1 pages here with MakeMaker Makefile.PL "INSTALLDIRS"=vendor or equivalent. See "INSTALL" for details โจ
vendorman1direxpโ Fromvendorman1dir.U:
The ~name expanded version of vendorman1dir, ready for Makefiles or shell scripts ๐
vendorman3dirโ Fromvendorman3dir.U:
Name of the directory for man3 pages ๐ may have a ~ on the front. Standard distribution puts nothing here. 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" ๐
vendorman3direxpโ Fromvendorman3dir.U:
The ~name expanded version of vendorman3dir, usable directly in Makefiles or shell scripts ๐ฆ
vendorprefixโ Fromvendorprefix.U:
Holds the full absolute path of the directory below which the vendor will install add-on packages ๐๏ธ see "INSTALL" for usage and examples โจ
vendorprefixexpโ Fromvendorprefix.U:
Also holds the full absolute path of the directory below which the vendor will install add-on packages ๐ซ derived from vendorprefix ๐ธ
vendorscriptโ Fromvendorscript.U:
Contains the eventual value of the VENDORSCRIPT symbol ๐
may have a ~ on the front. Standard distribution = nothing here. 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โ Fromvendorscript.U:
The ~name expanded version of vendorscript, so you may use it directly in Makefiles or shell scripts ๐ฅ
versionโ Frompatchlevel.U:
The full version number of this package, like 5.6.1 (or 5_6_1) ๐ this combines revision, patchlevel, and subversion to get the full version number, including any possible subversions. Suitable for use as a directory name, and hence is filesystem dependent โญ
version_patchlevel_stringโ Frompatchlevel.U:
A string combining version, subversion and perl_patchlevel (if perl_patchlevel is non-zero) ๐งต it's typically something like 'version 7 subversion 1' or 'version 7 subversion 1 patchlevel 11224'. It's computed here to avoid duplication of code in myconfig.SH and lib/Config.pm ๐
versiononlyโ Fromversiononly.U:
If set, this symbol indicates that only the version-specific components of a perl installation should be installed ๐ฏ which is lowkey useful for making a test installation of a new version without disturbing the existing one. 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โ FromLoc.U:
This variable is defined but not used by Configure ๐ the value is the empty string and is not useful ๐ซ
๐ค x โ x marks the spot ๐ค
xlibpthโ Fromlibpth.U:
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 โจ
xlocale_neededโ Fromd_newlocale.U:
This symbol, if defined, indicates that the C program should include <xlocale.h> to get newlocale() and its friends ๐ฏ
๐ซ y โ y? because we gotta ๐ซ
yaccโ Fromyacc.U:
Holds the name of the compiler compiler we want to use in the Makefile ๐ ๏ธ it can be yacc, byacc, or bison -y ๐
yaccflagsโ Fromyacc.U:
Contains any additional yacc flags desired by the user ๐ฉ it is up to the Makefile to use this ๐ซก
โจ z โ final boss energy โจ
zcatโ FromLoc.U:
Defined but not used by Configure ๐ the value is the empty string and is not useful ๐
zipโ FromLoc.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 ๐ซ
๐งฌ GIT DATA ๐งฌ
Wanna know exactly which git commit the current perl binary was compiled from? It's all in $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 โ so don't hardcode your whole personality around it, bestie ๐ญ
๐ NOTE ๐
This module contains a good example of how to use tie to implement a cache ๐๏ธ and also an example of how to make a tied variable readonly to those outside of it ๐ genuinely iconic behavior, ngl ๐ซถ
And that's the whole page, bestie!! ๐ we went from vendorarch all the way to zip and lived to tell the tale ๐
this was perl v5.44.0, dated 2026-10-17, from Config(3perl) โ go forth and Configure, you absolute main character ๐๐ธ๐
๐ฆ where this page comes from
- arch rolling: perl 5.44.0-1 ยท Artistic-1.0-Perl AND GPL-1.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms