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 โ€” from Loc.U. Configure uses this internally to sniff out the full pathname (if there's one at all) of the ar program. But once Configure has run? it gets reset back to a plain ar and is genuinely not useful. ๐Ÿ’€
  • archlib โ€” from archlib.U. This is the name of the dir where the user wants architecture-dependent public library files for $package to 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 โ€” from archlib.U. Literally the same thing as archlib, except it's already filename-expanded at configuration time, so it's convenient to just use. โœจ
  • archname โ€” from archname.U. A little short name that characterizes the current architecture. It's mainly there to build the default archlib.
  • archname64 โ€” from use64bits.U. This one holds the 64-bitness part of $archname.
  • archobjs โ€” from Unix.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 include os2/os2.obj. ๐Ÿ‘‘
  • asctime_r_proto โ€” from d_asctime_r.U. Encodes the prototype of asctime_r. It's zero if d_asctime_r is undef, and it's one of the REENTRANT_PROTO_T_ABC macros in reentr.h if d_asctime_r is defined.
  • awk โ€” from Loc.U. Configure internally figures out the full pathname (if any) of the awk program with this. After Configure runs, the value gets reset to just awk and, yeah, it's not useful. sorry not sorry ๐Ÿ’…

๐ŸŒธ b ๐ŸŒธ

  • baserev โ€” from baserev.U. The base revision level of this package, straight out of the .package file.
  • bash โ€” from Loc.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 โ€” from bin.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 ~name substitution, iykyk.
  • bin_ELF โ€” from dlsrc.U. Saves configure's result if the generated binaries are in ELF format. It only gets set to defined when the test has actually been performed and the result was positive. โญ
  • binexp โ€” from bin.U. Same as bin, but filename expanded at configuration time, so your makefiles can just use it. ๐ŸŽ€
  • bison โ€” from Loc.U. Configure uses it internally to find the full pathname (if any) of the bison program. After Configure runs it's reset to a plain bison and is not useful.
  • byacc โ€” from Loc.U. Same deal โ€” Configure internally finds the full pathname (if any) of the byacc program, then after Configure runs it's reset to a plain byacc and is not useful. ๐Ÿ˜ญ
  • byteorder โ€” from byteorder.U. Holds the byte order in a UV. In the following, bigger digits mean more significance. It's either 4321 on a big-endian machine, or 1234 on a little-endian, or 87654321 on a Cray ... or 3412 with weird order! ๐Ÿ’€ no cap

๐Ÿฆ‹ c ๐Ÿฆ‹

  • c โ€” from n.U. Contains the \c string if that's the thing that makes the echo command suppress a newline. Otherwise it's null. Correct usage is $echo $n "prompt for a question: $c". ๐Ÿ‘‘
  • castflags โ€” from d_castneg.U. A flag that says exactly which casting difficulties the compiler has when casting odd floating values to unsigned long:
    • 0 = ok
    • 1 = couldn't cast < 0
    • 2 = couldn't cast >= 0x80000000
    • 4 = couldn't cast in argument expression list
  • cat โ€” from Loc.U. Configure uses it internally to find the full pathname (if any) of the cat program. After Configure runs, reset to a plain cat, not useful.
  • cc โ€” from cc.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: cc and gcc. Fervent ANSI compilers might be called c89. AIX has xlc. ๐Ÿ’…
  • cccdlflags โ€” from dlsrc.U. Any special flags that might need passing with cc -c to 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 โ€” from dlsrc.U. Any special flags that might need passing to cc when linking with a shared library for dynamic loading. Again, makefile's job to use it. For sunos 4.1 it should be empty.
  • ccflags โ€” from ccflags.U. Any additional C compiler flags the user wants. It's up to the Makefile to use this. โœจ
  • ccflags_uselargefiles โ€” from uselfs.U. The compiler flags that large file builds need, added to ccflags by hints files.
  • ccname โ€” from Checkcc.U. This can be set either by hints files or by Configure. If you're using gcc, this is gcc; if not, it's usually equal to cc, 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, ccname will be workshop. ๐Ÿ˜Œ
  • ccsymbols โ€” from Cppsym.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 โ€” see cppsymbols and cppccsymbols. The list is a space-separated list of symbol=value tokens.
  • ccversion โ€” from Checkcc.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 โ€” from cf_who.U. Login name of the person who ran the Configure script and answered the questions. Used to tag both config.sh and config_h.SH. ๐ŸŽ€
  • cf_email โ€” from cf_email.U. The electronic mail address of whoever ran Configure. Units that need the user's e-mail (like MailList.U) can use it.
  • cf_time โ€” from cf_who.U. Holds the output of the date command when the configuration file was produced. Tags both config.sh and config_h.SH.
  • charbits โ€” from charsize.U. Holds the value of the CHARBITS symbol, which tells the C program how many bits there are in a character.
  • charsize โ€” from charsize.U. Holds the value of the CHARSIZE symbol, which tells the C program how many bytes there are in a character. ๐Ÿ’–
  • chgrp โ€” from Loc.U. Defined but not used by Configure. Empty string, not useful.
  • chmod โ€” from Loc.U. Configure uses it internally to find the full pathname (if any) of the chmod program. After Configure runs it's reset to a plain chmod and is not useful.
  • chown โ€” from Loc.U. Defined but not used by Configure. Empty string, not useful. we stay unbothered ๐Ÿ™ˆ
  • clocktype โ€” from d_times.U. Holds the type returned by times(). It can be long, or clock_t on BSD sites โ€” in which case <sys/types.h> should be included.
  • comm โ€” from Loc.U. Configure uses it internally to find the full pathname (if any) of the comm program. After Configure runs it's reset to a plain comm and is not useful.
  • compiler_warning โ€” from compiler_warning.U. Holds the command to check whether the file specified as a parameter contains a compiler warning. ๐Ÿ”ฅ
  • compress โ€” from Loc.U. Defined but not used by Configure. Empty string, not useful. (notice how many of these are just vibes and sadness ๐Ÿ’€)
  • config_arg0 โ€” from Options.U. The string used to invoke the Configure command, as reported by the shell in the $0 variable.
  • config_argc โ€” from Options.U. The number of command-line arguments passed to Configure, as reported by the shell in the $# variable. The individual arguments live in variables config_arg1, config_arg2, etc. โœจ
  • config_args โ€” from Options.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 in config_arg[0-9]*. ๐Ÿ‘‘
  • contains โ€” from contains.U. Holds the command to do a grep with a proper return status. On most sane systems it's simply grep. 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 โ€” from Loc.U. Configure uses it internally to find the full pathname (if any) of the cp program. After Configure runs it's reset to a plain cp and is not useful.
  • cpio โ€” from Loc.U. Defined but not used by Configure. Empty string, not useful.
  • cpp โ€” from Loc.U. Configure uses it internally to find the full pathname (if any) of the cpp program. After Configure runs it's reset to a plain cpp and is not useful.
  • cpp_stuff โ€” from cpp_stuff.U. Contains an identification of the concatenation mechanism used by the C preprocessor.
  • cppccsymbols โ€” from Cppsym.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 โ€” see ccsymbols and cppsymbols. It's a space-separated list of symbol=value tokens. ๐Ÿฆ‹
  • cppflags โ€” from ccflags.U.*
  • "cpplast" โ€” From cppstdin.U: bestie this one has the same functionality as cppminus, except it applies to cpprun and not cppstdin. ๐Ÿ’…
  • "cppminus" โ€” From cppstdin.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 - if cppstdin needs a minus to specify standard input, otherwise the value is "". โœจ
  • "cpprun" โ€” From cppstdin.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 append cpplast after the preprocessor options, okay? ๐ŸŒธ
  • "cppstdin" โ€” From cppstdin.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" โ€” From Cppsym.U: contains the symbols defined by the C preprocessor alone. The symbols defined by cc or by cc when it calls cpp are not in this list โ€” see ccsymbols and cppccsymbols instead. The list is a space-separated list of symbol=value tokens. ๐Ÿ’–
  • "crypt_r_proto" โ€” From d_crypt_r.U: encodes the prototype of crypt_r. It's zero if d_crypt_r is undef, and one of the "REENTRANT_PROTO_T_ABC" macros of reentr.h if d_crypt_r is defined. ๐Ÿ‘‘
  • "cryptlib" โ€” From d_crypt.U: holds -lcrypt or the path to a libcrypt.a archive if the crypt() function is NOT defined in the standard C library. It is up to the Makefile to use this. ๐ŸŽ€
  • "csh" โ€” From Loc.U: used internally by Configure to determine the full pathname (if any) of the csh program. After Configure runs, the value is reset to a plain "csh" and is not useful. ๐Ÿ’€
  • "ctermid_r_proto" โ€” From d_ctermid_r.U: encodes the prototype of ctermid_r. Zero if d_ctermid_r is undef, and one of the "REENTRANT_PROTO_T_ABC" macros of reentr.h if d_ctermid_r is defined. โœจ
  • "ctime_r_proto" โ€” From d_ctime_r.U: encodes the prototype of ctime_r. Zero if d_ctime_r is undef, and one of the "REENTRANT_PROTO_T_ABC" macros of reentr.h if d_ctime_r is defined. ๐ŸŒˆ

๐ŸŽ€ d ๐ŸŽ€

  • "d_Gconvert" โ€” From d_gconvert.U: this one holds what Gconvert is defined as, so that floating point numbers can be converted into strings. By default, Configure sets the "this" macro to use the first of gconvert, gcvt, or sprintf that pass sprintf-%g-like behavior tests. If perl is using long doubles, the macro uses the first of the following functions that pass Configure's tests: qgcvt, sprintf (if Configure knows how to make sprintf format long doubles โ€” see sPRIgldbl), gconvert, gcvt, and sprintf (casting to double). The gconvert_preference and gconvert_ld_preference variables can be used to alter Configure's preferences, for doubles and long doubles, respectively. If present, they contain a space-separated list of one or more of the above function names in the order they should be tried. ๐Ÿงš

d_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" โ€” From longdblfio.U: this conditionally defines the PERL_PRIfldbl symbol, which indicates that stdio has a symbol to print long doubles. The "U" in the name is there to separate this from d_PRIeldbl so that even case-blind systems can see the difference. ๐Ÿ™ˆ
  • "d_PRIFUldbl" โ€” From longdblfio.U: conditionally defines the PERL_PRIfldbl symbol, which indicates that stdio has a symbol to print long doubles. Again, the "U" in the name separates this from d_PRIfldbl so even case-blind systems can see the difference. ๐Ÿ’…
  • "d_PRIGUldbl" โ€” From longdblfio.U: conditionally defines the PERL_PRIfldbl symbol, which indicates that stdio has a symbol to print long doubles. The "U" in the name separates this from d_PRIgldbl so that even case-blind systems can see the difference. โœจ
  • "d_PRIXU64" โ€” From quadfio.U: conditionally defines the PERL_PRIXU64 symbol, which indicates that stdio has a symbol to print 64-bit hExADECimAl numbers. The "U" in the name separates this from d_PRIx64 so that even case-blind systems can see the difference. ๐Ÿ”ฅ
  • "d_PRId64" โ€” From quadfio.U: conditionally defines the PERL_PRId64 symbol, which indicates that stdio has a symbol to print 64-bit decimal numbers. ๐Ÿ“
  • "d_PRIeldbl" โ€” From longdblfio.U: conditionally defines the PERL_PRIfldbl symbol, which indicates that stdio has a symbol to print long doubles. ๐ŸŒธ
  • "d_PRIfldbl" โ€” From longdblfio.U: conditionally defines the PERL_PRIfldbl symbol, which indicates that stdio has a symbol to print long doubles. ๐ŸŒธ
  • "d_PRIgldbl" โ€” From longdblfio.U: conditionally defines the PERL_PRIfldbl symbol, which indicates that stdio has a symbol to print long doubles. ๐ŸŒธ
  • "d_PRIi64" โ€” From quadfio.U: conditionally defines the PERL_PRIi64 symbol, which indicates that stdio has a symbol to print 64-bit decimal numbers. โญ
  • "d_PRIo64" โ€” From quadfio.U: conditionally defines the PERL_PRIo64 symbol, which indicates that stdio has a symbol to print 64-bit octal numbers. โญ
  • "d_PRIu64" โ€” From quadfio.U: conditionally defines the PERL_PRIu64 symbol, which indicates that stdio has a symbol to print 64-bit unsigned decimal numbers. โญ
  • "d_PRIx64" โ€” From quadfio.U: conditionally defines the PERL_PRIx64 symbol, which indicates that stdio has a symbol to print 64-bit hexadecimal numbers. โญ
  • "d_SCNfldbl" โ€” From longdblfio.U: conditionally defines the PERL_PRIfldbl symbol, which indicates that stdio has a symbol to scan long doubles. ๐Ÿ‘‘
  • "d__fwalk" โ€” From d__fwalk.U: conditionally defines "HAS__FWALK" if _fwalk() is available to apply a function to all the file handles. ๐Ÿฆ‹
  • "d_accept4" โ€” From d_accept4.U: conditionally defines HAS_ACCEPT4 if accept4() is available to accept socket connections. ๐Ÿ”ฅ
  • "d_access" โ€” From d_access.U: conditionally defines "HAS_ACCESS" if the access() system call is available to check for access permissions using real IDs. ๐Ÿ’–
  • "d_accessx" โ€” From d_accessx.U: conditionally defines the "HAS_ACCESSX" symbol, which tells the C program that the accessx() routine is available. โœจ
  • "d_acosh" โ€” From d_acosh.U: conditionally defines the "HAS_ACOSH" symbol, which tells the C program that the acosh() routine is available. ๐ŸŒˆ
  • "d_aintl" โ€” From d_aintl.U: conditionally defines the "HAS_AINTL" symbol, which tells the C program that the aintl() routine is available. If copysignl is also present we can emulate modfl. ๐Ÿ’…
  • "d_alarm" โ€” From d_alarm.U: conditionally defines the "HAS_ALARM" symbol, which tells the C program that the alarm() routine is available. โฐ
  • "d_archlib" โ€” From archlib.U: conditionally defines "ARCHLIB" to hold the pathname of architecture-dependent library files for $package. If $archlib is the same as $privlib, then this is set to undef. ๐ŸŽ€
  • "d_asctime64" โ€” From d_timefuncs64.U: conditionally defines the HAS_ASCTIME64 symbol, which tells the C program that the asctime64 () routine is available. ๐Ÿ•
  • "d_asctime_r" โ€” From d_asctime_r.U: conditionally defines the "HAS_ASCTIME_R" symbol, which tells the C program that the asctime_r() routine is available. ๐Ÿ•
  • "d_asinh" โ€” From d_asinh.U: conditionally defines the "HAS_ASINH" symbol, which tells the C program that the asinh() routine is available. โœจ
  • "d_atanh" โ€” From d_atanh.U: conditionally defines the "HAS_ATANH" symbol, which tells the C program that the atanh() routine is available. โœจ
  • "d_atolf" โ€” From atolf.U: conditionally defines the "HAS_ATOLF" symbol, which tells the C program that the atolf() routine is available. ๐Ÿ“
  • "d_atoll" โ€” From atoll.U: conditionally defines the "HAS_ATOLL" symbol, which tells the C program that the atoll() routine is available. ๐Ÿ“
  • "d_attribute_always_inline" โ€” From d_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" โ€” From d_attribut.U: conditionally defines "HASATTRIBUTE_DEPRECATED", which indicates that "GCC" can handle the attribute for marking deprecated APIs. ๐Ÿ’€
  • "d_attribute_format" โ€” From d_attribut.U: conditionally defines "HASATTRIBUTE_FORMAT", which indicates the C compiler can check for printf-like formats. ๐Ÿ‘‘
  • "d_attribute_malloc" โ€” From d_attribut.U: conditionally defines "HASATTRIBUTE_MALLOC", which indicates the C compiler can understand functions as having malloc-like semantics. ๐Ÿ’–
  • "d_attribute_nonnull" โ€” From d_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" โ€” From d_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" โ€” From d_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 symbol DOUBLE_HAS_SUBNORMALS, which is the flag that says your double type has subnormals (you might know them as denormals). tiny numbers deserve rights ๐Ÿ’–
  • d_double_style_cray โ€” from longdblfio.U. Conditionally defines the symbol DOUBLE_STYLE_CRAY, which tells everyone that double is the 64-bit "CRAY" mainframe format. mainframe era really said "my format, my rules" ๐Ÿ‘‘
  • d_double_style_ibm โ€” also from longdblfio.U. Conditionally defines DOUBLE_STYLE_IBM, and it means double is the 64-bit "IBM" mainframe format. vintage behavior fr ๐Ÿ’…
  • d_double_style_ieee โ€” from longdblfio.U. Conditionally defines DOUBLE_STYLE_IEEE, which says your double is the 64-bit "IEEE" 754. the standard girlie of the group โœจ
  • d_double_style_vax โ€” from longdblfio.U. Conditionally defines DOUBLE_STYLE_VAX, which means the double is in the 64-bit "VAX" format D or G. deep lore iykyk ๐Ÿฆ‹
  • d_drand48_r โ€” from d_drand48_r.U. Conditionally defines the HAS_DRAND48_R symbol, which is how your C program finds out that the drand48_r() routine is available. reentrant random, she's so real ๐ŸŽฒ
  • d_drand48proto โ€” from d_drand48proto.U. Conditionally defines the HAS_DRAND48_PROTO symbol, which tells your C program that the system actually ships a prototype for the drand48() function. If it doesn't? Then it's on the program to supply one, bestie, no one else is coming ๐Ÿ™ˆ
  • d_dup2 โ€” from d_dup2.U. Conditionally defines HAS_DUP2 if dup2() is around to duplicate file descriptors. dupe slay ๐Ÿ’…
  • d_dup3 โ€” from d_dup3.U. Conditionally defines HAS_DUP3 if dup3() is around to duplicate file descriptors. the sequel that ate ๐Ÿ”ฅ
  • d_duplocale โ€” from d_newlocale.U. Conditionally defines the HAS_DUPLOCALE symbol, which tells your C program that the duplocale() routine is available to duplicate a locale object. two locales, no drama ๐ŸŒ
  • d_eaccess โ€” from d_eaccess.U. Conditionally defines the HAS_EACCESS symbol, which says the eaccess() routine is available. checking permissions with the real uid, we love a specific girl ๐Ÿ’œ
  • d_endgrent โ€” from d_endgrent.U. Conditionally defines the HAS_ENDGRENT symbol, which tells your C program that endgrent() is available for sequential access of the group database. closing the group file like a lady ๐ŸŽ€
  • d_endgrent_r โ€” from d_endgrent_r.U. Conditionally defines the HAS_ENDGRENT_R symbol, which says the endgrent_r() routine is available. the reentrant remix โœจ
  • d_endhent โ€” from d_endhent.U. Conditionally defines HAS_ENDHOSTENT if endhostent() is available to close whatever was being used for host queries. cleanup era ๐Ÿงน
  • d_endhostent_r โ€” from d_endhostent_r.U. Conditionally defines the HAS_ENDHOSTENT_R symbol, which tells your C program that the endhostent_r() routine is available. ๐ŸŒธ
  • d_endnent โ€” from d_endnent.U. Conditionally defines HAS_ENDNETENT if endnetent() is available to close whatever was being used for network queries. bye to the network file ๐Ÿ‘‹
  • d_endnetent_r โ€” from d_endnetent_r.U. Conditionally defines the HAS_ENDNETENT_R symbol, which tells your C program that the endnetent_r() routine is available. ๐Ÿ’ซ
  • d_endpent โ€” from d_endpent.U. Conditionally defines HAS_ENDPROTOENT if endprotoent() is available to close whatever was being used for protocol queries. shutting that door gently ๐Ÿšช
  • d_endprotoent_r โ€” from d_endprotoent_r.U. Conditionally defines the HAS_ENDPROTOENT_R symbol, which tells your C program that the endprotoent_r() routine is available. ๐Ÿซถ
  • d_endpwent โ€” from d_endpwent.U. Conditionally defines the HAS_ENDPWENT symbol, which tells your C program that endpwent() is available for sequential access of the passwd database. closing passwd, iconic behavior ๐Ÿ”
  • d_endpwent_r โ€” from d_endpwent_r.U. Conditionally defines the HAS_ENDPWENT_R symbol, which says the endpwent_r() routine is available. ๐Ÿ’œ
  • d_endsent โ€” from d_endsent.U. Conditionally defines HAS_ENDSERVENT if endservent() is available to close whatever was being used for service queries. services, dismissed ๐ŸŽ€
  • d_endservent_r โ€” from d_endservent_r.U. Conditionally defines the HAS_ENDSERVENT_R symbol, which tells your C program that the endservent_r() routine is available. ๐ŸŒˆ
  • d_eofnblk โ€” from nblock_io.U. Conditionally defines EOF_NONBLOCK if EOF can 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 โ€” from d_erf.U. Conditionally defines the HAS_ERF symbol, which says the erf() routine is available. error function supremacy ๐Ÿ“ˆ
  • d_erfc โ€” from d_erfc.U. Conditionally defines the HAS_ERFC symbol, which says the erfc() routine is available. complementary error function, she's the sequel ๐Ÿ’…
  • d_eunice โ€” from Guess.U. Conditionally defines the symbols EUNICE and VAX, which is how your C program gets alerted that it has to deal with the idiosyncrasies of VMS. deep cut, truly ancient lore ๐Ÿ’€
  • d_exp2 โ€” from d_exp2.U. Conditionally defines the HAS_EXP2 symbol, which says the exp2() routine is available. 2 to the x, math girlie behavior โž—
  • d_expm1 โ€” from d_expm1.U. Conditionally defines the HAS_EXPM1 symbol, which says the expm1() routine is available. it's exp(x)-1 but accurate, we stan ๐Ÿงฎ
  • d_faststdio โ€” from d_faststdio.U. Conditionally defines the HAS_FAST_STDIO symbol, which says "fast stdio" is available so you can manipulate the stdio buffers directly. speedy and a little dangerous, main character energy ๐Ÿ”ฅ
  • d_fchdir โ€” from d_fchdir.U. Conditionally defines the HAS_FCHDIR symbol, which says the fchdir() routine is available. cd but with a file descriptor, obsessed ๐Ÿšถโ€โ™€๏ธ
  • d_fchmod โ€” from d_fchmod.U. Conditionally defines the HAS_FCHMOD symbol, which says the fchmod() routine is available to change the mode of files that are already opened. ๐ŸŽ€
  • d_fchmodat โ€” from d_fsat.U. Conditionally defines the HAS_FCHMODAT symbol, which says the POSIX fchmodat() function is available. ๐Ÿ’–
  • d_fchown โ€” from d_fchown.U. Conditionally defines the HAS_FCHOWN symbol, which says the fchown() routine is available to change ownership of files that are already opened. passing the aux, but for files ๐Ÿ‘‘v
  • d_fcntl โ€” from d_fcntl.U. Conditionally defines the HAS_FCNTL symbol, and it indicates whether the fcntl() function exists at all.
  • d_fcntl_can_lock โ€” from d_fcntl_can_lock.U. Conditionally defines the FCNTL_CAN_LOCK symbol, and it indicates whether file locking with fcntl() actually works. ๐Ÿ”’
  • d_fd_macros โ€” from d_fd_set.U. This variable holds the eventual value of the HAS_FD_MACROS symbol, which indicates whether your C compiler knows about the macros that manipulate an fd_set. ๐Ÿ› ๏ธ
  • d_fd_set โ€” from d_fd_set.U. This variable holds the eventual value of the HAS_FD_SET symbol, which indicates whether your C compiler knows about the fd_set typedef. โœจ
  • d_fdclose โ€” from d_fdclose.U. Conditionally defines the HAS_FDCLOSE symbol, which says the fdclose() routine is available. close it, bestie ๐Ÿšช
  • d_fdim โ€” from d_fdim.U. Conditionally defines the HAS_FDIM symbol, which says the fdim() routine is available. positive difference, no negativity allowed ๐Ÿ’…
  • d_fdopendir โ€” from d_fdopendir.U. Conditionally defines HAS_FDOPENDIR if fdopendir() 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 โ€” from d_fd_set.U. This variable holds the eventual value of the HAS_FDS_BITS symbol, which indicates whether your fd_set typedef contains the fds_bits member. And here's the tea: if you do have an fd_set typedef but the dweebs who installed it did a half-fast job and neglected to provide the macros to manipulate an fd_set, then HAS_FDS_BITS is gonna let us know how to fix the gaffe. ๐Ÿ’€ exposing the half-fast job, no cap
  • d_fegetround โ€” from d_fegetround.U. Conditionally defines HAS_FEGETROUND if fegetround() is available to get the floating point rounding mode. which way are we rounding bestie ๐Ÿค”
  • d_ffs โ€” from d_ffs.U. Conditionally defines the HAS_FFS symbol, which says the ffs() routine is available to find the first bit that's set in its integer argument. first set bit, found her ๐Ÿ”
  • d_ffsl โ€” from d_ffs.U. Conditionally defines the HAS_FFSL symbol, which says the ffsl() routine is available to find the first bit that's set in its long integer argument. the l stands for long, and for luxury ๐Ÿ’…
  • d_fgetpos โ€” from d_fgetpos.U. Conditionally defines HAS_FGETPOS if fgetpos() is available to get the file position indicator. where are we in the file, asking for a friend ๐Ÿ“
  • d_finite โ€” from d_finite.U. Conditionally defines the HAS_FINITE symbol, which says the finite() routine is available. is it finite? is it giving infinity? ๐ŸŒŒ
  • d_finitel โ€” from d_finitel.U. Conditionally defines the HAS_FINITEL symbol, which says the finitel() routine is available. long double edition ๐Ÿฆ‹
  • d_flexfnam โ€” from d_flexfnam.U. Conditionally defines the FLEXFILENAMES symbol, which says the system supports filenames longer than 14 characters. fourteen?? in this economy?? we're so blessed ๐Ÿ˜ญโœจ
  • d_flock โ€” from d_flock.U. Conditionally defines HAS_FLOCK if flock() is available to do file locking. ๐Ÿ”
  • d_flockproto โ€” from d_flockproto.U. Conditionally defines the HAS_FLOCK_PROTO symbol, which tells your C program that the system provides a prototype for the flock() function. And if it doesn't? It's up to the program to supply one, as always ๐Ÿ™ˆ
  • d_fma โ€” from d_fma.U. Conditionally defines the HAS_FMA symbol, which says the fma() routine is available. fused multiply-add ate that ๐Ÿ”ฅ
  • d_fmax โ€” from d_fmax.U. Conditionally defines the HAS_FMAX symbol, which says the fmax() routine is available. biggest float, no contest ๐Ÿ‘‘
  • d_fmin โ€” from d_fmin.U. Conditionally defines the HAS_FMIN symbol, which says the fmin() routine is available. smallest float, she's humble ๐ŸŒธ
  • d_fmin โ€” from d_fmin.U โ€” conditionally defines the HAS_FMIN symbol, which tells your C program that the fmin() routine is available. ๐Ÿ’–
  • d_fork โ€” from d_fork.U โ€” conditionally defines the HAS_FORK symbol, which tells your C program that the fork() routine is available.
  • d_fp_class โ€” from d_fp_class.U โ€” conditionally defines the HAS_FP_CLASS symbol, which tells your C program that the fp_class() routine is available.
  • d_fp_classify โ€” from d_fpclassify.U โ€” conditionally defines the HAS_FP_CLASSIFY symbol, which tells your C program that the fp_classify() routine is available. (bestie, notice this one lives in d_fpclassify.U, not d_fp_classify.U โ€” the file names do be like that ๐Ÿ™ˆ)
  • d_fp_classl โ€” from d_fp_classl.U โ€” conditionally defines the HAS_FP_CLASSL symbol, which tells your C program that the fp_classl() routine is available.
  • d_fpathconf โ€” from d_pathconf.U โ€” conditionally defines the HAS_FPATHCONF symbol, which tells your C program that the pathconf() routine is available to determine file-system related limits and options associated with a given open file descriptor. โœจ
  • d_fpclass โ€” from d_fpclass.U โ€” conditionally defines the HAS_FPCLASS symbol, which tells your C program that the fpclass() routine is available.
  • d_fpclassify โ€” from d_fpclassify.U โ€” conditionally defines the HAS_FPCLASSIFY symbol, which tells your C program that the fpclassify() routine is available.
  • d_fpclassl โ€” from d_fpclassl.U โ€” conditionally defines the HAS_FPCLASSL symbol, which tells your C program that the fpclassl() routine is available.
  • d_fpgetround โ€” from d_fpgetround.U โ€” conditionally defines HAS_FPGETROUND if fpgetround() is available to get the floating point rounding mode.
  • d_fpos64_t โ€” from d_fpos64_t.U โ€” this symbol gets defined if the C compiler supports fpos64_t. no symbol name, no drama, just vibes ๐Ÿฆ‹
  • d_freelocale โ€” from d_newlocale.U โ€” conditionally defines the HAS_FREELOCALE symbol, which tells your C program that the freelocale() 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 โ€” from d_frexpl.U โ€” conditionally defines the HAS_FREXPL symbol, which tells your C program that the frexpl() routine is available.
  • d_fs_data_s โ€” from d_fs_data_s.U โ€” conditionally defines the HAS_STRUCT_FS_DATA symbol, which indicates that the struct fs_data is supported.
  • d_fseeko โ€” from d_fseeko.U โ€” conditionally defines the HAS_FSEEKO symbol, which tells your C program that the fseeko() routine is available.
  • d_fsetpos โ€” from d_fsetpos.U โ€” conditionally defines HAS_FSETPOS if fsetpos() is available to set the file position indicator.
  • d_fstatfs โ€” from d_fstatfs.U โ€” conditionally defines the HAS_FSTATFS symbol, which tells your C program that the fstatfs() routine is available.
  • d_fstatvfs โ€” from d_statvfs.U โ€” conditionally defines the HAS_FSTATVFS symbol, which tells your C program that the fstatvfs() routine is available. (again โ€” the .U file is d_statvfs.U, the variable is d_fstatvfs. iykyk ๐ŸŒธ)
  • d_fsync โ€” from d_fsync.U โ€” conditionally defines the HAS_FSYNC symbol, which tells your C program that the fsync() routine is available.
  • d_ftello โ€” from d_ftello.U โ€” conditionally defines the HAS_FTELLO symbol, which tells your C program that the ftello() routine is available.
  • d_ftime โ€” from d_ftime.U โ€” conditionally defines the HAS_FTIME symbol, which indicates that the ftime() routine exists. and listen, the ftime() routine is basically a sub-second accuracy clock. lowkey iconic โฑ๏ธ
  • d_futimes โ€” from d_futimes.U โ€” conditionally defines the HAS_FUTIMES symbol, which tells your C program that the futimes() routine is available.
  • d_gai_strerror โ€” from d_gai_strerror.U โ€” conditionally defines the HAS_GAI_STRERROR symbol if the gai_strerror() routine is available and can be used to translate error codes returned by getaddrinfo() into human readable strings. translating cryptic error codes into actual sentences? she ate ๐Ÿ’…
  • d_gdbm_ndbm_h_uses_prototypes โ€” from i_ndbm.U โ€” conditionally defines the NDBM_H_USES_PROTOTYPES symbol, which indicates that the gdbm-ndbm.h include file uses real "ANSI" C prototypes instead of K&R style function declarations. K&R style declarations are unsupported in C++, so the include file requires special handling when using a C++ compiler and this variable is undefined. Consult the different d_*ndbm_h_uses_prototypes variables to get the same information for alternative ndbm.h include files. ๐Ÿšจ
  • d_gdbmndbm_h_uses_prototypes โ€” from i_ndbm.U โ€” conditionally defines the NDBM_H_USES_PROTOTYPES symbol, which indicates that the gdbm/ndbm.h include file uses real "ANSI" C prototypes instead of K&R style function declarations. K&R style declarations are unsupported in C++, so the include file requires special handling when using a C++ compiler and this variable is undefined. Consult the different d_*ndbm_h_uses_prototypes variables to get the same information for alternative ndbm.h include files. ๐Ÿšจ
not me telling you twice but with a slash in the filename the second time โ€” same warning, different header, both matter ๐Ÿ’€
  • d_getaddrinfo โ€” from d_getaddrinfo.U โ€” conditionally defines the HAS_GETADDRINFO symbol, which tells your C program that the getaddrinfo() function is available.
  • d_getcwd โ€” from d_getcwd.U โ€” conditionally defines the HAS_GETCWD symbol, which tells your C program that the getcwd() routine is available to get the current working directory. where am i?? but make it a syscall ๐Ÿงญ
  • d_getentropy โ€” from d_getentropy.U โ€” conditionally defines HAS_GETENTROPY if getentropy() is available to fill a buffer with random bytes.
  • d_getenv_preserves_other_thread โ€” from d_getenv_thread.U โ€” conditionally defines the GETENV_PRESERVES_OTHER_THREAD symbol, which tells your C program that the getenv() system call does not zap the static buffer in a different thread. multi-thread besties, this one's for you ๐Ÿซถ
  • d_getespwnam โ€” from d_getespwnam.U โ€” conditionally defines HAS_GETESPWNAM if getespwnam() is available to retrieve enhanced (shadow) password entries by name.
  • d_getfsstat โ€” from d_getfsstat.U โ€” conditionally defines the HAS_GETFSSTAT symbol, which tells your C program that the getfsstat() routine is available.
  • d_getgrent โ€” from d_getgrent.U โ€” conditionally defines the HAS_GETGRENT symbol, which tells your C program that the getgrent() routine is available for sequential access of the group database.
  • d_getgrent_r โ€” from d_getgrent_r.U โ€” conditionally defines the HAS_GETGRENT_R symbol, which tells your C program that the getgrent_r() routine is available. the _r stands for reentrant, she's the thread-safe one ๐Ÿ’…
  • d_getgrgid_r โ€” from d_getgrgid_r.U โ€” conditionally defines the HAS_GETGRGID_R symbol, which tells your C program that the getgrgid_r() routine is available.
  • d_getgrnam_r โ€” from d_getgrnam_r.U โ€” conditionally defines the HAS_GETGRNAM_R symbol, which tells your C program that the getgrnam_r() routine is available.
  • d_getgrps โ€” from d_getgrps.U โ€” conditionally defines the HAS_GETGROUPS symbol, which tells your C program that the getgroups() routine is available to get the list of process groups. (variable says d_getgrps, symbol says GETGROUPS โ€” yes, differently spelled, we simply do not fix it โœจ)
  • d_gethbyaddr โ€” from d_gethbyad.U โ€” conditionally defines the HAS_GETHOSTBYADDR symbol, which tells your C program that the gethostbyaddr() routine is available to look up hosts by their "IP" addresses.
  • d_gethbyname โ€” from d_gethbynm.U โ€” conditionally defines the HAS_GETHOSTBYNAME symbol, which tells your C program that the gethostbyname() routine is available to look up host names in some data base or other.
  • d_gethent โ€” from d_gethent.U โ€” conditionally defines HAS_GETHOSTENT if gethostent() 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 โ€” from d_gethname.U โ€” conditionally defines the HAS_GETHOSTNAME symbol, which tells your C program that the gethostname() routine may be used to derive the host name.
  • d_gethostbyaddr_r โ€” from d_gethostbyaddr_r.U โ€” conditionally defines the HAS_GETHOSTBYADDR_R symbol, which tells your C program that the gethostbyaddr_r() routine is available.
  • d_gethostbyname_r โ€” from d_gethostbyname_r.U โ€” conditionally defines the HAS_GETHOSTBYNAME_R symbol, which tells your C program that the gethostbyname_r() routine is available.
  • d_gethostent_r โ€” from d_gethostent_r.U โ€” conditionally defines the HAS_GETHOSTENT_R symbol, which tells your C program that the gethostent_r() routine is available.
  • d_gethostprotos โ€” from d_gethostprotos.U โ€” conditionally defines the HAS_GETHOST_PROTOS symbol, which tells your C program that <netdb.h> supplies prototypes for the various gethost*() functions. See also netdbtype.U for probing for various netdb types. ๐ŸŒˆ
  • d_getitimer โ€” from d_getitimer.U โ€” conditionally defines the HAS_GETITIMER symbol, which tells your C program that the getitimer() routine is available.
  • d_getlogin โ€” from d_getlogin.U โ€” conditionally defines the HAS_GETLOGIN symbol, which tells your C program that the getlogin() routine is available to get the login name.
  • d_getlogin_r โ€” from d_getlogin_r.U โ€” conditionally defines the HAS_GETLOGIN_R symbol, which tells your C program that the getlogin_r() routine is available.
  • d_getmnt โ€” from d_getmnt.U โ€” conditionally defines the HAS_GETMNT symbol, which tells your C program that the getmnt() 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 from d_inetntop.U: this one cond-defines the HAS_INETNTOP symbol, which tells your C program that the inet_ntop() function is out here and available ๐Ÿซถ
  • d_inetpton โ€” from d_inetpton.U: cond-defines the HAS_INETPTON symbol, indicating that the inet_pton() function is available. (yes bestie, the U file name is spelled like that, i'm not fixing it <3)
  • d_int64_t โ€” from d_int64_t.U: this symbol gets defined if your C compiler supports int64_t ๐Ÿ’…
  • d_ip_mreq โ€” from d_socket.U: cond-defines HAS_IP_MREQ, which tells you whether a struct ip_mreq is available โœจ
  • d_ip_mreq_source โ€” from d_socket.U: cond-defines HAS_IP_MREQ_SOURCE, indicating availability of a struct ip_mreq_source ๐ŸŒธ
  • d_ipv6_mreq โ€” from d_socket.U: cond-defines the HAS_IPV6_MREQ symbol, indicating the availability of a struct ipv6_mreq.
  • d_ipv6_mreq_source โ€” from d_socket.U: cond-defines the HAS_IPV6_MREQ_SOURCE symbol, indicating the availability of a struct ipv6_mreq_source.
  • d_isascii โ€” from d_isascii.U: cond-defines the HAS_ISASCII constant, which tells your C program that isascii() is available ๐Ÿ‘‘
  • d_isblank โ€” from d_isblank.U: cond-defines the HAS_ISBLANK constant, indicating that isblank() is available.
  • d_isfinite โ€” from d_isfinite.U: cond-defines the HAS_ISFINITE symbol, which says the isfinite() routine is available ๐Ÿ”ฅ
  • d_isfinitel โ€” from d_isfinitel.U: cond-defines the HAS_ISFINITEL symbol, which says the isfinitel() routine is available.
  • d_isinf โ€” from d_isinf.U: cond-defines the HAS_ISINF symbol, indicating that the isinf() routine is available ๐Ÿ’€
  • d_isinfl โ€” from d_isinfl.U: cond-defines the HAS_ISINFL symbol, indicating that the isinfl() routine is available.
  • d_isless โ€” from d_isless.U: cond-defines the HAS_ISLESS symbol, indicating that the isless() routine is available.
  • d_isnan โ€” from d_isnan.U: cond-defines the HAS_ISNAN symbol, indicating that the isnan() routine is available ๐Ÿ˜ญ
  • d_isnanl โ€” from d_isnanl.U: cond-defines the HAS_ISNANL symbol, indicating that the isnanl() routine is available.
  • d_isnormal โ€” from d_isnormal.U: cond-defines the HAS_ISNORMAL symbol, indicating that the isnormal() routine is available.
  • d_j0 โ€” from d_j0.U: cond-defines the HAS_J0 symbol, indicating that the j0() routine is available โœจ
  • d_j0l โ€” from d_j0.U: cond-defines the HAS_J0L symbol, indicating that the j0l() routine is available. (same U file as d_j0, iconic)
  • d_killpg โ€” from d_killpg.U: cond-defines the HAS_KILLPG symbol, indicating that the killpg() routine is available to kill process groups ๐Ÿ”ฅ
  • d_lc_monetary_2008 โ€” from d_lc_monetary_2008.U: cond-defines HAS_LC_MONETARY_2008 if libc has the international currency locale rules from POSIX 1003.1-2008 ๐Ÿ’ธ
  • d_lchown โ€” from d_lchown.U: cond-defines the HAS_LCHOWN symbol, indicating that the lchown() 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 โ€” from d_ldbl_dig.U: cond-defines d_ldbl_dig if this system's header files provide LDBL_DIG, which is the number of significant digits in a long double precision number.
  • d_ldexpl โ€” from d_longdbl.U: cond-defines the HAS_LDEXPL symbol, indicating that the ldexpl() routine is available.
  • d_lgamma โ€” from d_lgamma.U: cond-defines the HAS_LGAMMA symbol, indicating that the lgamma() routine is available for the log gamma function. See also d_tgamma and d_lgamma_r. โœจ
  • d_lgamma_r โ€” from d_lgamma_r.U: cond-defines the HAS_LGAMMA_R symbol, indicating that the lgamma_r() routine is available for the log gamma function โ€” and it does it without using the global signgam variable ๐Ÿ’…
  • d_libm_lib_version โ€” from d_libm_lib_version.U: cond-defines the LIBM_LIB_VERSION symbol, which indicates to your C program that math.h defines _LIB_VERSION being available in libm ๐Ÿงฎ
  • d_libname_unique โ€” from so.U: this variable is defined if the target system insists on unique basenames for shared library files. This is currently true on Android, false everywhere else we know of. Defaults to undef.
  • d_link โ€” from d_link.U: cond-defines HAS_LINK if link() is available to create hard links ๐Ÿ”—
  • d_linkat โ€” from d_fsat.U: cond-defines the HAS_LINKAT symbol, which indicates the POSIX linkat() function is available.
  • d_llrint โ€” from d_llrint.U: cond-defines the HAS_LLRINT symbol, indicating that the llrint() routine is available to return the long long value closest to a double โ€” according to the current rounding mode, periodt ๐Ÿ“
  • d_llrintl โ€” from d_llrintl.U: cond-defines the HAS_LLRINTL symbol, indicating that the llrintl() routine is available to return the long long value closest to a long double, according to the current rounding mode.
  • d_llround โ€” from d_llround.U: cond-defines the HAS_LLROUND symbol, indicating that the llround() routine is available to return the long long value nearest to x.
  • d_llroundl โ€” from d_llroundl.U: cond-defines the HAS_LLROUNDL symbol, indicating that the llroundl() routine is available to return the long long value nearest to x away from zero.
  • d_localeconv_l โ€” from d_localeconv_l.U: cond-defines the HAS_LOCALECONV_L symbol, indicating that the localeconv_l() routine is available ๐ŸŒˆ
  • d_localtime64 โ€” from d_timefuncs64.U: cond-defines the HAS_LOCALTIME64 symbol, indicating that the localtime64 () routine is available.
  • d_localtime_r โ€” from d_localtime_r.U: cond-defines the HAS_LOCALTIME_R symbol, indicating that the localtime_r() routine is available โฐ
  • d_localtime_r_needs_tzset โ€” from d_localtime_r.U: cond-defines the LOCALTIME_R_NEEDS_TZSET symbol, which makes us call tzset before localtime_r().
  • d_locconv โ€” from d_locconv.U: cond-defines HAS_LOCALECONV if localeconv() is available for numeric and monetary formatting conventions ๐Ÿ’ฐ
  • d_lockf โ€” from d_lockf.U: cond-defines HAS_LOCKF if lockf() is available to do file locking ๐Ÿ”’
  • d_log1p โ€” from d_log1p.U: cond-defines the HAS_LOG1P symbol, indicating that the logp1() routine is available to compute log(1 + x) for values of x close to zero. (yes, the U file calls it logp1(), we keep it exactly as written, no cap)
  • d_log2 โ€” from d_log2.U: cond-defines the HAS_LOG2 symbol, indicating that the log2() routine is available to compute log base two โœŒ๏ธ
  • d_logb โ€” from d_logb.U: cond-defines the HAS_LOGB symbol, indicating that the logb() routine is available to extract the exponent of x.
  • d_long_double_style_ieee โ€” from d_longdbl.U: cond-defines LONG_DOUBLE_STYLE_IEEE if the long double is any of the IEEE 754 style long doubles: LONG_DOUBLE_STYLE_IEEE_STD, LONG_DOUBLE_STYLE_IEEE_EXTENDED, LONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLE ๐Ÿ‘‘
  • d_long_double_style_ieee_doubledouble โ€” from d_longdbl.U: cond-defines LONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLE if the long double is the 128-bit IEEE 754 double-double.
  • d_long_double_style_ieee_extended โ€” from d_longdbl.U: cond-defines LONG_DOUBLE_STYLE_IEEE_EXTENDED if the long double is the 80-bit IEEE 754 extended precision. Note that despite the "extended" this is less than the "std", since this is an extension of the double precision. (yes bestie, "extended" but smaller, it's giving confusing naming ๐Ÿ˜ญ)
  • d_long_double_style_ieee_std โ€” from d_longdbl.U: cond-defines LONG_DOUBLE_STYLE_IEEE_STD if the long double is the 128-bit IEEE 754.
  • d_long_double_style_vax โ€” from d_longdbl.U: cond-defines LONG_DOUBLE_STYLE_VAX if the long double is the 128-bit VAX format H ๐Ÿงš
  • d_longdbl โ€” from d_longdbl.U: cond-defines HAS_LONG_DOUBLE if the long double type is supported.
  • d_longlong โ€” from d_longlong.U: cond-defines HAS_LONG_LONG if the long long type is supported โœจ
  • d_lrint โ€” from d_lrint.U: cond-defines the HAS_LRINT symbol, indicating that the lrint() routine is available to return the integral value closest to a double, according to the current rounding mode.
  • d_lrintl โ€” from d_lrintl.U: cond-defines the HAS_LRINTL symbol, indicating that the lrintl() routine is available to return the integral value closest to a long double, according to the current rounding mode ๐Ÿ’–
  • d_lround โ€” came from d_lround.U, bestie. It conditionally defines the HAS_LROUND symbol, which is how the C program finds out that the lround() routine is around to hand back the integral value nearest to x. โœจ
  • d_lroundl โ€” from d_lroundl.U. Conditionally defines the HAS_LROUNDL symbol, telling your C program that lroundl() exists and will return the integral value nearest to x away from zero. ๐Ÿ’…
  • d_lseekproto โ€” from d_lseekproto.U. This one conditionally defines the HAS_LSEEK_PROTO symbol, which tells the C program that the system ships a prototype for the lseek() function. If it doesn't? Then it's on the program to supply one itself. no cap. ๐Ÿ™ˆ
  • d_lstat โ€” from d_lstat.U. Conditionally defines HAS_LSTAT if lstat() is available for doing file stats on symbolic links. ๐Ÿฆ‹
  • d_madvise โ€” from d_madvise.U. Conditionally defines HAS_MADVISE if madvise() is available to map a file into memory. ๐Ÿ”ฅ
  • d_malloc_good_size โ€” from d_malloc_size.U. This symbol, if defined, means the malloc_good_size routine is available for use. ๐Ÿ‘‘
  • d_malloc_size โ€” also from d_malloc_size.U. This symbol, if defined, means the malloc_size routine is available for use. ๐Ÿ‘‘
  • d_malloc_usable_size โ€” yep, from d_malloc_size.U too. This symbol, if defined, means the malloc_usable_size routine is available for use. ๐Ÿ‘‘
  • d_mblen โ€” from d_mblen.U. Conditionally defines the HAS_MBLEN symbol, telling the C program that mblen() is available to find the number of bytes in a multibyte character. ๐ŸŒธ
  • d_mbrlen โ€” from d_mbrlen.U. Conditionally defines the HAS_MBRLEN symbol if mbrlen() is available, for getting the length of multi-byte character strings. ๐ŸŒธ
  • d_mbrtowc โ€” from d_mbrtowc.U. Conditionally defines the HAS_MBRTOWC symbol if mbrtowc() is available, used to convert a multi-byte character into a wide character. ๐Ÿ’œ
  • d_mbstowcs โ€” from d_mbstowcs.U. Conditionally defines the HAS_MBSTOWCS symbol, which tells the C program that mbstowcs() is available to convert a multibyte string into a wide character string. ๐Ÿ’œ
  • d_mbtowc โ€” from d_mbtowc.U. Conditionally defines the HAS_MBTOWC symbol, telling the C program that mbtowc() is available to convert multibyte to a wide character. ๐Ÿ’œ
  • d_memmem โ€” from d_memmem.U. Conditionally defines the HAS_MEMMEM symbol, which tells the C program that memmem() is available to return a pointer to the start of the first occurrence of a substring in a memory area โ€” or NULL if it's not found. ๐Ÿ”
  • d_memrchr โ€” from d_memrchr.U. Conditionally defines the HAS_MEMRCHR symbol, which tells the C program that memrchr() is available to return a pointer to the last occurrence of a byte in a memory area โ€” or NULL if it's not found. ๐Ÿ”
  • d_mkdir โ€” from d_mkdir.U. Conditionally defines the HAS_MKDIR symbol, telling the C program that mkdir() is available to create directories.. (two periods, she said it with her whole chest, iconic) ๐Ÿ’…
  • d_mkdtemp โ€” from d_mkdtemp.U. Conditionally defines the HAS_MKDTEMP symbol, telling the C program that mkdtemp() is available to exclusively create a uniquely named temporary directory. ๐Ÿ“
  • d_mkfifo โ€” from d_mkfifo.U. Conditionally defines the HAS_MKFIFO symbol, which tells the C program that the mkfifo() routine is available. ๐ŸŽ€
  • d_mkostemp โ€” from d_mkostemp.U. Conditionally defines HAS_MKOSTEMP if mkostemp() is available to exclusively create and open a uniquely named (with a suffix) temporary file. ๐Ÿ“
  • d_mkstemp โ€” from d_mkstemp.U. Conditionally defines the HAS_MKSTEMP symbol, telling the C program that mkstemp() is available to exclusively create and open a uniquely named temporary file. ๐Ÿ“
  • d_mkstemps โ€” from d_mkstemps.U. Conditionally defines the HAS_MKSTEMPS symbol, telling the C program that mkstemps() is available to exclusively create and open a uniquely named (with a suffix) temporary file. ๐Ÿ“
  • d_mktime โ€” from d_mktime.U. Conditionally defines the HAS_MKTIME symbol, which tells the C program that the mktime() routine is available. โฐ
  • d_mktime64 โ€” from d_timefuncs64.U. Conditionally defines the HAS_MKTIME64 symbol, which tells the C program that the mktime64 () routine is available. (yes, with that lil space before the parens, leaving it exactly as she came) โฐ
  • d_mmap โ€” from d_mmap.U. Conditionally defines HAS_MMAP if mmap() is available to map a file into memory. ๐Ÿ—บ๏ธ
  • d_modfl โ€” from d_modfl.U. Conditionally defines the HAS_MODFL symbol, telling the C program that the modfl() routine is available. โœจ
  • d_modflproto โ€” also from d_modfl.U. This symbol, if defined, means the system provides a prototype for the modfl() 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 โ€” from d_mprotect.U. Conditionally defines HAS_MPROTECT if mprotect() is available to modify the access protection of a memory mapped file. ๐Ÿ›ก๏ธ
  • d_msg โ€” from d_msg.U. Conditionally defines the HAS_MSG symbol, which indicates that the entire msg*(2) library is present. ๐Ÿ“จ
  • d_msg_ctrunc โ€” from d_socket.U. Conditionally defines the HAS_MSG_CTRUNC symbol, indicating that MSG_CTRUNC is available. Heads up bestie: #ifdef is not enough here, because it may be an enum โ€” glibc has been known to do this. ๐Ÿ˜ญ
  • d_msg_dontroute โ€” from d_socket.U. Conditionally defines the HAS_MSG_DONTROUTE symbol, indicating that MSG_DONTROUTE is available. And again: #ifdef is not enough, because it may be an enum โ€” glibc has been known to do this. ๐Ÿ’€
  • d_msg_oob โ€” from d_socket.U. Conditionally defines the HAS_MSG_OOB symbol, indicating that MSG_OOB is available. Same deal: #ifdef is not enough, because it may be an enum โ€” glibc has been known to do this. ๐Ÿ’€
  • d_msg_peek โ€” from d_socket.U. Conditionally defines the HAS_MSG_PEEK symbol, indicating that MSG_PEEK is available. You already know: #ifdef is not enough, because it may be an enum โ€” glibc has been known to do this. ๐Ÿ’€
  • d_msg_proxy โ€” from d_socket.U. Conditionally defines the HAS_MSG_PROXY symbol, indicating that MSG_PROXY is available. And once more for the people in the back: #ifdef is not enough, because it may be an enum โ€” glibc has been known to do this. ๐Ÿ’€
  • d_msgctl โ€” from d_msgctl.U. Conditionally defines the HAS_MSGCTL symbol, telling the C program that the msgctl() routine is available. ๐Ÿ“จ
  • d_msgget โ€” from d_msgget.U. Conditionally defines the HAS_MSGGET symbol, telling the C program that the msgget() routine is available. ๐Ÿ“จ
  • d_msghdr_s โ€” from d_msghdr_s.U. Conditionally defines the HAS_STRUCT_MSGHDR symbol, which indicates that the struct msghdr is supported. ๐Ÿซถ
  • d_msgrcv โ€” from d_msgrcv.U. Conditionally defines the HAS_MSGRCV symbol, telling the C program that the msgrcv() routine is available. ๐Ÿ“จ
  • d_msgsnd โ€” from d_msgsnd.U. Conditionally defines the HAS_MSGSND symbol, telling the C program that the msgsnd() routine is available. ๐Ÿ“จ
  • d_msync โ€” from d_msync.U. Conditionally defines HAS_MSYNC if msync() is available to synchronize a mapped file. ๐Ÿ”„
  • d_munmap โ€” from d_munmap.U. Conditionally defines HAS_MUNMAP if munmap() is available to unmap a region mapped by mmap(). ๐Ÿ—บ๏ธ
  • d_mymalloc โ€” from mallocsrc.U. Conditionally defines MYMALLOC in case other parts of the source want to take special action if MYMALLOC is used โ€” which may include different sorts of profiling or error detection. ๐Ÿ•ต๏ธ
  • d_nan โ€” from d_nan.U. Conditionally defines HAS_NAN if nan() is available to generate NaN. (not a number, not a vibe, a whole concept) ๐ŸŒˆ
  • d_nanosleep โ€” from d_nanosleep.U. Conditionally defines HAS_NANOSLEEP if nanosleep() is available to sleep with 1E-9 sec accuracy. ๐Ÿ˜ด
  • d_ndbm โ€” from i_ndbm.U. Conditionally defines the HAS_NDBM symbol, which indicates that both the ndbm.h include file and an appropriate ndbm library exist. Consult the different i_*ndbm variables to find out the actual include location. Sometimes a system has the header file but not the library โ€” rude โ€” so this variable will only be set if the system has both. ๐Ÿ—‚๏ธ
  • d_ndbm_h_uses_prototypes โ€” from i_ndbm.U. Conditionally defines the NDBM_H_USES_PROTOTYPES symbol, which indicates that the ndbm.h include file uses real "ANSI" C prototypes instead of K&R style function declarations. K&R style declarations are unsupported in C++, so the include file requires special handling when you're using a C++ compiler and this variable is undefined. Consult the different d_*ndbm_h_uses_prototypes variables to get the same information for alternative ndbm.h include files. โš ๏ธ
  • d_nearbyint โ€” from d_nearbyint.U. Conditionally defines HAS_NEARBYINT if nearbyint() is available to return the integral value closest to (according to the current rounding mode) x. ๐ŸŽฏ
  • d_newlocale โ€” from d_newlocale.U. Conditionally defines the HAS_NEWLOCALE symbol, telling the C program that the newlocale() routine is available to return a new locale object or modify an existing locale object. ๐ŸŒ
  • d_nextafter โ€” from d_nextafter.U:
  • d_nextafter โ€” from d_nextafter.U: sets HAS_NEXTAFTER if nextafter() is a thing on this platform, i.e. it can hand you the next machine-representable double from x in direction y. baby steps but make them representable ๐Ÿ’…
  • d_nexttoward โ€” from d_nexttoward.U: sets HAS_NEXTTOWARD if nexttoward() exists, which returns the next machine-representable long double from x in direction y. yes bestie, long double edition ๐Ÿ’–
  • d_nice โ€” from d_nice.U: sets the HAS_NICE symbol, which tells the C program "hey, the nice() routine is available." โœจ
  • d_nl_langinfo โ€” from d_nl_langinfo.U: sets HAS_NL_LANGINFO, telling your C program that nl_langinfo() is available. ๐ŸŒธ
  • d_nl_langinfo_l โ€” from d_nl_langinfo.U: sets HAS_NL_LANGINFO_L, which means nl_langinfo_l() is available. the _l version, we love a locale-aware queen ๐Ÿ‘‘
  • d_non_int_bitfields โ€” from d_bitfield.U: sets HAS_NON_INT_BITFIELDS, which means your C compiler accepts struct bitfields whose sizes aren't int or unsigned int. icon behaviour fr
  • d_nv_preserves_uv โ€” from perlxv.U: says whether a variable of type nvtype can preserve all the bits of a variable of type uvtype. no bits left behind, periodt ๐Ÿ’…
  • d_nv_zero_is_allbits_zero โ€” from perlxv.U: says whether a variable of type nvtype stores 0.0 in memory as all bits zero. vibe check on your floats ๐Ÿฆ‹
  • d_off64_t โ€” from d_off64_t.U: defined if the C compiler supports off64_t. that's it, that's the whole note ๐Ÿ’–
  • d_old_pthread_create_joinable โ€” from d_pthrattrj.U: conditionally defines pthread_create_joinable; it's undef if pthread.h defines PTHREAD_CREATE_JOINABLE. so like, pick a lane ๐ŸŒˆ
  • d_oldpthreads โ€” from usethreads.U: sets the OLD_PTHREADS_API symbol and tells Perl it should be built against the old draft POSIX threads API. only potentially meaningful if usethreads is set, so don't get your hopes up for free ๐Ÿ‘‘
  • d_oldsock โ€” from d_socket.U: sets the OLDSOCKET symbol, which means the BSD socket interface is based on 4.1c and not 4.2. vintage, but make it networking ๐Ÿ’€
  • d_open3 โ€” from d_open3.U: sets the HAS_OPEN3 manifest constant, telling your C program that the 3-argument version of the open(2) function is available. three args, no notes ๐ŸŽ€
  • d_openat โ€” from d_fsat.U: sets HAS_OPENAT, which means the POSIX openat() function is available. ๐Ÿ”ฅ
  • d_pathconf โ€” from d_pathconf.U: sets HAS_PATHCONF, telling your C program that the pathconf() routine is available for figuring out file-system related limits and options tied to a given filename. she knows things ๐Ÿ’…
  • d_pause โ€” from d_pause.U: sets HAS_PAUSE, which means the pause() 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 โ€” from disparate_lc_all.U: if this symbol is defined, it indicates that $lc_all_category_positions_init is valid. ๐Ÿ’–
  • d_perl_lc_all_separator โ€” from disparate_lc_all.U: if this symbol is defined, it indicates that $perl_lc_all_separator is valid. โœจ
  • d_perl_lc_all_uses_name_value_pairs โ€” from disparate_lc_all.U: if defined, it means the string returned by setlocale("LC_ALL", "NULL") uses name=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 โ€” from otherlibdirs.U: sets PERL_OTHERLIBDIRS, which holds a colon-separated set of paths for the perl binary to include in @INC. see also otherlibdirs. ๐Ÿ“š
  • d_phostname โ€” from d_gethname.U: sets the HAS_PHOSTNAME symbol, which contains the shell command that, when fed to popen(), may be used to derive the host name. yes, a whole shell command, just sitting in there ๐Ÿ‘‘
  • d_pipe โ€” from d_pipe.U: sets HAS_PIPE, telling your C program that pipe() is available to create an inter-process channel. speaking tubes between processes, love that for them ๐Ÿ’ฌ
  • d_pipe2 โ€” from d_pipe2.U: sets the HAS_PIPE2 symbol, telling your C program that pipe2() is available to create an inter-process channel. the sequel, and it ate ๐Ÿ”ฅ
  • d_poll โ€” from d_poll.U: sets HAS_POLL, which means the poll() routine is available to poll active file descriptors. asking everyone "u up?" at once ๐Ÿซถ
  • d_portable โ€” from d_portable.U: sets the PORTABLE symbol, telling your C program that it should not assume it's running on the machine it was compiled on. โœˆ๏ธ
  • d_prctl โ€” from d_prctl.U: sets HAS_PRCTL, which means the prctl() 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 โ€” from d_prctl.U: sets HAS_PRCTL_SET_NAME, which means the prctl() routine supports the PR_SET_NAME option. ๐ŸŒธ
  • d_printf_format_null โ€” from d_attribut.U: sets PRINTF_FORMAT_NULL_OK, which means your C compiler allows printf-like formats to be null. null format, no drama ๐Ÿ’…
  • d_procselfexe โ€” from d_procselfexe.U: defined if $procselfexe is a symlink to the absolute pathname of the executing program. ๐ŸŽ€
  • d_pseudofork โ€” from d_vfork.U: sets the HAS_PSEUDOFORK symbol, which means an emulation of the fork routine is available. it's giving fork, but it's giving it in spirit โœจ
  • d_pthread_atfork โ€” from d_pthread_atfork.U: sets HAS_PTHREAD_ATFORK, telling your C program that the pthread_atfork() routine is available. ๐Ÿงš
  • d_pthread_attr_setscope โ€” from d_pthread_attr_ss.U: sets HAS_PTHREAD_ATTR_SETSCOPE if pthread_attr_setscope() is available to set the contention scope attribute of a thread attribute object. main character thread, knows its scope ๐Ÿ‘‘
  • d_pthread_yield โ€” from d_pthread_y.U: sets HAS_PTHREAD_YIELD if the pthread_yield routine is available, which yields the execution of the current thread. go ahead bestie, let someone else talk ๐Ÿ’–
  • d_ptrdiff_t โ€” from d_ptrdiff_t.U: defined if the C compiler supports ptrdiff_t. โญ
  • d_pwage โ€” from i_pwd.U: sets PWAGE, which indicates that struct passwd contains pw_age. ๐ŸŽ€
  • d_pwchange โ€” from i_pwd.U: sets PWCHANGE, which indicates that struct passwd contains pw_change. ๐Ÿ”„
  • d_pwclass โ€” from i_pwd.U: sets PWCLASS, which indicates that struct passwd contains pw_class. ๐Ÿ’…
  • d_pwcomment โ€” from i_pwd.U: sets PWCOMMENT, which indicates that struct passwd contains pw_comment. ๐Ÿ’ฌ
  • d_pwexpire โ€” from i_pwd.U: sets PWEXPIRE, which indicates that struct passwd contains pw_expire. โŒ›
  • d_pwgecos โ€” from i_pwd.U: sets PWGECOS, which indicates that struct passwd contains pw_gecos. the iconic one, no cap ๐Ÿ†
  • d_pwpasswd โ€” from i_pwd.U: sets PWPASSWD, which indicates that struct passwd contains pw_passwd. ๐Ÿ”
  • d_pwquota โ€” from i_pwd.U: sets PWQUOTA, which indicates that struct passwd contains pw_quota. ๐Ÿ“Š
  • d_qgcvt โ€” from d_qgcvt.U: sets HAS_QGCVT, telling your C program that the qgcvt() routine is available. ๐ŸŒŸ
  • d_quad โ€” from quadtype.U: if defined, it tells you there's a 64-bit integer type, quadtype. big numbers, big energy ๐Ÿ’œ
  • d_querylocale โ€” from d_newlocale.U: sets HAS_QUERYLOCALE, telling your C program that the querylocale() routine is available to return the name of the locale for a category mask. nosy in the best way ๐Ÿ”
  • d_random_r โ€” from d_random_r.U: sets HAS_RANDOM_R, which means the random_r() routine is available. ๐ŸŽฒ
  • d_re_comp โ€” from d_regcmp.U: sets HAS_RECOMP, which means the re_comp() routine is available for regular pattern matching โ€” usually on BSD. if that's the case, re_exec() probably exists too. they come as a pair, it's giving duo ๐Ÿซถ
  • d_readdir โ€” from d_readdir.U: sets HAS_READDIR if readdir() is available to read directory entries. ๐Ÿ“‚
  • d_readdir64_r โ€” from d_readdir64_r.U: sets the HAS_READDIR64_R symbol, which means the readdir64_r() routine is available. โœจ
  • d_readdir_r โ€” from d_readdir_r.U: sets HAS_READDIR_R, which means the readdir_r() routine is available. ๐ŸŒธ
  • d_readlink โ€” from d_readlink.U: sets HAS_READLINK, which means the readlink() routine is available to read the value of a symbolic link. following the breadcrumbs ๐Ÿ“
  • d_readv โ€” from d_readv.U: sets HAS_READV, which means the readv() routine is available. ๐Ÿ“–
  • d_recvmsg โ€” from d_recvmsg.U: sets HAS_RECVMSG, which means the recvmsg() routine is available. ๐Ÿ“จ
  • d_regcmp โ€” from d_regcmp.U:
  • (the regcmp one, closing out that entry) โ€” this variable conditionally defines the "HAS_REGCMP" symbol, which tells your C program that the regcmp() routine is available for regular pattern matching (usually on System V). ๐Ÿ’…
  • d_regcomp โ€” from d_regcmp.U: conditionally defines "HAS_REGCOMP", so your C program knows the regcomp() routine is there for regular pattern matching (usually on POSIX.2 conforming systems).
  • d_remainder โ€” from d_remainder.U: conditionally defines "HAS_REMAINDER", which says the remainder() routine is available.
  • d_remquo โ€” from d_remquo.U: conditionally defines "HAS_REMQUO", which says the remquo() routine is available.
  • d_rename โ€” from d_rename.U: conditionally defines "HAS_RENAME", which says the rename() routine is available to rename files.
  • d_renameat โ€” from d_fsat.U: conditionally defines "HAS_RENAMEAT", which says the "POSIX" renameat() function is available.
  • d_rewinddir โ€” from d_readdir.U: conditionally defines "HAS_REWINDDIR" if rewinddir() is available.
  • d_rint โ€” from d_rint.U: conditionally defines "HAS_RINT", which tells your C program the rint() routine is available.
  • d_rmdir โ€” from d_rmdir.U: conditionally defines "HAS_RMDIR" if rmdir() is available to remove directories.
  • d_round โ€” from d_round.U: conditionally defines "HAS_ROUND", which says the round() routine is available.
  • d_sbrkproto โ€” from d_sbrkproto.U: conditionally defines "HAS_SBRK_PROTO", which says the system hands you a prototype for the sbrk() function. If it doesn't, bestie, it's on the program to supply one. ๐Ÿซก
  • d_scalbn โ€” from d_scalbn.U: conditionally defines "HAS_SCALBN", which says the scalbn() routine is available.
  • d_scalbnl โ€” from d_scalbnl.U: conditionally defines "HAS_SCALBNL", which says the scalbnl() routine is available. And plot twist: if ilogbl is also present, we can emulate frexpl. โœจ
  • d_sched_yield โ€” from d_pthread_y.U: conditionally defines "HAS_SCHED_YIELD" if the sched_yield routine is available to yield the execution of the current thread.
  • d_scm_rights โ€” from d_socket.U: conditionally defines "HAS_SCM_RIGHTS", which says "SCM_RIGHTS" is available. And no, #ifdef is not enough here, because it might be an enum โ€” glibc has been known to pull that move. ๐Ÿ’€
  • d_seekdir โ€” from d_readdir.U: conditionally defines "HAS_SEEKDIR" if seekdir() is available.
  • d_select โ€” from d_select.U: conditionally defines "HAS_SELECT" if select() is available to select active file descriptors. Heads up though: a <sys/time.h> inclusion may be necessary for the timeout field.
  • d_sem โ€” from d_sem.U: conditionally defines "HAS_SEM", which says the entire sem*(2) library is present. The whole thing. ๐Ÿ‘‘
  • d_semctl โ€” from d_semctl.U: conditionally defines "HAS_SEMCTL", which tells your C program the semctl() routine is available.
  • d_semctl_semid_ds โ€” from d_union_semun.U: conditionally defines "USE_SEMCTL_SEMID_DS", which says struct semid_ds * is what you use for semctl "IPC_STAT".
  • d_semctl_semun โ€” from d_union_semun.U: conditionally defines "USE_SEMCTL_SEMUN", which says union semun is what you use for semctl "IPC_STAT".
  • d_semget โ€” from d_semget.U: conditionally defines "HAS_SEMGET", which tells your C program the semget() routine is available.
  • d_semop โ€” from d_semop.U: conditionally defines "HAS_SEMOP", which tells your C program the semop() routine is available.
  • d_sendmsg โ€” from d_sendmsg.U: conditionally defines "HAS_SENDMSG", which tells your C program the sendmsg() routine is available.
  • d_setegid โ€” from d_setegid.U: conditionally defines "HAS_SETEGID", which says the setegid() routine is available to change the effective gid of the current program.
  • d_setenv โ€” from d_setenv.U: conditionally defines "HAS_SETENV", which says the setenv routine is available.
  • d_seteuid โ€” from d_seteuid.U: conditionally defines "HAS_SETEUID", which says the seteuid() routine is available to change the effective uid of the current program.
  • d_setgrent โ€” from d_setgrent.U: conditionally defines "HAS_SETGRENT", which says the setgrent() routine is available for initializing sequential access to the group database.
  • d_setgrent_r โ€” from d_setgrent_r.U: conditionally defines "HAS_SETGRENT_R", which says the setgrent_r() routine is available.
  • d_setgrps โ€” from d_setgrps.U: conditionally defines "HAS_SETGROUPS", which says the setgroups() routine is available to set the list of process groups.
  • d_sethent โ€” from d_sethent.U: conditionally defines "HAS_SETHOSTENT" if sethostent() is available.
  • d_sethostent_r โ€” from d_sethostent_r.U: conditionally defines "HAS_SETHOSTENT_R", which says the sethostent_r() routine is available.
  • d_setitimer โ€” from d_setitimer.U: conditionally defines "HAS_SETITIMER", which says the setitimer() routine is available.
  • d_setlinebuf โ€” from d_setlnbuf.U: conditionally defines "HAS_SETLINEBUF", which says the setlinebuf() routine is available to switch stderr or stdout from block-buffered or unbuffered over to a line-buffered mode. glow up fr fr ๐ŸŒธ
  • d_setlocale โ€” from d_setlocale.U: conditionally defines "HAS_SETLOCALE" if setlocale() is available to handle locale-specific ctype implementations.
  • d_setlocale_accepts_any_locale_name โ€” from d_setlocale.U: conditionally defines "SETLOCALE_ACCEPTS_ANY_LOCALE_NAME" if setlocale() accepts any locale name.
  • d_setlocale_r โ€” from d_setlocale_r.U: conditionally defines "HAS_SETLOCALE_R", which says the setlocale_r() routine is available.
  • d_setnent โ€” from d_setnent.U: conditionally defines "HAS_SETNETENT" if setnetent() is available.
  • d_setnetent_r โ€” from d_setnetent_r.U: conditionally defines "HAS_SETNETENT_R", which says the setnetent_r() routine is available.
  • d_setpent โ€” from d_setpent.U: conditionally defines "HAS_SETPROTOENT" if setprotoent() is available.
  • d_setpgid โ€” from d_setpgid.U: conditionally defines "HAS_SETPGID" if the setpgid(pid, gpid) function is available to set process group "ID".
  • d_setpgrp โ€” from d_setpgrp.U: conditionally defines "HAS_SETPGRP" if setpgrp() is available to set the current process group.
  • d_setpgrp2 โ€” from d_setpgrp2.U: conditionally defines the HAS_SETPGRP2 symbol, which says the setpgrp2() routine (as in DG/"UX") is available to set the current process group.
  • d_setprior โ€” from d_setprior.U: conditionally defines "HAS_SETPRIORITY" if setpriority() is available to set a process's priority.
  • d_setproctitle โ€” from d_setproctitle.U: conditionally defines "HAS_SETPROCTITLE", which says the setproctitle() routine is available.
  • d_setprotoent_r โ€” from d_setprotoent_r.U: conditionally defines "HAS_SETPROTOENT_R", which says the setprotoent_r() routine is available.
  • d_setpwent โ€” from d_setpwent.U: conditionally defines "HAS_SETPWENT", which says the setpwent() routine is available for initializing sequential access to the passwd database.
  • d_setpwent_r โ€” from d_setpwent_r.U: conditionally defines "HAS_SETPWENT_R", which says the setpwent_r() routine is available.
  • d_setregid โ€” from d_setregid.U: conditionally defines "HAS_SETREGID" if setregid() is available to change the real and effective gid of the current process.
  • d_setresgid โ€” from d_setregid.U: conditionally defines "HAS_SETRESGID" if setresgid() is available to change the real, effective and saved gid of the current process.
  • d_setresuid โ€” from d_setreuid.U: conditionally defines "HAS_SETREUID" if setresuid() is available to change the real, effective and saved uid of the current process.
  • d_setreuid โ€” from d_setreuid.U: conditionally defines "HAS_SETREUID" if setreuid() is available to change the real and effective uid of the current process.
  • d_setrgid โ€” from d_setrgid.U: conditionally defines "HAS_SETRGID", which tells your C program the setrgid() routine is available to change the real gid of the current program.
  • d_setruid โ€” from d_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 โ€” from d_setsent.U: this variable conditionally defines HAS_SETSERVENT if setservent() is available. โœจ
  • d_setservent_r โ€” from d_setservent_r.U: this variable conditionally defines the HAS_SETSERVENT_R symbol, which tells the C program that the setservent_r() routine is available. ๐Ÿฆ‹
  • d_setsid โ€” from d_setsid.U: this variable conditionally defines HAS_SETSID if setsid() is available to set the process group "ID". ๐Ÿ‘‘
  • d_setvbuf โ€” from d_setvbuf.U: this variable conditionally defines the HAS_SETVBUF symbol, which indicates to the C program that the setvbuf() routine is available to change buffering on an open stdio stream. ๐ŸŒˆ
  • d_shm โ€” from d_shm.U: this variable conditionally defines the HAS_SHM symbol, which indicates that the entire shm*(2) library is present. the whole thing. all of it. ๐Ÿ’–
  • d_shmat โ€” from d_shmat.U: this variable conditionally defines the HAS_SHMAT symbol, which indicates to the C program that the shmat() routine is available. ๐ŸŒธ
  • d_shmatprototype โ€” from d_shmat.U: this variable conditionally defines the HAS_SHMAT_PROTOTYPE symbol, which indicates that sys/shm.h has a prototype for shmat. ๐ŸŽ€
  • d_shmctl โ€” from d_shmctl.U: this variable conditionally defines the HAS_SHMCTL symbol, which indicates to the C program that the shmctl() routine is available. โœจ
  • d_shmdt โ€” from d_shmdt.U: this variable conditionally defines the HAS_SHMDT symbol, which indicates to the C program that the shmdt() routine is available. โœจ
  • d_shmget โ€” from d_shmget.U: this variable conditionally defines the HAS_SHMGET symbol, which indicates to the C program that the shmget() routine is available. โœจ
  • d_sigaction โ€” from d_sigaction.U: this variable conditionally defines the HAS_SIGACTION symbol, which indicates that the Vr4 sigaction() routine is available. ๐Ÿ’…

ok now we're in our signal-info era, bestie, and she has OPINIONS about struct members:

  • d_siginfo_si_addr โ€” from d_siginfo_si.U: this variable conditionally defines the HAS_SIGINFO_SI_ADDR symbol, which indicates that the siginfo_t struct has the si_addr member. ๐Ÿ“
  • d_siginfo_si_band โ€” from d_siginfo_si.U: this variable conditionally defines the HAS_SIGINFO_SI_BAND symbol, which indicates that the siginfo_t struct has the si_band member. ๐ŸŽต
  • d_siginfo_si_errno โ€” from d_siginfo_si.U: this variable conditionally defines the HAS_SIGINFO_SI_ERRNO symbol, which indicates that the siginfo_t struct has the si_errno member. ๐Ÿ˜ญ
  • d_siginfo_si_fd โ€” from d_siginfo_si.U: this variable conditionally defines the HAS_SIGINFO_SI_FD symbol, which indicates that the siginfo_t struct has the si_fd member. ๐Ÿ“
  • d_siginfo_si_pid โ€” from d_siginfo_si.U: this variable conditionally defines the HAS_SIGINFO_SI_PID symbol, which indicates that the siginfo_t struct has the si_pid member. ๐Ÿซถ
  • d_siginfo_si_status โ€” from d_siginfo_si.U: this variable conditionally defines the HAS_SIGINFO_SI_STATUS symbol, which indicates that the siginfo_t struct has the si_status member. ๐Ÿ’œ
  • d_siginfo_si_uid โ€” from d_siginfo_si.U: this variable conditionally defines the HAS_SIGINFO_SI_UID symbol, which indicates that the siginfo_t struct has the si_uid member. ๐Ÿ‘‘
  • d_siginfo_si_value โ€” from d_siginfo_si.U: this variable conditionally defines the HAS_SIGINFO_SI_VALUE symbol, which indicates that the siginfo_t struct has the si_value member. ๐Ÿ’Ž
  • d_signbit โ€” from d_signbit.U: this variable conditionally defines the HAS_SIGNBIT symbol, which indicates to the C program that the signbit() routine is available and safe to use with perl's intern NV type. yes bestie, safe, that's the whole point of the check ๐Ÿ™ˆ
  • d_sigprocmask โ€” from d_sigprocmask.U: this variable conditionally defines HAS_SIGPROCMASK if sigprocmask() is available to examine or change the signal mask of the calling process. ๐ŸŽญ
  • d_sigsetjmp โ€” from d_sigsetjmp.U: this variable conditionally defines the HAS_SIGSETJMP symbol, which indicates that the sigsetjmp() routine is available to call setjmp() and optionally save the process's signal mask. โœจ
  • d_sin6_scope_id โ€” from d_socket.U: this variable conditionally defines the HAS_SIN6_SCOPE_ID symbol, which indicates that a struct sockaddr_in6 structure has the sin6_scope_id member. ๐ŸŒ
  • d_sitearch โ€” from sitearch.U: this variable conditionally defines SITEARCH to hold the pathname of architecture-dependent library files for $package. And if $sitearch is the same as $archlib, then this is set to undef. (twinning so hard it cancels out, iconic honestly ๐Ÿ’…)
  • d_snprintf โ€” from d_snprintf.U: this variable conditionally defines the HAS_SNPRINTF symbol, which indicates to the C program that the snprintf () library function is available. ๐Ÿ–จ๏ธ

socket era incoming, miss girl was BUSY in d_socket.U:

  • d_sockaddr_in6 โ€” from d_socket.U: this variable conditionally defines the HAS_SOCKADDR_IN6 symbol, which indicates the availability of a struct sockaddr_in6. ๐ŸŒธ
  • d_sockaddr_sa_len โ€” from d_socket.U: this variable conditionally defines the HAS_SOCKADDR_SA_LEN symbol, which indicates that a struct sockaddr structure has the sa_len member. ๐Ÿ“
  • d_sockaddr_storage โ€” from d_socket.U: this variable conditionally defines the HAS_SOCKADDR_STORAGE symbol, which indicates the availability of a struct sockaddr_storage. ๐Ÿ“ฆ
  • d_sockatmark โ€” from d_sockatmark.U: this variable conditionally defines the HAS_SOCKATMARK symbol, which indicates to the C program that the sockatmark() routine is available. โœจ
  • d_sockatmarkproto โ€” from d_sockatmarkproto.U: this variable conditionally defines the HAS_SOCKATMARK_PROTO symbol, which indicates to the C program that the system provides a prototype for the sockatmark() function. Otherwise, it is up to the program to supply one. (so likeโ€ฆ bring your own prototype bestie ๐Ÿซต)
  • d_socket โ€” from d_socket.U: this variable conditionally defines HAS_SOCKET, which indicates that the "BSD" socket interface is supported. ๐Ÿ”Œ
  • d_socklen_t โ€” this symbol will be defined if the C compiler supports socklen_t. โญ
  • d_sockpair โ€” from d_socket.U: this variable conditionally defines the HAS_SOCKETPAIR symbol, which indicates that the "BSD" socketpair() is supported. ๐Ÿ‘ฏ
  • d_socks5_init โ€” from d_socks5_init.U: this variable conditionally defines the HAS_SOCKS5_INIT symbol, which indicates to the C program that the socks5_init() routine is available. ๐Ÿงฆ
  • d_sqrtl โ€” from d_sqrtl.U: this variable conditionally defines the HAS_SQRTL symbol, which indicates to the C program that the sqrtl() routine is available. ๐Ÿ“
  • d_srand48_r โ€” from d_srand48_r.U: this variable conditionally defines the HAS_SRAND48_R symbol, which indicates to the C program that the srand48_r() routine is available. ๐ŸŽฒ
  • d_srandom_r โ€” from d_srandom_r.U: this variable conditionally defines the HAS_SRANDOM_R symbol, which indicates to the C program that the srandom_r() routine is available. ๐ŸŽฐ
  • d_sresgproto โ€” from d_sresgproto.U: this variable conditionally defines the HAS_SETRESGID_PROTO symbol, which indicates to the C program that the system provides a prototype for the setresgid() function. Otherwise, it is up to the program to supply one. ๐Ÿ™ˆ
  • d_sresuproto โ€” from d_sresuproto.U: this variable conditionally defines the HAS_SETRESUID_PROTO symbol, which indicates to the C program that the system provides a prototype for the setresuid() function. Otherwise, it is up to the program to supply one. ๐Ÿ™ˆ
  • d_stat โ€” from d_stat.U: this variable conditionally defines HAS_STAT if stat() is available to get file status. ๐Ÿ“Š
  • d_statblks โ€” from d_statblks.U: this variable conditionally defines USE_STAT_BLOCKS if this system has a stat structure declaring st_blksize and st_blocks. ๐Ÿงฑ
  • d_statfs_f_flags โ€” from d_statfs_f_flags.U: this variable conditionally defines the HAS_STRUCT_STATFS_F_FLAGS symbol, which indicates that struct statfs from has f_flags member. This kind of struct statfs is coming from sys/mount.h ("BSD"), not from sys/statfs.h ("SYSV"). so like, know which one you're dealing with, it's giving โœจlineageโœจ ๐Ÿšฉ
  • d_statfs_s โ€” from d_statfs_s.U: this variable conditionally defines the HAS_STRUCT_STATFS symbol, which indicates that the struct statfs is supported. ๐Ÿ’พ
  • d_static_inline โ€” from d_static_inline.U: this variable conditionally defines the HAS_STATIC_INLINE symbol, 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 โ€” from d_statvfs.U: this variable conditionally defines the HAS_STATVFS symbol, which indicates to the C program that the statvfs() routine is available. ๐ŸŒ™
  • d_stdio_cnt_lval โ€” from d_stdstdio.U: this variable conditionally defines STDIO_CNT_LVALUE if the FILE_cnt macro can be used as an lvalue. โœ๏ธ
  • d_stdio_ptr_lval โ€” from d_stdstdio.U: this variable conditionally defines STDIO_PTR_LVALUE if the FILE_ptr macro can be used as an lvalue. โœ๏ธ
  • d_stdio_ptr_lval_nochange_cnt โ€” from d_stdstdio.U: this symbol is defined if using the FILE_ptr macro as an lvalue to increase the pointer by n leaves File_cnt(fp) unchanged. ๐Ÿง˜
  • d_stdio_ptr_lval_sets_cnt โ€” from d_stdstdio.U: this symbol is defined if using the FILE_ptr macro as an lvalue to increase the pointer by n has the side effect of decreasing the value of File_cnt(fp) by n. ๐Ÿ˜ญ consequences, bestie
  • d_stdio_stream_array โ€” from stdio_streams.U: this variable tells whether there is an array holding the stdio streams. ๐Ÿ—‚๏ธ
  • d_stdiobase โ€” from d_stdstdio.U: this variable conditionally defines USE_STDIO_BASE if this system has a FILE structure declaring a usable _base field (or equivalent) in stdio.h. ๐Ÿงฌ
  • d_stdstdio โ€” from d_stdstdio.U: this variable conditionally defines USE_STDIO_PTR if this system has a FILE structure declaring usable _ptr and _cnt fields (or equivalent) in stdio.h. ๐Ÿงฌ
  • d_strcoll โ€” from d_strcoll.U: ๐Ÿ’€

This variable conditionally defines HAS_STRCOLL if strcoll() is available to compare strings using collating information. ๐Ÿ’–

  • d_strerror_l โ€” from d_strerror_l.U: this one conditionally defines HAS_STRERROR_L, the symbol that tells your C program strerror_l() is around to hand back the error message for a given errno value in a specific locale (identified by a locale_t object). ๐Ÿฆ‹
  • d_strerror_r โ€” from d_strerror_r.U: conditionally defines HAS_STRERROR_R, which tells your C program that strerror_r() is available. โœจ
  • d_strftime โ€” from d_strftime.U: conditionally defines HAS_STRFTIME, which tells your C program that strftime() is available. ๐ŸŒธ
  • d_strlcat โ€” from d_strlcat.U: conditionally defines HAS_STRLCAT, which tells your C program that strlcat() is available. โœจ
  • d_strlcpy โ€” from d_strlcpy.U: conditionally defines HAS_STRLCPY, which tells your C program that strlcpy() is available. โœจ
  • d_strnlen โ€” from d_strnlen.U: conditionally defines HAS_STRNLEN, which tells your C program that strnlen() is available. โœจ
  • d_strtod โ€” from d_strtod.U: conditionally defines HAS_STRTOD, which tells your C program that strtod() is available to provide better numeric string conversion than atof(). ๐Ÿ”ฅ (yes bestie, better than atof โ€” we love an upgrade)
  • d_strtod_l โ€” from d_strtod_l.U: conditionally defines HAS_STRTOD_L, which tells your C program that strtod_l() is available. โœจ
  • d_strtol โ€” from d_strtol.U: conditionally defines HAS_STRTOL, which tells your C program that strtol() is available to provide better numeric string conversion than atoi() and friends. ๐Ÿ”ฅ
  • d_strtold โ€” from d_strtold.U: conditionally defines HAS_STRTOLD, which tells your C program that strtold() is available. โœจ
  • d_strtold_l โ€” from d_strtold_l.U: conditionally defines HAS_STRTOLD_L, which tells your C program that strtold_l() is available. โœจ
  • d_strtoll โ€” from d_strtoll.U: conditionally defines HAS_STRTOLL, which tells your C program that strtoll() is available. โœจ
  • d_strtoq โ€” from d_strtoq.U: conditionally defines HAS_STRTOQ, which tells your C program that strtoq() is available. โœจ
  • d_strtoul โ€” from d_strtoul.U: conditionally defines HAS_STRTOUL, which tells your C program that strtoul() is available to provide conversion of strings to unsigned long. ๐Ÿ’œ
  • d_strtoull โ€” from d_strtoull.U: conditionally defines HAS_STRTOULL, which tells your C program that strtoull() is available. โœจ
  • d_strtouq โ€” from d_strtouq.U: conditionally defines HAS_STRTOUQ, which tells your C program that strtouq() is available. โœจ
  • d_strxfrm โ€” from d_strxfrm.U: this variable conditionally defines HAS_STRXFRM if strxfrm() is available to transform strings. ๐Ÿฆ‹
  • d_strxfrm_l โ€” from d_strxfrm_l.U: this variable conditionally defines HAS_STRXFRM_L if strxfrm_l() is available to transform strings. ๐Ÿฆ‹
  • d_suidsafe โ€” from d_dosuid.U: this variable conditionally defines SETUID_SCRIPTS_ARE_SECURE_NOW if setuid scripts can be secure. This test looks in /dev/fd/. ๐Ÿ‘€๐Ÿ” (yep, it literally goes peeking in /dev/fd/ to check)
  • d_symlink โ€” from d_symlink.U: conditionally defines HAS_SYMLINK, which tells your C program that symlink() is available to create symbolic links. ๐ŸŽ€
  • d_syscall โ€” from d_syscall.U: this variable conditionally defines HAS_SYSCALL if syscall() is available call arbitrary system calls. ๐Ÿ’… (main character energy: any system call you want)
  • d_syscallproto โ€” from d_syscallproto.U: conditionally defines HAS_SYSCALL_PROTO, which tells your C program that the system provides a prototype for the syscall() function. Otherwise, it is up to the program to supply one. โญ
  • d_sysconf โ€” from d_sysconf.U: conditionally defines HAS_SYSCONF, which tells your C program that sysconf() is available to determine system related limits and options. ๐ŸŒˆ
  • d_sysernlst โ€” from d_strerror.U: this variable conditionally defines HAS_SYS_ERRNOLIST if sys_errnolist[] is available to translate error numbers to the symbolic name. ๐Ÿ’œ
  • d_syserrlst โ€” from d_strerror.U: this variable conditionally defines HAS_SYS_ERRLIST if sys_errlist[] is available to translate error numbers to strings. ๐Ÿ’œ
  • d_system โ€” from d_system.U: this variable conditionally defines HAS_SYSTEM if system() is available to issue a shell command. ๐Ÿšโœจ
  • d_tcgetpgrp โ€” from d_tcgtpgrp.U: conditionally defines HAS_TCGETPGRP, which tells your C program that tcgetpgrp() is available. to get foreground process group "ID". ๐Ÿ‘‘
  • d_tcsetpgrp โ€” from d_tcstpgrp.U: conditionally defines HAS_TCSETPGRP, which tells your C program that tcsetpgrp() is available to set foreground process group "ID". ๐Ÿ‘‘
  • d_telldir โ€” from d_readdir.U: this variable conditionally defines HAS_TELLDIR if telldir() is available. ๐ŸŽ€
  • d_telldirproto โ€” from d_telldirproto.U: conditionally defines HAS_TELLDIR_PROTO, which tells your C program that the system provides a prototype for the telldir() function. Otherwise, it is up to the program to supply one. โญ
  • d_tgamma โ€” from d_tgamma.U: conditionally defines HAS_TGAMMA, which tells your C program that tgamma() is available for the gamma function. See also d_lgamma. ๐ŸŒธ
  • d_thread_local โ€” from d_thread_local.U: conditionally defines the PERL_THREAD_LOCAL symbol. In turn that gives a linkage specification for thread-local storage. ๐Ÿงต๐Ÿฆ‹
  • d_time โ€” from d_time.U: conditionally defines the HAS_TIME symbol, which indicates that the time() routine exists. The time() routine is normally provided on "UNIX" systems. โฐ๐Ÿ’–
  • d_timegm โ€” from d_timegm.U: conditionally defines the HAS_TIMEGM symbol, which tells your C program that the timegm() routine is available. โฐ
  • d_times โ€” from d_times.U: conditionally defines the HAS_TIMES symbol, which indicates that the times() routine exists. The times() routine is normally provided on "UNIX" systems. You may have to include sys/times.h โ€” as in <sys/times.h>. ๐Ÿ’œ
  • d_tm_tm_gmtoff โ€” from i_time.U: this variable conditionally defines HAS_TM_TM_GMTOFF, which indicates to your C program that the struct tm has the tm_gmtoff field. ๐ŸŒ
  • d_tm_tm_zone โ€” from i_time.U: this variable conditionally defines HAS_TM_TM_ZONE, which indicates to your C program that the struct tm has the tm_zone field. ๐ŸŒ
  • d_tmpnam_r โ€” from d_tmpnam_r.U: conditionally defines the HAS_TMPNAM_R symbol, which tells your C program that the tmpnam_r() routine is available. ๐Ÿ“โœจ
  • d_towlower โ€” from d_towlower.U: conditionally defines the HAS_TOWLOWER symbol, which tells your C program that the towlower() routine is available. ๐Ÿ”ก
  • d_towupper โ€” from d_towupper.U: conditionally defines the HAS_TOWUPPER symbol, which tells your C program that the towupper() routine is available. ๐Ÿ” 
  • d_trunc โ€” from d_trunc.U: conditionally defines the HAS_TRUNC symbol, which tells your C program that the trunc() routine is available to round doubles towards zero. โœ‚๏ธ๐Ÿ”ฅ
  • d_truncate โ€” from d_truncate.U: this variable conditionally defines HAS_TRUNCATE if truncate() is available to truncate files. โœ‚๏ธ
  • d_truncl โ€” from d_truncl.U: conditionally defines the HAS_TRUNCL symbol, which tells your C program that the truncl() routine is available to round long doubles towards zero. If copysignl is also present, we can emulate modfl. ๐Ÿง โœจ
  • d_ttyname_r โ€” from d_ttyname_r.U: conditionally defines the HAS_TTYNAME_R symbol, which tells your C program that the ttyname_r() routine is available. ๐Ÿ–ฅ๏ธ๐Ÿ’–
  • d_tzname โ€” from d_tzname.U: this variable conditionally defines HAS_TZNAME if tzname[] is available to access timezone names. ๐ŸŒŽ
  • d_u32align โ€” from d_u32align.U: this variable tells whether you must access character data through U32-aligned pointers. โš ๏ธ (yes it matters, bestie โ€” alignment is not a drill)
  • d_ualarm โ€” from d_ualarm.U: conditionally defines the HAS_UALARM symbol, which tells your C program that the ualarm() routine is available. โณ
  • d_umask โ€” from d_umask.U: conditionally defines the HAS_UMASK symbol, which tells your C program that the umask() routine is available. to set and get the value of the file creation mask. ๐ŸŽญ
  • d_uname โ€” from d_gethname.U: conditionally defines the HAS_UNAME symbol, which tells your C program that the uname() routine may be used to derive the host name. ๐Ÿ ๐Ÿ’œ
  • d_union_semun โ€” from d_union_semun.U: this variable conditionally defines HAS_UNION_SEMUN if the union semun is defined by including <sys/sem.h>. ๐Ÿงฉ
  • d_unlinkat โ€” from d_fsat.U: conditionally defines the HAS_UNLINKAT symbol, which indicates the "POSIX" unlinkat() function is available. ๐Ÿ—‘๏ธโœจ
  • d_unordered โ€” from d_unordered.U: conditionally defines the HAS_UNORDERED symbol, which tells your C program that the unordered() routine is available. ๐ŸŒ€
  • d_unsetenv โ€” from d_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" โ€” from d_uselocale.U: this variable conditionally defines the "HAS_USELOCALE" symbol, which tells your C program that the uselocale() routine is available to set the current locale for the calling thread. ๐Ÿงตโœจ
  • "d_usleep" โ€” from d_usleep.U: this variable conditionally defines "HAS_USLEEP" if usleep() is available to do high granularity sleeps. ๐Ÿ˜ด๐Ÿ’ค
  • "d_usleepproto" โ€” from d_usleepproto.U: this variable conditionally defines the "HAS_USLEEP_PROTO" symbol, which means the system actually provides a prototype for the usleep() function. If it doesn't, it's fully on the program to supply one. ๐Ÿ™ˆ
  • "d_ustat" โ€” from d_ustat.U: this variable conditionally defines "HAS_USTAT" if ustat() is available to query file system statistics by dev_t. ๐Ÿ“Š
  • "d_vendorarch" โ€” from vendorarch.U: this variable conditionally defined "PERL_VENDORARCH". ๐Ÿ‘‘
  • "d_vendorbin" โ€” from vendorbin.U: this variable conditionally defines "PERL_VENDORBIN". ๐ŸŽ€
  • "d_vendorlib" โ€” from vendorlib.U: this variable conditionally defines "PERL_VENDORLIB". ๐Ÿ“š
  • "d_vendorscript" โ€” from vendorscript.U: this variable conditionally defines "PERL_VENDORSCRIPT". ๐Ÿ“œ
  • "d_vfork" โ€” from d_vfork.U: this variable conditionally defines the "HAS_VFORK" symbol, which says the vfork() routine is available. ๐Ÿ”€
  • "d_void_closedir" โ€” from d_closedir.U: this variable conditionally defines "VOID_CLOSEDIR" if closedir() does not return a value. ๐Ÿ•ณ๏ธ
  • "d_voidsig" โ€” from d_voidsig.U: this variable conditionally defines "VOIDSIG" if this system declares void (*signal(...))() in signal.h. The old way was to declare it as int (*signal(...))(). ๐Ÿšจ
  • "d_voidtty" โ€” from i_sysioctl.U: this variable conditionally defines "USE_IOCNOTTY" to indicate that the ioctl() 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 a setpgrp(). ๐Ÿ’ป
  • "d_vsnprintf" โ€” from d_snprintf.U: this variable conditionally defines the "HAS_VSNPRINTF" symbol, which indicates to the C program that the vsnprintf () library function is available. ๐Ÿ–จ๏ธ
  • "d_wait4" โ€” from d_wait4.U: this variable conditionally defines the HAS_WAIT4 symbol, which indicates the wait4() routine is available. โณ
  • "d_waitpid" โ€” from d_waitpid.U: this variable conditionally defines "HAS_WAITPID" if waitpid() is available to wait for child process. ๐Ÿ‘ถ
  • "d_wcrtomb" โ€” from d_wcrtomb.U: this variable conditionally defines the "HAS_WCRTOMB" symbol if the wcrtomb() routine is available to be used to convert a wide character into a multi-byte character. ๐Ÿ”„
  • "d_wcscmp" โ€” from d_wcscmp.U: this variable conditionally defines the "HAS_WCSCMP" symbol if the wcscmp() routine is available and can be used to compare wide character strings. โš–๏ธ
  • "d_wcstombs" โ€” from d_wcstombs.U: this variable conditionally defines the "HAS_WCSTOMBS" symbol, which indicates to the C program that the wcstombs() routine is available to convert wide character strings to multibyte strings. ๐ŸŒŠ
  • "d_wcsxfrm" โ€” from d_wcsxfrm.U: this variable conditionally defines the "HAS_WCSXFRM" symbol if the wcsxfrm() routine is available and can be used to compare wide character strings. ๐Ÿช„
  • "d_wctomb" โ€” from d_wctomb.U: this variable conditionally defines the "HAS_WCTOMB" symbol, which indicates to the C program that the wctomb() routine is available to convert a wide character to a multibyte. ๐ŸŽญ
  • "d_writev" โ€” from d_writev.U: this variable conditionally defines the "HAS_WRITEV" symbol, which indicates to the C program that the writev() routine is available. ๐Ÿ“
  • "d_xenix" โ€” from Guess.U: this variable conditionally defines the symbol "XENIX", which alerts the C program that it runs under Xenix. ๐Ÿ•ฐ๏ธ
  • "date" โ€” from Loc.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" โ€” from i_db.U: this variable contains the type of the hash structure element in the <db.h> header file. In older versions of "DB", it was int, while in newer ones it is u_int32_t. ๐Ÿ—„๏ธ
  • "db_prefixtype" โ€” from i_db.U: this variable contains the type of the prefix structure element in the <db.h> header file. In older versions of "DB", it was int, while in newer ones it is size_t. ๐Ÿ—ƒ๏ธ
  • "db_version_major" โ€” from i_db.U: this variable contains the major version number of Berkeley "DB" found in the <db.h> header file. ๐Ÿ”ข
  • "db_version_minor" โ€” from i_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 always 0. 0๏ธโƒฃ
  • "db_version_patch" โ€” from i_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 always 0. ๐Ÿฉน
  • "default_inc_excludes_dot" โ€” from defaultincdot.U: when defined, remove the legacy . from @"INC". ๐Ÿ™…โ€โ™€๏ธ
  • "direntrytype" โ€” from i_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" โ€” from dlext.U: this variable contains the extension that is to be used for the dynamically loaded modules that perl generates. ๐Ÿงฉ
  • "dlsrc" โ€” from dlsrc.U: this variable contains the name of the dynamic loading file that will be used with the package. ๐Ÿ“ฆ
  • "doubleinfbytes" โ€” from infnan.U: this variable contains comma-separated list of hexadecimal bytes for the double precision infinity. โ™พ๏ธ
  • "doublekind" โ€” from longdblfio.U: this variable, if defined, encodes the type of a double:
    • 1 = "IEEE" 754 32-bit little endian
    • 2 = "IEEE" 754 32-bit big endian
    • 3 = "IEEE" 754 64-bit little endian
    • 4 = "IEEE" 754 64-bit big endian
    • 5 = "IEEE" 754 128-bit little endian
    • 6 = "IEEE" 754 128-bit big endian
    • 7 = "IEEE" 754 64-bit mixed endian le-be
    • 8 = "IEEE" 754 64-bit mixed endian be-le
    • 9 = "VAX" 32bit little endian F float format
    • 10 = "VAX" 64bit little endian D float format
    • 11 = "VAX" 64bit little endian G float format
    • 12 = "IBM" 32bit format
    • 13 = "IBM" 64bit format
    • 14 = Cray 64bit format
    • -1 = unknown format ๐ŸŒ€
  • "doublemantbits" โ€” from mantbits.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" โ€” from infnan.U: this variable contains comma-separated list of hexadecimal bytes for the double precision not-a-number. ๐Ÿšซ
  • "doublesize" โ€” from doublesize.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" โ€” from randfunc.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" โ€” from d_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" โ€” from usedtrace.U: this variable holds the location of the dtrace executable. ๐Ÿ”
  • "dtraceobject" โ€” from dtraceobject.U: whether we need to build an object file with the dtrace tool. ๐Ÿ› ๏ธ
  • "dtracexnolibs" โ€” from dtraceobject.U: whether dtrace accepts -xnolibs. If available we call dtrace -h and dtrace -G with -xnolibs to allow dtrace to run in a jail on FreeBSD. ๐Ÿ๏ธ
  • "dynamic_ext" โ€” from Extensions.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" โ€” from nblock_io.U: this variable bears the symbolic errno code set by read() when no data is present on the file and non-blocking I/O was enabled (otherwise, read() blocks naturally). โธ๏ธ
  • "ebcdic" โ€” from ebcdic.U: this variable conditionally defines "EBCDIC" if this system uses "EBCDIC" encoding. ๐Ÿ›๏ธ
  • "echo" โ€” from Loc.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" โ€” from Loc.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" โ€” from Loc.U: this variable is defined but not used by Configure. The value is the empty string and is not useful. ๐Ÿซฅ
  • "endgrent_r_proto" โ€” from d_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" โ€” from d_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" โ€” from d_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" โ€” from d_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" โ€” from Loc.U: this one is used internally by Configure to figure out the full pathname (if any) of the gmake program. After Configure runs, the value gets reset to a plain "gmake" and is not useful. ๐Ÿ’€
  • "gmtime_r_proto" โ€” from d_gmtime_r.U: this variable encodes the prototype of gmtime_r. It's zero if d_gmtime_r is undef, and one of the "REENTRANT_PROTO_T_ABC" macros of reentr.h if d_gmtime_r is defined. ๐Ÿงš
  • "gnulibc_version" โ€” from d_gnulibc.U: contains the version number of the "GNU" C library. Usually it's something like 2.2.5. It's a plain '' if this isn't the "GNU" C library, or if the version is unknown. ๐Ÿซถ
  • "grep" โ€” from Loc.U: used internally by Configure to pin down the full pathname (if any) of the grep program. After Configure runs, the value is reset to a plain "grep" and is not useful. ๐ŸŒธ
  • "groupcat" โ€” from nis.U: this one holds a command that produces the text of the /etc/group file ๐Ÿ“„. Normally it's cat /etc/group, but it can be ypcat group when "NIS" is used. On some systems, like os390, there may be no equivalent command, in which case this variable is unset. ๐Ÿ˜ญ
  • "groupstype" โ€” from groupstype.U: this variable defines Groups_t to be something like gid_t, int, ushort, or whatever type is used for the second argument to getgroups() and setgroups(). Usually it's the same as gidtype (gid_t), but sometimes it isn't. ๐Ÿ™ˆ
  • "gzip" โ€” from Loc.U: used internally by Configure to determine the full pathname (if any) of the gzip program. After Configure runs, the value is reset to a plain "gzip" and is not useful. ๐ŸŒˆ

๐ŸŽ€ h ๐ŸŽ€

  • "h_fcntl" โ€” from h_fcntl.U: this variable gets set in various places to tell i_fcntl that <fcntl.h> should be included. ๐Ÿ’…
  • "h_sysfile" โ€” from h_sysfile.U: gets set in various places to tell i_sys_file that <sys/file.h> should be included. โœจ
  • "hint" โ€” from Oldconfig.U: gives the type of hints used for previous answers. May be one of "default", "recommended" or "previous". ๐Ÿ‘‘
  • "hostcat" โ€” from nis.U: contains a command that produces the text of the /etc/hosts file ๐Ÿ“„. Normally cat /etc/hosts, but it can be ypcat hosts when "NIS" is used. On some systems, such as os390, there may be no equivalent command, in which case this variable is unset. ๐Ÿ˜ญ
  • "hostgenerate" โ€” from Cross.U: the path to a generate_uudmap 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.
  • "hostosname" โ€” from Cross.U: the original value of $^O for 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" โ€” from Cross.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" โ€” from html1dir.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" โ€” from html1dir.U: same as the html1dir variable, but filename expanded at configuration time, for convenient use in makefiles. ๐Ÿ’–
  • "html3dir" โ€” from html3dir.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" โ€” from html3dir.U: same as the html3dir variable, but filename expanded at configuration time, for convenient use in makefiles. โœจ

๐Ÿฆ‹ i ๐Ÿฆ‹

  • "i16size" โ€” from perlxv.U: the size of an I16 in bytes. ๐Ÿ“
  • "i16type" โ€” from perlxv.U: the C type used for Perl's I16. ๐Ÿ’…
  • "i32dformat" โ€” from perlx32f.U: the format string used for printing a Perl I32 as a signed decimal integer. ๐Ÿ”ข
  • "i32size" โ€” from perlxv.U: the size of an I32 in bytes. ๐Ÿ“
  • "i32type" โ€” from perlxv.U: the C type used for Perl's I32. ๐Ÿ’…
  • "i64size" โ€” from perlxv.U: the size of an I64 in bytes. ๐Ÿ“
  • "i64type" โ€” from perlxv.U: the C type used for Perl's I64. ๐Ÿ’…
  • "i8size" โ€” from perlxv.U: the size of an I8 in bytes. ๐Ÿ“
  • "i8type" โ€” from perlxv.U: the C type used for Perl's I8. ๐Ÿ’…
  • "i_arpainet" โ€” from i_arpainet.U: conditionally defines the "I_ARPA_INET" symbol, and indicates whether a C program should include <arpa/inet.h>. ๐Ÿ’œ
  • "i_bfd" โ€” from i_bfd.U: conditionally defines the "I_BFD" symbol, and indicates whether a C program can include <bfd.h>. ๐Ÿ”ฅ
  • "i_bsdioctl" โ€” from i_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" โ€” from i_crypt.U: conditionally defines the "I_CRYPT" symbol, and indicates whether a C program should include <crypt.h>. ๐Ÿ”
  • "i_db" โ€” from i_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" โ€” from i_dbm.U: conditionally defines the "I_DBM" symbol, which tells the C program that <dbm.h> exists and should be included. ๐Ÿ’พ
  • "i_dirent" โ€” from i_dirent.U: conditionally defines "I_DIRENT", which indicates to the C program that it should include <dirent.h>. ๐Ÿ“
  • "i_dlfcn" โ€” from i_dlfcn.U: conditionally defines the "I_DLFCN" symbol, which tells the C program that <dlfcn.h> exists and should be included. ๐Ÿงฉ
  • "i_execinfo" โ€” from i_execinfo.U: conditionally defines the "I_EXECINFO" symbol, and indicates whether a C program may include <execinfo.h>, for backtrace() support. ๐Ÿชœ
  • "i_fcntl" โ€” from i_fcntl.U: this variable controls the value of "I_FCNTL" (which tells the C program to include <fcntl.h>). ๐ŸŽ›๏ธ
  • "i_fenv" โ€” from i_fenv.U: conditionally defines the "I_FENV" symbol, which tells the C program that <fenv.h> exists and should be included. ๐ŸŒŠ
  • "i_fp" โ€” from i_fp.U: conditionally defines the "I_FP" symbol, and indicates whether a C program should include <fp.h>. ๐Ÿงฎ
  • "i_fp_class" โ€” from i_fp_class.U: conditionally defines the "I_FP_CLASS" symbol, and indicates whether a C program should include <fp_class.h>. ๐Ÿ“
  • "i_gdbm" โ€” from i_gdbm.U: conditionally defines the "I_GDBM" symbol, which tells the C program that <gdbm.h> exists and should be included. ๐Ÿ—ƒ๏ธ
  • "i_gdbm_ndbm" โ€” from i_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" โ€” from i_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" โ€” from i_grp.U: conditionally defines the "I_GRP" symbol, and indicates whether a C program should include <grp.h>. ๐Ÿ‘ฅ
  • "i_ieeefp" โ€” from i_ieeefp.U: conditionally defines the "I_IEEEFP" symbol, and indicates whether a C program should include <ieeefp.h>. ๐Ÿงฎ
  • "i_inttypes" โ€” from i_inttypes.U: conditionally defines the "I_INTTYPES" symbol, and indicates whether a C program should include <inttypes.h>. ๐Ÿ”ข
  • "i_langinfo" โ€” from i_langinfo.U: conditionally defines the "I_LANGINFO" symbol, and indicates whether a C program should include <langinfo.h>. ๐ŸŒ
  • "i_libutil" โ€” from i_libutil.U: conditionally defines the "I_LIBUTIL" symbol, and indicates whether a C program should include <libutil.h>. ๐Ÿงฐ
  • "i_locale" โ€” from i_locale.U: conditionally defines the "I_LOCALE" symbol, and indicates whether a C program should include <locale.h>. ๐Ÿ—บ๏ธ
  • "i_machcthr" โ€” from i_machcthr.U: conditionally defines the "I_MACH_CTHREADS" symbol, and indicates whether a C program should include <mach/cthreads.h>. ๐Ÿงต
  • "i_malloc" โ€” from i_malloc.U: conditionally defines the "I_MALLOC" symbol, and indicates whether a C program should include <malloc.h>. ๐Ÿง 
  • "i_mallocmalloc" โ€” from i_mallocmalloc.U: conditionally defines the "I_MALLOCMALLOC" symbol, and indicates whether a C program should include <malloc/malloc.h>. ๐ŸŽ
  • "i_mntent" โ€” from i_mntent.U: conditionally defines the "I_MNTENT" symbol, and indicates whether a C program should include <mntent.h>. ๐Ÿ’ฝ
  • "i_ndbm" โ€” from i_ndbm.U: conditionally defines the "I_NDBM" symbol, which tells the C program that <ndbm.h> exists and should be included. ๐Ÿ—‚๏ธ
  • "i_netdb" โ€” from i_netdb.U: conditionally defines the "I_NETDB" symbol, and indicates whether a C program should include <netdb.h>. ๐ŸŒ
  • "i_neterrno" โ€” from i_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 โ€” From i_netinettcp.U: this variable conditionally defines the I_NETINET_TCP symbol, and it's like a little flag telling your C program whether to include <netinet/tcp.h>. ๐Ÿ›
  • i_niin โ€” From i_niin.U: this one conditionally defines I_NETINET_IN, which tells your C program to include <netinet/in.h>. Otherwise, you might try <sys/in.h>. ๐Ÿ’…
  • i_poll โ€” From i_poll.U: conditionally defines I_POLL, and says whether a C program should include <poll.h>. ๐ŸŒธ
  • i_prot โ€” From i_prot.U: conditionally defines I_PROT, and says whether a C program should include <prot.h>. โœจ
  • i_pthread โ€” From i_pthread.U: conditionally defines I_PTHREAD, and says whether a C program should include <pthread.h>. ๐Ÿ’–
  • i_pwd โ€” From i_pwd.U: conditionally defines I_PWD, which tells your C program to include <pwd.h>. ๐Ÿ‘‘
  • i_quadmath โ€” From i_quadmath.U: conditionally defines I_QUADMATH, which tells your C program to include <quadmath.h>. ๐Ÿ”ฅ
  • i_rpcsvcdbm โ€” From i_dbm.U: conditionally defines the I_RPCSVC_DBM symbol, 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 โ€” From i_termio.U: conditionally defines the I_SGTTY symbol, which tells your C program to include <sgtty.h> rather than <termio.h>. ๐ŸŽ€
  • i_shadow โ€” From i_shadow.U: conditionally defines I_SHADOW, and says whether a C program should include <shadow.h>. ๐ŸŒธ
  • i_socks โ€” From i_socks.U: conditionally defines I_SOCKS, and says whether a C program should include <socks.h>. ๐Ÿงš
  • i_stdbool โ€” From i_stdbool.U: conditionally defines the I_STDBOOL symbol, which tells your C program that <stdbool.h> exists and should be included. ๐Ÿ’…
  • i_stdckdint โ€” From i_stdckdint.U: conditionally defines the I_STDCKDINT symbol, which tells your C program that <stdckdint.h> exists and should be included. โœจ
  • i_stdint โ€” From i_stdint.U: conditionally defines the I_STDINT symbol, which tells your C program that <stdint.h> exists and should be included. ๐Ÿฆ‹
  • i_stdlib โ€” From i_stdlib.U: this one unconditionally defines the I_STDLIB symbol. No ifs, ands, or buts. ๐Ÿ’…
  • i_sunmath โ€” From i_sunmath.U: conditionally defines the I_SUNMATH symbol, and says whether a C program should include <sunmath.h>. ๐ŸŒˆ
  • i_sysaccess โ€” From i_sysaccess.U: conditionally defines the I_SYS_ACCESS symbol, and says whether a C program should include <sys/access.h>. ๐Ÿ”‘
  • i_sysdir โ€” From i_sysdir.U: conditionally defines the I_SYS_DIR symbol, and says whether a C program should include <sys/dir.h>. ๐Ÿ“
  • i_sysfile โ€” From i_sysfile.U: conditionally defines the I_SYS_FILE symbol, and says whether a C program should include <sys/file.h> to get R_OK and friends. ๐Ÿ‘ฏ
  • i_sysfilio โ€” From i_sysioctl.U: conditionally defines the I_SYS_FILIO symbol, which tells your C program that <sys/filio.h> exists and should be included in preference to <sys/ioctl.h>. ๐Ÿ’…
  • i_sysin โ€” From i_niin.U: conditionally defines I_SYS_IN, which tells your C program to include <sys/in.h> instead of <netinet/in.h>. ๐Ÿ”„
  • i_sysioctl โ€” From i_sysioctl.U: conditionally defines the I_SYS_IOCTL symbol, which tells your C program that <sys/ioctl.h> exists and should be included. โš™๏ธ
  • i_syslog โ€” From i_syslog.U: conditionally defines I_SYSLOG, and says whether a C program should include <syslog.h>. ๐Ÿ“
  • i_sysmman โ€” From i_sysmman.U: conditionally defines I_SYS_MMAN, and says whether a C program should include <sys/mman.h>. ๐Ÿง 
  • i_sysmode โ€” From i_sysmode.U: conditionally defines I_SYSMODE, and says whether a C program should include <sys/mode.h>. ๐ŸŽ›๏ธ
  • i_sysmount โ€” From i_sysmount.U: conditionally defines I_SYSMOUNT, and says whether a C program should include <sys/mount.h>. ๐Ÿ”๏ธ
  • i_sysndir โ€” From i_sysndir.U: conditionally defines the I_SYS_NDIR symbol, and says whether a C program should include <sys/ndir.h>. ๐Ÿ“‚
  • i_sysparam โ€” From i_sysparam.U: conditionally defines the I_SYS_PARAM symbol, and says whether a C program should include <sys/param.h>. โš™๏ธ
  • i_syspoll โ€” From i_syspoll.U: conditionally defines the I_SYS_POLL symbol, which tells your C program to include <sys/poll.h>. ๐Ÿ—ณ๏ธ
  • i_sysrandom โ€” From i_sysrandom.U: conditionally defines the I_SYS_RANDOM symbol, and says whether a C program should include <sys/random.h>. ๐ŸŽฒ
  • i_sysresrc โ€” From i_sysresrc.U: conditionally defines the I_SYS_RESOURCE symbol, and says whether a C program should include <sys/resource.h>. ๐Ÿ“Š
  • i_syssecrt โ€” From i_syssecrt.U: conditionally defines the I_SYS_SECURITY symbol, and says whether a C program should include <sys/security.h>. ๐Ÿ”’
  • i_sysselct โ€” From i_sysselct.U: conditionally defines I_SYS_SELECT, which tells your C program to include <sys/select.h> in order to get the definition of struct timeval. โฑ๏ธ
  • i_syssockio โ€” From i_sysioctl.U: conditionally defines I_SYS_SOCKIO to indicate to the C program that socket ioctl codes may be found in <sys/sockio.h> instead of <sys/ioctl.h>. ๐Ÿฆ‹
  • i_sysstat โ€” From i_sysstat.U: conditionally defines the I_SYS_STAT symbol, and says whether a C program should include <sys/stat.h>. ๐Ÿ“ˆ
  • i_sysstatfs โ€” From i_sysstatfs.U: conditionally defines the I_SYSSTATFS symbol, and says whether a C program should include <sys/statfs.h>. ๐Ÿ“‰
  • i_sysstatvfs โ€” From i_sysstatvfs.U: conditionally defines the I_SYSSTATVFS symbol, and says whether a C program should include <sys/statvfs.h>. ๐Ÿ’พ
  • i_syssyscall โ€” From i_syssyscall.U: conditionally defines the I_SYS_SYSCALL symbol, and says whether a C program should include <sys/syscall.h>. ๐Ÿ“ž
  • i_systime โ€” From i_time.U: conditionally defines I_SYS_TIME, which tells your C program to include <sys/time.h>. ๐Ÿ•ฐ๏ธ
  • i_systimek โ€” From i_time.U: conditionally defines I_SYS_TIME_KERNEL, which tells your C program to include <sys/time.h> with "KERNEL" defined. ๐Ÿง 
  • i_systimes โ€” From i_systimes.U: conditionally defines the I_SYS_TIMES symbol, and says whether a C program should include <sys/times.h>. โณ
  • i_systypes โ€” From i_systypes.U: conditionally defines the I_SYS_TYPES symbol, and says whether a C program should include <sys/types.h>. ๐Ÿ“‹
  • i_sysuio โ€” From i_sysuio.U: conditionally defines the I_SYSUIO symbol, and says whether a C program should include <sys/uio.h>. ๐Ÿ“š
  • i_sysun โ€” From i_sysun.U: conditionally defines I_SYS_UN, which tells your C program to include <sys/un.h> to get "UNIX" domain socket definitions. ๐Ÿ”Œ
  • i_sysutsname โ€” From i_sysutsname.U: conditionally defines the I_SYSUTSNAME symbol, and says whether a C program should include <sys/utsname.h>. ๐Ÿ–ฅ๏ธ
  • i_sysvfs โ€” From i_sysvfs.U: conditionally defines the I_SYSVFS symbol, and says whether a C program should include <sys/vfs.h>. ๐Ÿ—„๏ธ
  • i_syswait โ€” From i_syswait.U: conditionally defines I_SYS_WAIT, which tells your C program to include <sys/wait.h>. โณ
  • i_termio โ€” From i_termio.U: conditionally defines the I_TERMIO symbol, which tells your C program to include <termio.h> rather than <sgtty.h>. โŒจ๏ธ
  • i_termios โ€” From i_termio.U: conditionally defines the I_TERMIOS symbol, which tells your C program that the "POSIX" <termios.h> file is to be included. ๐Ÿง
  • i_time โ€” From i_time.U: unconditionally defines I_TIME, which tells your C program to include <time.h>. โฐ
  • i_unistd โ€” From i_unistd.U: conditionally defines the I_UNISTD symbol, and says whether a C program should include <unistd.h>. ๐Ÿš
  • i_ustat โ€” From i_ustat.U: conditionally defines the I_USTAT symbol, and says whether a C program should include <ustat.h>. ๐Ÿ“€
  • i_utime โ€” From i_utime.U: conditionally defines the I_UTIME symbol, and says whether a C program should include <utime.h>. โฒ๏ธ
  • i_vfork โ€” From i_vfork.U: conditionally defines the I_VFORK symbol, and says whether a C program should include vfork.h. ๐ŸŒฟ
  • i_wchar โ€” From i_wchar.U: conditionally defines the I_WCHAR symbol, which indicates whether a C program may include <wchar.h>. ๐ŸŒ
  • i_wctype โ€” From i_wctype.U: conditionally defines the I_WCTYPE symbol, which indicates whether a C program may include <wctype.h>. ๐Ÿ”ค
  • i_xlocale โ€” From d_newlocale.U: this symbol, if defined, indicates to the C program that the header xlocale.h is available. See also xlocale_needed. ๐ŸŒ
  • ignore_versioned_solibs โ€” From libs.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 โ€” from inc_version_list.U: this one holds the list of subdirectories that perl.c:incpush() and lib/lib.pm will 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 versioned site_perl directory 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 โ€” from inc_version_list.U: holds the same list as inc_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 โ€” from usrinc.U: this variable must come BEFORE the normal include path to get the right one, like in $incpath/usr/include or $incpath/usr/lib. Value can be "" or /bsd43 on mips. ๐Ÿ‘‘
  • incpth โ€” from libpth.U: this variable must come BEFORE the normal include path to get the right one, like in $incpath/usr/include or $incpath/usr/lib. Value can be "" or /bsd43 on mips. Yep, she's giving identical twin energy with incpath โ€” not a typo on my end, they really do read the same. ๐Ÿ’€
  • inews โ€” from Loc.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 โ€” from bin.U: when userelocatableinc is true, this variable holds the location that make install should 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 of binexp, and then binexp is set to .../, since the other binaries are found relative to the perl binary. Relocatable queen. ๐Ÿ’–
  • installarchlib โ€” from archlib.U: this variable is really the same as archlibexp, but it may differ on those systems using AFS. For extra portability, only this variable should be used in makefiles. Got it, bestie: makefiles get install*, periodt. โญ
  • installbin โ€” from bin.U: this variable is the same as binexp unless AFS is running, in which case the user is explicitly prompted for it. This variable should ALWAYS be used in your makefiles for maximum portability. ๐Ÿ”ฅ
  • installhtml1dir โ€” from html1dir.U: really the same as html1direxp, unless you're using a different installprefix. For extra portability, you should only use this variable within your makefiles. ๐Ÿฆ‹
  • installhtml3dir โ€” from html3dir.U: really the same as html3direxp, unless you're using a different installprefix. For extra portability, you should only use this variable within your makefiles. ๐Ÿฆ‹
  • installman1dir โ€” from man1dir.U: really the same as man1direxp, unless you're using AFS, in which case it points to the read/write location whereas man1direxp only points to the read-only access location. For extra portability, you should only use this variable within your makefiles. ๐ŸŒธ
  • installman3dir โ€” from man3dir.U: really the same as man3direxp, unless you're using AFS, in which case it points to the read/write location whereas man3direxp only points to the read-only access location. For extra portability, you should only use this variable within your makefiles. ๐ŸŒธ
  • installprefix โ€” from installprefix.U: holds the name of the directory below which make install will install the package. For most users this is the same as prefix. 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 by prefix. Staging directory main character energy. ๐Ÿ‘‘
  • installprefixexp โ€” from installprefix.U: holds the full absolute path of installprefix with all ~-expansion done. Glow-up complete. โœจ
  • installprivlib โ€” from privlib.U: really the same as privlibexp, but it may differ on those systems using AFS. For extra portability, only this variable should be used in makefiles. ๐Ÿ’œ
  • installscript โ€” from scriptdir.U: usually the same as scriptdirexp, unless you're on a system running AFS, in which case they may differ slightly. You should always use this variable within your makefiles for portability. ๐ŸŽ€
  • installsitearch โ€” from sitearch.U: really the same as sitearchexp, but it may differ on those systems using AFS. For extra portability, only this variable should be used in makefiles. ๐Ÿ’œ
  • installsitebin โ€” from sitebin.U: usually the same as sitebinexp, unless you're on a system running AFS, in which case they may differ slightly. You should always use this variable within your makefiles for portability. ๐ŸŽ€
  • installsitehtml1dir โ€” from sitehtml1dir.U: really the same as sitehtml1direxp, unless you're using AFS, in which case it points to the read/write location whereas html1direxp only points to the read-only access location. For extra portability, you should only use this variable within your makefiles. ๐Ÿฆ‹
  • installsitehtml3dir โ€” from sitehtml3dir.U: really the same as sitehtml3direxp, unless you're using AFS, in which case it points to the read/write location whereas html3direxp only points to the read-only access location. For extra portability, you should only use this variable within your makefiles. ๐Ÿฆ‹
  • installsitelib โ€” from sitelib.U: really the same as sitelibexp, but it may differ on those systems using AFS. For extra portability, only this variable should be used in makefiles. ๐Ÿ’œ
  • installsiteman1dir โ€” from siteman1dir.U: really the same as siteman1direxp, unless you're using AFS, in which case it points to the read/write location whereas man1direxp only points to the read-only access location. For extra portability, you should only use this variable within your makefiles. ๐ŸŒธ
  • installsiteman3dir โ€” from siteman3dir.U: really the same as siteman3direxp, unless you're using AFS, in which case it points to the read/write location whereas man3direxp only points to the read-only access location. For extra portability, you should only use this variable within your makefiles. ๐ŸŒธ
  • installsitescript โ€” from sitescript.U: usually the same as sitescriptexp, unless you're on a system running AFS, in which case they may differ slightly. You should always use this variable within your makefiles for portability. ๐ŸŽ€
  • installstyle โ€” from installstyle.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 in Config.pm. Currently there are only two styles: "lib" and lib/perl5. The default library locations (e.g. privlib, sitelib) are either $prefix/lib or $prefix/lib/perl5. The former is useful if $prefix is a directory dedicated to perl (e.g. /opt/perl), while the latter is useful if $prefix is 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 โ€” from instubperl.U: this variable tells whether Perl should be installed also as /usr/bin/perl in addition to $installbin/perl. Double placement, double slay. ๐Ÿ’…
  • installvendorarch โ€” from vendorarch.U: really the same as vendorarchexp, but it may differ on those systems using AFS. For extra portability, only this variable should be used in makefiles. ๐Ÿ’œ
  • installvendorbin โ€” from vendorbin.U: really the same as vendorbinexp, but it may differ on those systems using AFS. For extra portability, only this variable should be used in makefiles. ๐Ÿ’œ
  • installvendorhtml1dir โ€” from vendorhtml1dir.U: really the same as vendorhtml1direxp, but it may differ on those systems using AFS. For extra portability, only this variable should be used in makefiles. ๐Ÿฆ‹
  • installvendorhtml3dir โ€” from vendorhtml3dir.U: really the same as vendorhtml3direxp, but it may differ on those systems using AFS. For extra portability, only this variable should be used in makefiles. ๐Ÿฆ‹
  • installvendorlib โ€” from vendorlib.U: really the same as vendorlibexp, but it may differ on those systems using AFS. For extra portability, only this variable should be used in makefiles. ๐Ÿ’œ
  • installvendorman1dir โ€” from vendorman1dir.U: really the same as vendorman1direxp, but it may differ on those systems using AFS. For extra portability, only this variable should be used in makefiles. ๐ŸŒธ
  • installvendorman3dir โ€” from vendorman3dir.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 โ€” From vendorscript.U: okay so this one is literally the same as vendorscriptexp, but it may differ on those systems using "AFS". And for extra portability, only this variable should be used in makefiles. Periodt.
  • intmaxsize โ€” From intsize.U: this holds the value of the INTMAXSIZE symbol, which tells your C program how many bytes there are in an intmax_t. ๐Ÿงฎ
  • intsize โ€” From intsize.U: this holds the value of the INTSIZE symbol, which tells your C program how many bytes there are in an int.
  • issymlink โ€” From issymlink.U: holds the test command you'd use to test for a symbolic link (if they're even supported, that is). Typical values include test -h and test -L. iconic honestly โœจ
  • ivdformat โ€” From perlxvf.U: contains the format string used for printing a Perl IV as a signed decimal integer.
  • ivsize โ€” From perlxv.U: this is the size of an IV in bytes.
  • ivtype โ€” From perlxv.U: contains the C type used for Perl's IV.

k ๐ŸŽ€

  • known_extensions โ€” From Extensions.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 โ€” From Loc.U: this variable is defined but not used by Configure. The value is the empty string and it is not useful. ๐Ÿ’€

l ๐Ÿฆ‹

  • ld โ€” From dlsrc.U: tells you which program gets used to link libraries for dynamic loading. On some systems, it's ld. On "ELF" systems, it should be $cc. Mostly, we'll try to respect the hint file setting. ๐Ÿซถ
  • ld_can_script โ€” From dlsrc.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 โ€” From dlsrc.U: contains any special flags that might need to be passed to $ld to 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 โ€” From ccflags.U: contains any additional C loader flags that the user wants. It is up to the Makefile to use this.
  • ldflags_uselargefiles โ€” From uselfs.U: contains the loader flags needed by large file builds, and it gets added to ldflags by hints files.
  • ldlibpthname โ€” From libperl.U: holds the name of the shared library search path, often LD_LIBRARY_PATH. Heads up though โ€” to get an empty string, the hints file must set this to none. ๐Ÿ’…
  • less โ€” From Loc.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 plain less and is not useful.
  • lib_ext โ€” From Unix.U: this is an old synonym for _a. vintage behavior ngl ๐ŸŽ€
  • libc โ€” From libc.U: contains the location of the C library.
  • libperl โ€” From libperl.U: the perl executable is obtained by linking perlmain.c with libperl, any static extensions (usually just DynaLoader), and any other libraries needed on this system. libperl is usually libperl.a, but it can also be libperl.so.xxx if the user wants to build a perl executable with a shared library. main character energy, fr fr ๐Ÿ‘‘
  • libpth โ€” From libpth.U: holds the general path (space-separated) used to find libraries. It is intended to be used by other units.
  • libs โ€” From libs.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 โ€” From libs.U: holds the directory names aka dirnames of the libraries we found and accepted โ€” duplicates are removed. obsessed ๐Ÿงน
  • libsfiles โ€” From libs.U: holds the filenames aka basenames of the libraries we found and accepted.
  • libsfound โ€” From libs.U: holds the full pathnames of the libraries we found and accepted.
  • libspath โ€” From libs.U: holds the directory names probed for libraries.
  • libswanted โ€” From Myinit.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 โ€” From uselfs.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 the lib prefix or any suffix, just like libswanted..
  • line โ€” From Loc.U: defined but not used by Configure. The value is the empty string and is not useful. ๐Ÿ’€
  • lint โ€” From Loc.U: defined but not used by Configure. The value is the empty string and is not useful. ๐Ÿ’€
  • lkflags โ€” From ccflags.U: contains any additional C partial linker flags desired by the user. It is up to the Makefile to use this.
  • ln โ€” From Loc.U: used internally by Configure to determine the full pathname (if any) of the ln program. After Configure runs, the value is reset to a plain ln and is not useful.
  • lns โ€” From lns.U: holds the name of the command to make symbolic links (if they're supported). It can be used in the Makefile. It is either ln -s or ln. ๐ŸŽ€
  • localtime_r_proto โ€” From d_localtime_r.U: encodes the prototype of localtime_r. It is zero if d_localtime_r is undef, and one of the REENTRANT_PROTO_T_ABC macros of reentr.h if d_localtime_r is defined.
  • locincpth โ€” From ccflags.U: contains a list of additional directories to be searched by the compiler. The appropriate -I directives will be added to ccflags. This is intended to simplify setting local directories from the Configure command line. It's not much, but it parallels the loclibpth stuff in libpth.U. bestie it's doing its best ๐Ÿซถ
  • loclibpth โ€” From libpth.U: holds the paths (space-separated) used to find local libraries. It is prepended to libpth, and is intended to be easily set from the command line.
  • longdblinfbytes โ€” From infnan.U: contains a comma-separated list of hexadecimal bytes for the long double precision infinity. ๐ŸŒˆ
  • longdblkind โ€” From d_longdbl.U: if defined, this encodes the type of a long double:
    • 0 = double
    • 1 = "IEEE" 754 128-bit little endian
    • 2 = "IEEE" 754 128-bit big endian
    • 3 = x86 80-bit little endian
    • 4 = x86 80-bit big endian
    • 5 = double-double 128-bit little endian
    • 6 = double-double 128-bit big endian
    • 7 = 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 โ€” From mantbits.U: this symbol, if defined, tells how many mantissa bits there are in long double precision floating point format. Note that this can be LDBL_MANT_DIG minus one, since LDBL_MANT_DIG can 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 โ€” From infnan.U: contains a comma-separated list of hexadecimal bytes for the long double precision not-a-number. ๐Ÿ“
  • longdblsize โ€” From d_longdbl.U: contains the value of the LONG_DOUBLESIZE symbol, which tells your C program how many bytes there are in a long double, if this system supports long doubles. Note that this is sizeof(long double), which may include unused bytes. ๐Ÿ™ˆ
  • longlongsize โ€” From d_longlong.U: contains the value of the LONGLONGSIZE symbol, which tells your C program how many bytes there are in a long long, if this system supports long long.
  • longsize โ€” From intsize.U: contains the value of the LONGSIZE symbol, which tells your C program how many bytes there are in a long.
  • lp โ€” From Loc.U: defined but not used by Configure. The value is the empty string and is not useful. ๐Ÿ’€
  • lpr โ€” From Loc.U: defined but not used by Configure. The value is the empty string and is not useful. ๐Ÿ’€
  • ls โ€” From Loc.U: used internally by Configure to determine the full pathname (if any) of the ls program. After Configure runs, the value is reset to a plain ls and is not useful.
  • lseeksize โ€” From lseektype.U: defines lseektype to be something like off_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 โ€” From lseektype.U: defines lseektype to be something like off_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 โ€” From Loc.U: defined but not used by Configure. The value is the empty string and is not useful. ๐Ÿ’€
  • mailx โ€” From Loc.U: defined but not used by Configure. The value is the empty string and is not useful. ๐Ÿ’€
  • make โ€” From Loc.U: used internally by Configure to determine the full pathname (if any) of the make program. After Configure runs, the value is reset to a plain make and is not useful.
  • make_set_make โ€” From make.U:
  • mallocobj โ€” (from mallocsrc.U) bestie, this one holds the name of the malloc.o that this package builds, but ONLY if that malloc.o is the preferred one over the system malloc. Otherwise? It's just null. It exists purely to help generate Makefiles. Peep mallocsrc for the tea. โœจ
  • mallocsrc โ€” (from mallocsrc.U) same energy as above but for the source file: this holds the name of the malloc.c that ships with the package, if that malloc.c beats the system malloc. Otherwise null, again. Also just for generating Makefiles. ๐Ÿ’…
  • malloctype โ€” (from mallocsrc.U) this one tells you the kind of ptr that malloc and realloc hand back. iconic, honestly.
  • man1dir โ€” (from man1dir.U) holds the name of the directory where manual source pages get dropped. It's on Makefile.SH to shove this value into the right command, and you yourself must be ready to do the ~name expansion. no cap. ๐Ÿซถ
  • man1direxp โ€” (from man1dir.U) literally the same as man1dir, except it's filename-expanded at configuration time so it's convenient to use inside makefiles. ๐ŸŽ€
  • man1ext โ€” (from man1dir.U) the extension your manual page should have โ€” one of n, l, or 1. The Makefile has to supply the ... Go look at man1dir. ๐ŸŒธ
  • man3dir โ€” (from man3dir.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 ~name expansion yourself. fr fr.
  • man3direxp โ€” (from man3dir.U) twin of man3dir but filename-expanded at configuration time, for makefile convenience. ๐Ÿ’–
  • man3ext โ€” (from man3dir.U) the extension for the manual page โ€” one of n, l, or 3. Makefile supplies the .., again. See man3dir. ๐Ÿฆ‹
  • mips_type โ€” (from usrinc.U) holds the environment type for the mips system. Possible values are BSD 4.3 and System V. periodt.
  • mistrustnm โ€” (from Csym.U) this is your fallthrough for when nm just cannot find a symbol, bestie. If usenm is false โ€” or usenm is true and mistrustnm is false โ€” this variable does absolutely nothing. If usenm is true and mistrustnm is compile, a test program gets compiled to hunt down any symbol that nm lookup couldn't locate. And if mistrustnm is run, that test program gets run as well as compiled. ๐Ÿ‘‘
  • mkdir โ€” (from Loc.U) used internally by Configure to figure out the full pathname (if there even is one) of the mkdir program. After Configure runs, the value is reset to a plain mkdir and is not useful. it's giving internal-only. ๐Ÿ’€
  • mmaptype โ€” (from d_mmap.U) contains the type of pointer that mmap() returns โ€” and simultaneously the type of its first argument. Can be void * or caddr_t. ๐Ÿค
  • modetype โ€” (from modetype.U) defines modetype to be something like mode_t, int, unsigned short, or whatever type your system actually uses to declare file modes for system calls.
  • more โ€” (from Loc.U) same internal Configure deal as mkdir, but for the more program. After Configure runs the value resets to a plain more and is not useful. ๐Ÿ™ˆ
  • multiarch โ€” (from multiarch.U) conditionally defines the MULTIARCH symbol, which signifies the presence of multiplatform files. Normally it's set by hints files. โœจ
  • mv โ€” (from Loc.U) defined but not used by Configure. The value is the empty string and it is not useful. we love a decorative variable. ๐Ÿ’…
  • myarchname โ€” (from archname.U) holds the architecture name that Configure computed 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 โ€” (from myhostname.U) contains the eventual value of the MYDOMAIN symbol โ€” the domain of the host your program is going to run on. That domain must be appended to myhostname to form a complete host name. And good news: the dot comes with mydomain, so the program doesn't need to supply it. ๐ŸŽ€
  • myhostname โ€” (from myhostname.U) contains the eventual value of the MYHOSTNAME symbol โ€” the name of the host your program will run on. The domain is not kept with the hostname; you have to get it from mydomain. And again, the dot comes with mydomain, no need to supply it yourself. ๐Ÿ’–
  • myuname โ€” (from Oldconfig.U) the output of uname -a if 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 โ€” (from n.U) this variable holds the -n flag if that is what makes the echo command suppress a newline. Otherwise it's null. Correct usage is $echo $n "prompt for a question: $c". iykyk. ๐Ÿš
  • need_va_copy โ€” (from need_va_copy.U) this symbol, when defined, means your system stores the variable argument list datatype va_list in 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.h defines a platform-independent macro, Perl_va_copy(src, dst), to do the job. slay, portability. ๐Ÿซถ
  • netdb_hlen_type โ€” (from netdbtype.U) holds the type used for the 2nd argument to gethostbyaddr(). Usually int or size_t or unsigned. Only useful if you have gethostbyaddr(), naturally. ๐Ÿ”
  • netdb_host_type โ€” (from netdbtype.U) holds the type used for the 1st argument to gethostbyaddr(). Usually char * or void *, possibly with or without a const prefix. Only useful if you have gethostbyaddr(), naturally. ๐ŸŒธ
  • netdb_name_type โ€” (from netdbtype.U) holds the type used for the argument to gethostbyname(). Usually char * or const char *. Only useful if you have gethostbyname(), naturally. โœจ
  • netdb_net_type โ€” (from netdbtype.U) holds the type used for the 1st argument to getnetbyaddr(). Usually int or long. Only useful if you have getnetbyaddr(), naturally. ๐Ÿ’…
  • nm โ€” (from Loc.U) internal Configure pathname-finder for the nm program. After Configure runs, the value resets to a plain nm and is not useful. ๐Ÿ”ง
  • nm_opt โ€” (from usenm.U) holds the options that may be necessary for nm. simple as that.
  • nm_so_opt โ€” (from usenm.U) holds the options that may be necessary for nm to work on a shared library but that absolutely can not be used on an archive library. Currently this is only used by Linux, where nm --dynamic is required to get symbols from an ELF library that's been stripped โ€” but nm --dynamic is fatal on an archive library. Maybe Linux should just always set usenm=false. ๐Ÿ˜ญ
  • nonxs_ext โ€” (from Extensions.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 one VMS specific extension). ๐Ÿ‘‘
  • nroff โ€” (from Loc.U) another internal Configure pathname-finder, this time for nroff. After Configure runs, the value resets to a plain nroff and is not useful. ๐Ÿ“„
  • nvEUformat โ€” (from perlxvf.U) holds the format string used for printing a Perl NV using %E-ish floating point format. uppercase formatting, uppercase energy. ๐Ÿ” 
  • nvFUformat โ€” (from perlxvf.U) holds the format string used for printing a Perl NV using %F-ish floating point format. ๐ŸŒˆ
  • nvGUformat โ€” (from perlxvf.U) holds the format string used for printing a Perl NV using %G-ish floating point format. โœจ
  • nv_overflows_integers_at โ€” (from perlxv.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 value 0. ๐Ÿ˜”
  • nv_preserves_uv_bits โ€” (from perlxv.U) indicates how many of the bits of type uvtype a variable of type nvtype can preserve. bit math bestie. ๐Ÿงฎ
  • nveformat โ€” (from perlxvf.U) holds the format string used for printing a Perl NV using %e-ish floating point format. lowercase edition. ๐Ÿ“
  • nvfformat โ€” (from perlxvf.U) holds the format string used for printing a Perl NV using %f-ish floating point format. ๐Ÿ’œ
  • nvgformat โ€” (from perlxvf.U) holds the format string used for printing a Perl NV using %g-ish floating point format. ๐ŸŽ€
  • nvmantbits โ€” (from mantbits.U) tells you how many bits the mantissa of a Perl NV has โ€” not including the possible implicit bit. so precise. ๐Ÿงš
  • nvsize โ€” (from perlxv.U) the size of a Perl NV in bytes. Heads up though: some floating point formats have unused bytes. ๐Ÿ™ˆ
  • nvtype โ€” (from perlxv.U) contains the C type used for Perl's NV. the moment we've all been waiting for. ๐Ÿ‘‘

๐ŸŒŸ o ๐ŸŒŸ

  • o_nonblock โ€” (from nblock_io.U) bears the symbol value to be used during open() or fcntl() to turn on non-blocking I/O for a file descriptor. If you want to switch between blocking and non-blocking, you may try ioctl("FIOSNBIO") instead โ€” but that's only supported by some devices. not all devices are gonna get it. ๐Ÿ’…
  • obj_ext โ€” (from Unix.U) this is an old synonym for _o. throwback fr. ๐Ÿ•ฐ๏ธ
  • old_pthread_create_joinable โ€” (from d_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" โ€” from ccflags.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" โ€” from orderlib.U. It's "true" if the components of libraries have to be ordered (via lorder $* | tsort) before they get placed in an archive. Set it to "false" if ranlib or ar can generate random libraries. slay, freedom. โœจ
  • "osname" โ€” from Oldconfig.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" โ€” from Oldconfig.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 be os_4.0 or os_4.1, etc., not one separate file for every little release. lowkey efficient ๐Ÿ‘‘
  • "otherlibdirs" โ€” from otherlibdirs.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. Peep inc_version_list for more deets. A value of " " means "none" and exists to preserve this value for the next run through Configure. ๐ŸŽ€

๐ŸŒธ p ๐ŸŒธ

  • "package" โ€” from package.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" โ€” from pager.U. The name of the preferred pager on the system. Usual values are (the full pathnames of) more, less, pg, or cat. ๐Ÿ’–
  • "passcat" โ€” from nis.U. A command that produces the text of the /etc/passwd file. 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" โ€” from patchlevel.U. The patchlevel level of this package. Its value comes from the patchlevel.h file. In a version number like 5.6.1, this is the 6. In patchlevel.h, it's referred to as "PERL_VERSION". iykyk ๐Ÿ“Œ
  • "path_sep" โ€” from Unix.U. An old synonym for p_ in Head.U โ€” the character used to separate elements in the command shell search "PATH". vintage but iconic ๐ŸŽ€
  • "perl" โ€” from Loc.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" โ€” from perl5.U. Contains the full path (if any) to a previously installed perl5.005 or later, suitable for running the script that determines inc_version_list.
  • "perl_lc_all_category_positions_init" โ€” from disparate_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 by setlocale("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" โ€” from disparate_lc_all.U. When defined, this symbol gives the substring used to separate categories in the aggregated string returned by setlocale("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" โ€” from patchlevel.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" โ€” from d_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:
    1. static inline (c99)
    2. static __inline__ (gcc -ansi)
    3. static __inline ("MSVC")
    4. static _inline (older "MSVC")
    5. static (c89 compilers)
  • "perl_thread_local" โ€” from d_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" โ€” from perladmin.U. Electronic mail address of the perl5 administrator. ๐Ÿ“ง
  • "perllibs" โ€” from End.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" โ€” from perlpath.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" โ€” from Loc.U. Used internally by Configure to determine the full pathname (if any) of the pg program. After Configure runs, the value is reset to a plain "pg" and is not useful. ๐Ÿซ 
  • "phostname" โ€” from myhostname.U. Contains the eventual value of the "PHOSTNAME" symbol, which is a command that can be fed to popen() to get the host name. The program should probably not presume that the domain is or isn't there already. no assumptions, bestie ๐Ÿ’…
  • "pidtype" โ€” from pidtype.U. This variable defines "PIDTYPE" to be something like pid_t, int, ushort, or whatever type is used to declare process ids in the kernel. ๐Ÿ‘‘
  • "plibpth" โ€” from libpth.U. Holds the private path used by Configure to find out the libraries. Its value gets prepended to libpth. This variable takes care of special machines, like the mips. Usually, it should be empty. ๐ŸŒธ
  • "pmake" โ€” 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 decorative ๐Ÿ˜ญ
  • "pr" โ€” from Loc.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" โ€” from prefix.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 in bin.U, mansrc.U, privlib.U, or scriptdir.U. so it sets the vibe, others follow โœจ
  • "prefixexp" โ€” from prefix.U. Holds the full absolute path of the directory below which the user will install the package. Derived from prefix.
  • "privlib" โ€” from privlib.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" โ€” from privlib.U. The ~name-expanded version of privlib, so you can use it directly in Makefiles or shell scripts. obsessed with a good expansion ๐Ÿซถ
  • "procselfexe" โ€” from d_procselfexe.U. If d_procselfexe is defined, $procselfexe is the filename of the symbolic link pointing to the absolute pathname of the executing program. ๐Ÿ”
  • "ptrsize" โ€” from ptrsize.U. Contains the value of the "PTRSIZE" symbol, which tells the C program how many bytes there are in a pointer. ๐ŸŒˆ

๐Ÿฆ‹ q ๐Ÿฆ‹

  • "quadkind" โ€” from quadtype.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" โ€” from quadtype.U. This variable defines Quad_t to be something like long, int, long long, int64_t, or whatever type is used for 64-bit integers. โœจ

๐Ÿ’œ r ๐Ÿ’œ

  • "randbits" โ€” from randfunc.U. Indicates how many bits are produced by the function used to generate normalized random numbers. ๐ŸŽฒ
  • "randfunc" โ€” from randfunc.U. Indicates the name of the random number function to use. Values include drand48, random, and rand. In C programs, the "Drand01" macro is defined to generate uniformly distributed random numbers over the range [0., 1.[ (peep drand01 and nrand). ๐Ÿ“
  • "random_r_proto" โ€” from d_random_r.U. This variable encodes the prototype of random_r. It's zero if d_random_r is undef, and one of the "REENTRANT_PROTO_T_ABC" macros of reentr.h if d_random_r is defined. โœจ
  • "randseedtype" โ€” from randfunc.U. Indicates the type of the argument of the seedfunc. ๐ŸŒฑ
  • "ranlib" โ€” from orderlib.U. This variable is set to the pathname of the ranlib program, if it's needed to generate random libraries. Set to ":" if ar can generate random libraries or if random libraries aren't supported at all. ๐Ÿซถ
  • "rd_nodata" โ€” from nblock_io.U. This variable holds the return code from read() when no data is present. It should be -1, but some systems return 0 when "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" โ€” from d_readdir64_r.U.
  • readdir64_r_proto โ€” straight from d_readdir64_r.U ๐Ÿ’– this one encodes the prototype of readdir64_r. It's zero if d_readdir64_r is undef, and one of the "REENTRANT_PROTO_T_ABC" macros of reentr.h if d_readdir64_r is defined. iykyk.
  • readdir_r_proto โ€” from d_readdir_r.U โœจ and no cap, it's the exact same deal: it encodes the prototype of readdir_r. Zero if d_readdir_r is undef, and one of the "REENTRANT_PROTO_T_ABC" macros of reentr.h if d_readdir_r is defined.
  • revision โ€” from patchlevel.U ๐ŸŽ€ the value of revision comes from the patchlevel.h file. In a version number such as 5.6.1, this is the 5. In patchlevel.h, this is referred to as "PERL_REVISION". iconic.
  • rm โ€” from Loc.U ๐Ÿฆ‹ this variable is used internally by Configure to figure out the full pathname (if any) of the rm program. 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 โ€” from Unix.U ๐Ÿงš this is a cleanup variable for try test programs. Internal Configure use only. hands off.
  • rmail โ€” 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 decorative.
  • run โ€” from Cross.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 โ€” from usenm.U ๐Ÿ’… this variable contains "true" or "false" depending on whether the nm extraction should be performed or not, according to the value of usenm and the flags on the Configure command line.

โœจ s โœจ

  • sGMTIME_max โ€” from time_size.U ๐Ÿ• this variable defines the maximum value of the time_t offset that the system function gmtime () accepts
  • sGMTIME_min โ€” from time_size.U ๐Ÿ• this variable defines the minimum value of the time_t offset that the system function gmtime () accepts
  • sLOCALTIME_max โ€” from time_size.U ๐Ÿ• this variable defines the maximum value of the time_t offset that the system function localtime () accepts
  • sLOCALTIME_min โ€” from time_size.U ๐Ÿ• this variable defines the minimum value of the time_t offset that the system function localtime () accepts
  • sPRIEUldbl โ€” from longdblfio.U ๐Ÿ’œ this variable, if defined, contains the string used by stdio to format long doubles (format "E") for output. The "U" in the name is there to separate this from sPRIeldbl so that even case-blind systems can see the difference. inclusivity queen.
  • sPRIFUldbl โ€” from longdblfio.U ๐Ÿ’œ this variable, if defined, contains the string used by stdio to format long doubles (format "F") for output. The "U" in the name separates this from sPRIfldbl so that even case-blind systems can tell the difference.
  • sPRIGUldbl โ€” from longdblfio.U ๐Ÿ’œ this variable, if defined, contains the string used by stdio to format long doubles (format "G") for output. The "U" in the name separates this from sPRIgldbl so that even case-blind systems can see the difference.
  • sPRIXU64 โ€” from quadfio.U ๐Ÿ”ฅ this variable, if defined, contains the string used by stdio to format 64-bit hExADECimAl numbers (format "X") for output. The "U" in the name separates this from sPRIx64 so 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 โ€” from quadfio.U ๐Ÿ”ฅ this variable, if defined, contains the string used by stdio to format 64-bit decimal numbers (format "d") for output.
  • sPRIeldbl โ€” from longdblfio.U ๐Ÿ“ this variable, if defined, contains the string used by stdio to format long doubles (format "e") for output.
  • sPRIfldbl โ€” from longdblfio.U ๐Ÿ“ this variable, if defined, contains the string used by stdio to format long doubles (format "f") for output.
  • sPRIgldbl โ€” from longdblfio.U ๐Ÿ“ this variable, if defined, contains the string used by stdio to format long doubles (format "g") for output.
  • sPRIi64 โ€” from quadfio.U โญ this variable, if defined, contains the string used by stdio to format 64-bit decimal numbers (format "i") for output.
  • sPRIo64 โ€” from quadfio.U โญ this variable, if defined, contains the string used by stdio to format 64-bit octal numbers (format "o") for output.
  • sPRIu64 โ€” from quadfio.U โญ this variable, if defined, contains the string used by stdio to format 64-bit unsigned decimal numbers (format "u") for output.
  • sPRIx64 โ€” from quadfio.U โญ this variable, if defined, contains the string used by stdio to format 64-bit hexadecimal numbers (format "x") for output.
  • sSCNfldbl โ€” from longdblfio.U ๐ŸŽ€ this variable, if defined, contains the string used by stdio to format long doubles (format "f") for input. note bestie: input, not output. read the difference, it matters.
  • sched_yield โ€” from d_pthread_y.U ๐Ÿงต this variable defines the way to yield the execution of the current thread. polite behavior fr.
  • scriptdir โ€” from scriptdir.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 ~name expansion. (yes, that tilde, you're not tripping.)
  • scriptdirexp โ€” from scriptdir.U ๐Ÿ“‚ this one is the same as scriptdir, but it's filename expanded at configuration time, for programs that don't want to bother with it. lowkey the convenient twin.
  • sed โ€” from Loc.U ๐Ÿฆ‹ this variable is used internally by Configure to work out the full pathname (if any) of the sed program. After Configure runs, the value is reset to a plain "sed" and is not useful.
  • seedfunc โ€” from randfunc.U ๐ŸŽฒ indicates the random number generating seed function. Values include srand48, srandom, and srand. pick your fighter.
  • selectminbits โ€” from selectminbits.U ๐Ÿ’ซ this variable holds the minimum number of bits operated by select. That is, if you do select(n, ...), how many bits at least will be cleared in the masks if some activity is detected. Usually this is either n or 32*ceil(n/32) โ€” and especially many little-endians do the latter. This is only useful if you have select(), naturally. โœจ
  • selecttype โ€” from selecttype.U ๐Ÿ’ซ this variable holds the type used for the 2nd, 3rd, and 4th arguments to select. Usually, this is "fd_set *" if "HAS_FD_SET" is defined, and "int *" otherwise. Again: only useful if you have select(), naturally.
  • sendmail โ€” from Loc.U ๐Ÿ™ˆ this variable is defined but not used by Configure. The value is the empty string and is not useful.
  • setgrent_r_proto โ€” from d_setgrent_r.U ๐Ÿ’– this variable encodes the prototype of setgrent_r. It is zero if d_setgrent_r is undef, and one of the "REENTRANT_PROTO_T_ABC" macros of reentr.h if d_setgrent_r is defined.
  • sethostent_r_proto โ€” from d_sethostent_r.U ๐Ÿ’– this variable encodes the prototype of sethostent_r. It is zero if d_sethostent_r is undef, and one of the "REENTRANT_PROTO_T_ABC" macros of reentr.h if d_sethostent_r is defined.
  • setlocale_r_proto โ€” from d_setlocale_r.U ๐Ÿ’– this variable encodes the prototype of setlocale_r. It is zero if d_setlocale_r is undef, and one of the "REENTRANT_PROTO_T_ABC" macros of reentr.h if d_setlocale_r is defined.
  • setnetent_r_proto โ€” from d_setnetent_r.U ๐Ÿ’– this variable encodes the prototype of setnetent_r. It is zero if d_setnetent_r is undef, and one of the "REENTRANT_PROTO_T_ABC" macros of reentr.h if d_setnetent_r is defined.
  • setprotoent_r_proto โ€” from d_setprotoent_r.U ๐Ÿ’– this variable encodes the prototype of setprotoent_r. It is zero if d_setprotoent_r is undef, and one of the "REENTRANT_PROTO_T_ABC" macros of reentr.h if d_setprotoent_r is defined.
  • setpwent_r_proto โ€” from d_setpwent_r.U ๐Ÿ’– this variable encodes the prototype of setpwent_r. It is zero if d_setpwent_r is undef, and one of the "REENTRANT_PROTO_T_ABC" macros of reentr.h if d_setpwent_r is defined.
  • setservent_r_proto โ€” from d_setservent_r.U ๐Ÿ’– this variable encodes the prototype of setservent_r. It is zero if d_setservent_r is undef, and one of the "REENTRANT_PROTO_T_ABC" macros of reentr.h if d_setservent_r is defined.
  • sh โ€” from sh.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 as D:/bin/sh.exe. Careful: this unit comes before Options.U, so you can't set sh with a "-D" option โ€” but you can override this (and startsh) with "-O -Dsh=/bin/whatever -Dstartsh=whatever" ๐Ÿ’…
  • shar โ€” from Loc.U ๐Ÿ™ˆ this variable is defined but not used by Configure. The value is the empty string and is not useful.
  • sharpbang โ€” from spitshell.U ๐ŸŒˆ this variable contains the string #! if this system supports that construct. the shebang, the moment, the icon.
  • shmattype โ€” from d_shmat.U ๐Ÿง  this symbol contains the type of pointer returned by shmat(). It can be "void *" or "char *". one of two, no in-between.
  • shortsize โ€” from intsize.U ๐Ÿ“ this variable contains the value of the "SHORTSIZE" symbol, which indicates to the C program how many bytes there are in a short.
  • shrpenv โ€” from libperl.U ๐Ÿซถ okay so if the user builds a shared libperl.so, then we gotta tell the perl executable where it'll be able to find the installed libperl.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 shared libperl.so. The makefile can use this with something like $shrpenv $("CC") -o perl perlmain.o $libperl $libs. Typical values are shrpenv="env "LD_RUN_PATH"=$archlibexp/"CORE"" or shrpenv=''. See the main perl Makefile.SH for 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 โ€” from spitshell.U ๐Ÿ’œ this variable tells further Configure units whether your sh can handle # comments. vibe check on your shell's literacy.
  • sig_count โ€” from sig_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 โ€” From vendorarch.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 โ€” From vendorarch.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 โ€” From vendorbin.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 โ€” From vendorbin.U:

The ~name expanded version of vendorbin, so you can slap it right into Makefiles or shell scripts ๐ŸŽ€

  • vendorhtml1dir โ€” From vendorhtml1dir.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 โ€” From vendorhtml1dir.U:

The ~name expanded version of vendorhtml1dir, usable directly in Makefiles or shell scripts ๐Ÿฆ‹

  • vendorhtml3dir โ€” From vendorhtml3dir.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 โ€” From vendorhtml3dir.U:

The ~name expanded version of vendorhtml3dir so you can use it right in Makefiles or shell scripts ๐ŸŒˆ

  • vendorlib โ€” From vendorlib.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 โ€” From vendorlib.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 โ€” From vendorlib.U:

The ~name expanded version of vendorlib, so you can use it directly in Makefiles or shell scripts ๐Ÿซถ

  • vendorman1dir โ€” From vendorman1dir.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 โ€” From vendorman1dir.U:

The ~name expanded version of vendorman1dir, ready for Makefiles or shell scripts ๐Ÿ’–

  • vendorman3dir โ€” From vendorman3dir.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 โ€” From vendorman3dir.U:

The ~name expanded version of vendorman3dir, usable directly in Makefiles or shell scripts ๐Ÿฆ‹

  • vendorprefix โ€” From vendorprefix.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 โ€” From vendorprefix.U:

Also holds the full absolute path of the directory below which the vendor will install add-on packages ๐Ÿ’ซ derived from vendorprefix ๐ŸŒธ

  • vendorscript โ€” From vendorscript.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 โ€” From vendorscript.U:

The ~name expanded version of vendorscript, so you may use it directly in Makefiles or shell scripts ๐Ÿ”ฅ

  • version โ€” From patchlevel.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 โ€” From patchlevel.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 โ€” From versiononly.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 โ€” From Loc.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 โ€” From libpth.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 โ€” From d_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 โ€” From yacc.U:

Holds the name of the compiler compiler we want to use in the Makefile ๐Ÿ› ๏ธ it can be yacc, byacc, or bison -y ๐Ÿ‘‘

  • yaccflags โ€” From yacc.U:

Contains any additional yacc flags desired by the user ๐Ÿšฉ it is up to the Makefile to use this ๐Ÿซก


โœจ z โ€” final boss energy โœจ

  • zcat โ€” From Loc.U:

Defined but not used by Configure ๐Ÿ’€ the value is the empty string and is not useful ๐Ÿ™ˆ

  • zip โ€” From Loc.U:

This variable is used internally by Configure to determine the full pathname (if any) of the zip program ๐Ÿค after Configure runs, the value is reset to a plain "zip" and is not useful ๐Ÿซ 


๐Ÿงฌ 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