diff options
Diffstat (limited to 'gnu/usr.bin/perl')
22 files changed, 2091 insertions, 3273 deletions
diff --git a/gnu/usr.bin/perl/lib/Carp.t b/gnu/usr.bin/perl/lib/Carp.t index b383ce373d4..2ea98d86d7d 100644 --- a/gnu/usr.bin/perl/lib/Carp.t +++ b/gnu/usr.bin/perl/lib/Carp.t @@ -1,38 +1,31 @@ BEGIN { chdir 't' if -d 't'; @INC = '../lib'; - require './test.pl'; } -use warnings; -no warnings "once"; - -my $Is_VMS = $^O eq 'VMS'; - use Carp qw(carp cluck croak confess); -plan tests => 49; - -ok 1; +print "1..9\n"; -{ local $SIG{__WARN__} = sub { - like $_[0], qr/ok (\d+)\n at.+\b(?i:carp\.t) line \d+$/, 'ok 2\n' }; - - carp "ok 2\n"; - -} +print "ok 1\n"; -{ local $SIG{__WARN__} = sub { - like $_[0], qr/(\d+) at.+\b(?i:carp\.t) line \d+$/, 'carp 3' }; +$SIG{__WARN__} = sub { + print "ok $1\n" + if $_[0] =~ m!ok (\d+)$! }; - carp 3; +carp "ok 2\n"; + +$SIG{__WARN__} = sub { + print "ok $1\n" + if $_[0] =~ m!(\d+) at .+\b(?i:carp\.t) line \d+$! }; -} +carp 3; sub sub_4 { -local $SIG{__WARN__} = sub { - like $_[0], qr/^(\d+) at.+\b(?i:carp\.t) line \d+\n\tmain::sub_4\(\) called at.+\b(?i:carp\.t) line \d+$/, 'cluck 4' }; +$SIG{__WARN__} = sub { + print "ok $1\n" + if $_[0] =~ m!^(\d+) at .+\b(?i:carp\.t) line \d+\n\tmain::sub_4\(\) called at .+\b(?i:carp\.t) line \d+$! }; cluck 4; @@ -40,307 +33,39 @@ cluck 4; sub_4; -{ local $SIG{__DIE__} = sub { - like $_[0], qr/^(\d+) at.+\b(?i:carp\.t) line \d+\n\teval \Q{...}\E called at.+\b(?i:carp\.t) line \d+$/, 'croak 5' }; +$SIG{__DIE__} = sub { + print "ok $1\n" + if $_[0] =~ m!^(\d+) at .+\b(?i:carp\.t) line \d+\n\teval \Q{...}\E called at .+\b(?i:carp\.t) line \d+$! }; - eval { croak 5 }; -} +eval { croak 5 }; sub sub_6 { - local $SIG{__DIE__} = sub { - like $_[0], qr/^(\d+) at.+\b(?i:carp\.t) line \d+\n\teval \Q{...}\E called at.+\b(?i:carp\.t) line \d+\n\tmain::sub_6\(\) called at.+\b(?i:carp\.t) line \d+$/, 'confess 6' }; + $SIG{__DIE__} = sub { + print "ok $1\n" + if $_[0] =~ m!^(\d+) at .+\b(?i:carp\.t) line \d+\n\teval \Q{...}\E called at .+\b(?i:carp\.t) line \d+\n\tmain::sub_6\(\) called at .+\b(?i:carp\.t) line \d+$! }; eval { confess 6 }; } sub_6; -ok(1); +print "ok 7\n"; # test for caller_info API -my $eval = "use Carp; return Carp::caller_info(0);"; +my $eval = "use Carp::Heavy; return Carp::caller_info(0);"; my %info = eval($eval); -is($info{sub_name}, "eval '$eval'", 'caller_info API'); +print "not " if ($info{sub_name} ne "eval '$eval'"); +print "ok 8\n"; -# test for '...::CARP_NOT used only once' warning from Carp +# test for '...::CARP_NOT used only once' warning from Carp::Heavy my $warning; eval { BEGIN { - local $SIG{__WARN__} = + $^W = 1; + $SIG{__WARN__} = sub { if( defined $^S ){ warn $_[0] } else { $warning = $_[0] } } } - package Z; + package Z; BEGIN { eval { Carp::croak() } } }; -ok !$warning, q/'...::CARP_NOT used only once' warning from Carp/; - -# Test the location of error messages. -like(A::short(), qr/^Error at C/, "Short messages skip carped package"); - -{ - local @C::ISA = "D"; - like(A::short(), qr/^Error at B/, "Short messages skip inheritance"); -} - -{ - local @D::ISA = "C"; - like(A::short(), qr/^Error at B/, "Short messages skip inheritance"); -} - -{ - local @D::ISA = "B"; - local @B::ISA = "C"; - like(A::short(), qr/^Error at A/, "Inheritance is transitive"); -} - -{ - local @B::ISA = "D"; - local @C::ISA = "B"; - like(A::short(), qr/^Error at A/, "Inheritance is transitive"); -} - -{ - local @C::CARP_NOT = "D"; - like(A::short(), qr/^Error at B/, "Short messages see \@CARP_NOT"); -} - -{ - local @D::CARP_NOT = "C"; - like(A::short(), qr/^Error at B/, "Short messages see \@CARP_NOT"); -} - -{ - local @D::CARP_NOT = "B"; - local @B::CARP_NOT = "C"; - like(A::short(), qr/^Error at A/, "\@CARP_NOT is transitive"); -} - -{ - local @B::CARP_NOT = "D"; - local @C::CARP_NOT = "B"; - like(A::short(), qr/^Error at A/, "\@CARP_NOT is transitive"); -} - -{ - local @D::ISA = "C"; - local @D::CARP_NOT = "B"; - like(A::short(), qr/^Error at C/, "\@CARP_NOT overrides inheritance"); -} - -{ - local @D::ISA = "B"; - local @D::CARP_NOT = "C"; - like(A::short(), qr/^Error at B/, "\@CARP_NOT overrides inheritance"); -} - -# %Carp::Internal -{ - local $Carp::Internal{C} = 1; - like(A::short(), qr/^Error at B/, "Short doesn't report Internal"); -} - -{ - local $Carp::Internal{D} = 1; - like(A::long(), qr/^Error at C/, "Long doesn't report Internal"); -} - -# %Carp::CarpInternal -{ - local $Carp::CarpInternal{D} = 1; - like(A::short(), qr/^Error at B/ - , "Short doesn't report calls to CarpInternal"); -} - -{ - local $Carp::CarpInternal{D} = 1; - like(A::long(), qr/^Error at C/, "Long doesn't report CarpInternal"); -} - -# tests for global variables -sub x { carp @_ } -sub w { cluck @_ } - -# $Carp::Verbose; -{ my $aref = [ - qr/t at \S*(?i:carp.t) line \d+/, - qr/t at \S*(?i:carp.t) line \d+\n\s*main::x\('t'\) called at \S*(?i:carp.t) line \d+/ - ]; - my $i = 0; - - for my $re (@$aref) { - local $Carp::Verbose = $i++; - local $SIG{__WARN__} = sub { - like $_[0], $re, 'Verbose'; - }; - package Z; - main::x('t'); - } -} - -# $Carp::MaxEvalLen -{ my $test_num = 1; - for(0,4) { - my $txt = "Carp::cluck($test_num)"; - local $Carp::MaxEvalLen = $_; - local $SIG{__WARN__} = sub { - "@_"=~/'(.+?)(?:\n|')/s; - is length($1), length($_?substr($txt,0,$_):substr($txt,0)), 'MaxEvalLen'; - }; - eval "$txt"; $test_num++; - } -} - -# $Carp::MaxArgLen -{ - for(0,4) { - my $arg = 'testtest'; - local $Carp::MaxArgLen = $_; - local $SIG{__WARN__} = sub { - "@_"=~/'(.+?)'/; - is length($1), length($_?substr($arg,0,$_):substr($arg,0)), 'MaxArgLen'; - }; - - package Z; - main::w($arg); - } -} - -# $Carp::MaxArgNums -{ my $i = 0; - my $aref = [ - qr/1234 at \S*(?i:carp.t) line \d+\n\s*main::w\(1, 2, 3, 4\) called at \S*(?i:carp.t) line \d+/, - qr/1234 at \S*(?i:carp.t) line \d+\n\s*main::w\(1, 2, \.\.\.\) called at \S*(?i:carp.t) line \d+/, - ]; - - for(@$aref) { - local $Carp::MaxArgNums = $i++; - local $SIG{__WARN__} = sub { - like "@_", $_, 'MaxArgNums'; - }; - - package Z; - main::w(1..4); - } -} - -# $Carp::CarpLevel -{ my $i = 0; - my $aref = [ - qr/1 at \S*(?i:carp.t) line \d+\n\s*main::w\(1\) called at \S*(?i:carp.t) line \d+/, - qr/1 at \S*(?i:carp.t) line \d+$/, - ]; - - for (@$aref) { - local $Carp::CarpLevel = $i++; - local $SIG{__WARN__} = sub { - like "@_", $_, 'CarpLevel'; - }; - - package Z; - main::w(1); - } -} - -{ - local $TODO = "VMS exit status semantics don't work this way" if $Is_VMS; - - # Check that croak() and confess() don't clobber $! - runperl(prog => 'use Carp; $@=q{Phooey}; $!=42; croak(q{Dead})', - stderr => 1); - - is($?>>8, 42, 'croak() doesn\'t clobber $!'); - - runperl(prog => 'use Carp; $@=q{Phooey}; $!=42; confess(q{Dead})', - stderr => 1); - - is($?>>8, 42, 'confess() doesn\'t clobber $!'); -} - -# undef used to be incorrectly reported as the string "undef" -sub cluck_undef { - -local $SIG{__WARN__} = sub { - like $_[0], qr/^Bang! at.+\b(?i:carp\.t) line \d+\n\tmain::cluck_undef\(0, 'undef', 2, undef, 4\) called at.+\b(?i:carp\.t) line \d+$/, "cluck doesn't quote undef" }; - -cluck "Bang!" - -} - -cluck_undef (0, "undef", 2, undef, 4); - -# check that Carp respects CORE::GLOBAL::caller override after Carp -# has been compiled -for my $proper_job (0, 1) { - print '# ', ($proper_job ? '' : 'Not '), "setting \@DB::args in caller override\n"; - my $accum = ''; - local *CORE::GLOBAL::caller = sub { - local *__ANON__="fakecaller"; - my @c=CORE::caller(@_); - $c[0] ||= 'undef'; - $accum .= "@c[0..3]\n"; - if ($proper_job && CORE::caller() eq 'DB') { - package DB; - return CORE::caller(($_[0]||0)+1); - } else { - return CORE::caller(($_[0]||0)+1); - } - }; - eval "scalar caller()"; - like( $accum, qr/main::fakecaller/, "test CORE::GLOBAL::caller override in eval"); - $accum = ''; - my $got = A::long(42); - like( $accum, qr/main::fakecaller/, "test CORE::GLOBAL::caller override in Carp"); - my $package = 'A'; - my $warning = $proper_job ? '' - : "\Q** Incomplete caller override detected; \@DB::args were not set **\E"; - for (0..2) { - my $previous_package = $package; - ++$package; - like( $got, qr/${package}::long\($warning\) called at $previous_package line 7/, "Correct arguments for $package" ); - } - my $arg = $proper_job ? 42 : $warning; - like( $got, qr!A::long\($arg\) called at.+\b(?i:carp\.t) line \d+!, - 'Correct arguments for A' ); -} - -# line 1 "A" -package A; -sub short { - B::short(); -} - -sub long { - B::long(); -} - -# line 1 "B" -package B; -sub short { - C::short(); -} - -sub long { - C::long(); -} - -# line 1 "C" -package C; -sub short { - D::short(); -} - -sub long { - D::long(); -} - -# line 1 "D" -package D; -sub short { - eval{ Carp::croak("Error") }; - return $@; -} - -sub long { - eval{ Carp::confess("Error") }; - return $@; -} +print $warning ? "not ok 9\n#$warning" : "ok 9\n"; diff --git a/gnu/usr.bin/perl/lib/Config.t b/gnu/usr.bin/perl/lib/Config.t index 76ce6b63930..afc3c4a41c4 100644 --- a/gnu/usr.bin/perl/lib/Config.t +++ b/gnu/usr.bin/perl/lib/Config.t @@ -1,45 +1,21 @@ -#!./perl -w - BEGIN { chdir 't' if -d 't'; @INC = '../lib'; require "./test.pl"; - - plan ('no_plan'); - - use_ok('Config'); } -use strict; +plan tests => 23; + +use_ok('Config'); # Some (safe?) bets. ok(keys %Config > 500, "Config has more than 500 entries"); -my ($first) = Config::config_sh() =~ /^(\S+)=/m; -die "Can't find first entry in Config::config_sh()" unless defined $first; -print "# First entry is '$first'\n"; - -# It happens that the we know what the first key should be. This is somewhat -# cheating, but there was briefly a bug where the key got a bonus newline. -my ($first_each) = each %Config; -is($first_each, $first, "First key from each is correct"); -ok(exists($Config{$first_each}), "First key exists"); -ok(!exists($Config{"\n$first"}), - "Check that first key with prepended newline isn't falsely existing"); +ok(each %Config); is($Config{PERL_REVISION}, 5, "PERL_REVISION is 5"); -# Check that old config variable names are aliased to their new ones. -my %grandfathers = ( PERL_VERSION => 'PATCHLEVEL', - PERL_SUBVERSION => 'SUBVERSION', - PERL_CONFIG_SH => 'CONFIG' - ); -while( my($new, $old) = each %grandfathers ) { - isnt($Config{$new}, undef, "$new is defined"); - is($Config{$new}, $Config{$old}, "$new is aliased to $old"); -} - ok( exists $Config{cc}, "has cc"); ok( exists $Config{ccflags}, "has ccflags"); @@ -50,16 +26,13 @@ ok( exists $Config{d_fork}, "has d_fork"); ok(!exists $Config{d_bork}, "has no d_bork"); -like($Config{ivsize}, qr/^(4|8)$/, "ivsize is 4 or 8 (it is $Config{ivsize})"); +like($Config{ivsize}, qr/^(4|8)$/, "ivsize is 4 or 8 (it is $Config{ivsize})"); -# byteorder is virtual, but it has rules. +# byteorder is virtual, but it has rules. -like($Config{byteorder}, qr/^(1234|4321|12345678|87654321)$/, - "byteorder is 1234 or 4321 or 12345678 or 87654321 " - . "(it is $Config{byteorder})"); +like($Config{byteorder}, qr/^(1234|4321|12345678|87654321)$/, "byteorder is 1234 or 4321 or 12345678 or 87654321 (it is $Config{byteorder})"); -is(length $Config{byteorder}, $Config{ivsize}, - "byteorder is as long as ivsize (which is $Config{ivsize})"); +is(length $Config{byteorder}, $Config{ivsize}, "byteorder is as long as ivsize (which is $Config{ivsize})"); # ccflags_nolargefiles is virtual, too. @@ -67,114 +40,27 @@ ok(exists $Config{ccflags_nolargefiles}, "has ccflags_nolargefiles"); # Utility functions. -{ - # make sure we can export what we say we can export. - package Foo; - my @exports = qw(myconfig config_sh config_vars config_re); - Config->import(@exports); - foreach my $func (@exports) { - ::ok( __PACKAGE__->can($func), "$func exported" ); - } -} +like(Config::myconfig(), qr/cc='$Config{cc}'/, "myconfig"); -like(Config::myconfig(), qr/osname=\Q$Config{osname}\E/, "myconfig"); -like(Config::config_sh(), qr/osname='\Q$Config{osname}\E'/, "config_sh"); -like(Config::config_sh(), qr/byteorder='[1-8]+'/, - "config_sh has a valid byteorder"); -foreach my $line (Config::config_re('c.*')) { - like($line, qr/^c.*?=.*$/, 'config_re' ); +SKIP: { + skip "cc is tied in $^O", 1 if $^O eq 'MacOS'; + like(Config::config_sh(), qr/cc='$Config{cc}'/, "config_sh"); } my $out = tie *STDOUT, 'FakeOut'; -Config::config_vars('cc'); # non-regex test of essential cfg-var +Config::config_vars('cc'); my $out1 = $$out; $out->clear; -Config::config_vars('d_bork'); # non-regex, non-existent cfg-var +Config::config_vars('d_bork'); my $out2 = $$out; $out->clear; -Config::config_vars('PERL_API_.*'); # regex, tagged multi-line answer -my $out3 = $$out; -$out->clear; - -Config::config_vars('PERL_API_.*:'); # regex, tagged single-line answer -my $out4 = $$out; -$out->clear; - -Config::config_vars(':PERL_API_.*:'); # regex, non-tagged single-line answer -my $out5 = $$out; -$out->clear; - -Config::config_vars(':PERL_API_.*'); # regex, non-tagged multi-line answer -my $out6 = $$out; -$out->clear; - -Config::config_vars('PERL_API_REVISION.*:'); # regex, tagged -my $out7 = $$out; -$out->clear; - -# regex, non-tagged multi-line answer -Config::config_vars(':PERL_API_REVISION.*'); -my $out8 = $$out; -$out->clear; - -Config::config_vars('PERL_EXPENSIVE_.*:'); # non-matching regex -my $out9 = $$out; -$out->clear; - -Config::config_vars('?flags'); # bogus regex, no explicit warning ! -my $out10 = $$out; -$out->clear; - -undef $out; untie *STDOUT; -like($out1, qr/^cc='\Q$Config{cc}\E';/, "found config_var cc"); -like($out2, qr/^d_bork='UNKNOWN';/, "config_var d_bork is UNKNOWN"); - -# test for leading, trailing colon effects -# Split in scalar context it deprecated, and will warn. -my @tmp; -is(scalar (@tmp = split(/;\n/, $out3)), 3, "3 lines found"); -is(scalar (@tmp = split(/;\n/, $out6)), 3, "3 lines found"); - -is($out4 =~ /(;\n)/s, '', "trailing colon gives 1-line response: $out4"); -is($out5 =~ /(;\n)/s, '', "trailing colon gives 1-line response: $out5"); - -is(scalar (@tmp = split(/=/, $out3)), 4, "found 'tag='"); -is(scalar (@tmp = split(/=/, $out4)), 4, "found 'tag='"); - -my @api; - -my @rev = @Config{qw(PERL_API_REVISION PERL_API_VERSION PERL_API_SUBVERSION)}; - -print ("# test tagged responses, multi-line and single-line\n"); -foreach my $api ($out3, $out4) { - @api = $api =~ /PERL_API_(\w+)=(.*?)(?:;\n|\s)/mg; - is($api[0], "REVISION", "REVISION tag"); - is($api[4], "VERSION", "VERSION tag"); - is($api[2], "SUBVERSION", "SUBVERSION tag"); - is($api[1], "'$rev[0]'", "REVISION is $rev[0]"); - is($api[5], "'$rev[1]'", "VERSION is $rev[1]"); - is($api[3], "'$rev[2]'", "SUBVERSION is $rev[2]"); -} - -print("# test non-tagged responses, multi-line and single-line\n"); -foreach my $api ($out5, $out6) { - @api = split /(?: |;\n)/, $api; - is($api[0], "'$rev[0]'", "revision is $rev[0]"); - is($api[2], "'$rev[1]'", "version is $rev[1]"); - is($api[1], "'$rev[2]'", "subversion is $rev[2]"); -} - -# compare to each other, the outputs for trailing, leading colon -$out7 =~ s/ $//; -is("$out7;\n", "PERL_API_REVISION=$out8", "got expected diffs"); - -like($out9, qr/\bnot\s+found\b/, "$out9 - perl is FREE !"); -like($out10, qr/\bnot\s+found\b/, "config_vars with invalid regexp"); +like($out1, qr/^cc='$Config{cc}';/, "config_vars cc"); +like($out2, qr/^d_bork='UNKNOWN';/, "config_vars d_bork is UNKNOWN"); # Read-only. @@ -196,78 +82,18 @@ like($@, qr/Config is read-only/, "no CLEAR"); ok( exists $Config{d_fork}, "still d_fork"); -{ - package FakeOut; - - sub TIEHANDLE { - bless(\(my $text), $_[0]); - } +package FakeOut; - sub clear { - ${ $_[0] } = ''; - } - - sub PRINT { - my $self = shift; - $$self .= join('', @_); - } +sub TIEHANDLE { + bless(\(my $text), $_[0]); } -# Signal-related variables -# (this is actually a regression test for Configure.) - -is($Config{sig_num_init} =~ tr/,/,/, $Config{sig_size}, "sig_num_init size"); -is($Config{sig_name_init} =~ tr/,/,/, $Config{sig_size}, "sig_name_init size"); - -# Test the troublesome virtual stuff -my @virtual = qw(byteorder ccflags_nolargefiles ldflags_nolargefiles - libs_nolargefiles libswanted_nolargefiles); - -# Also test that the first entry in config.sh is found correctly. There was -# special casing code for this - -foreach my $pain ($first, @virtual) { - # No config var is named with anything that is a regexp metachar - ok(exists $Config{$pain}, "\$config('$pain') exists"); - - my @result = $Config{$pain}; - is (scalar @result, 1, "single result for \$config('$pain')"); - - @result = Config::config_re($pain); - is (scalar @result, 1, "single result for config_re('$pain')"); - like ($result[0], qr/^$pain=(['"])\Q$Config{$pain}\E\1$/, # grr ' - "which is the expected result for $pain"); +sub clear { + ${ $_[0] } = ''; } -# Check that config entries appear correctly in @INC -# TestInit.pm has probably already messed with our @INC -# This little bit of evil is to avoid a @ in the program, in case it confuses -# shell 1 liners. We used to use a perl 1-ism, until that was deprecated, so -# now some octal in an eval. -my ($path, $ver, @orig_inc) - = split /\n/, - runperl (nolib=>1, - prog=>'print qq{$_\n} foreach $^X, $], eval qq{\100INC}'); - -die "This perl is $] at $^X; other perl is $ver (at $path) " - . '- failed to find this perl' unless $] eq $ver; - -my %orig_inc; -@orig_inc{@orig_inc} = (); - -my $failed; -# This [used to be] the order that directories are pushed onto @INC in perl.c: -foreach my $lib (qw(applibexp archlibexp privlibexp sitearchexp sitelibexp - vendorarchexp vendorlibexp)) { - my $dir = $Config{$lib}; - SKIP: { - skip "lib $lib not in \@INC on Win32" if $^O eq 'MSWin32'; - skip "lib $lib not defined" unless defined $dir; - skip "lib $lib not set" unless length $dir; - # So we expect to find it in @INC - - ok (exists $orig_inc{$dir}, "Expect $lib '$dir' to be in \@INC") - or $failed++; - } +sub PRINT { + my $self = shift; + $$self .= join('', @_); } -_diag ('@INC is:', @orig_inc) if $failed; + diff --git a/gnu/usr.bin/perl/lib/Dumpvalue.t b/gnu/usr.bin/perl/lib/Dumpvalue.t index 8eb70a34b84..d1af109f603 100644 --- a/gnu/usr.bin/perl/lib/Dumpvalue.t +++ b/gnu/usr.bin/perl/lib/Dumpvalue.t @@ -7,11 +7,6 @@ BEGIN { print "1..0 # skip: EBCDIC\n"; exit 0; } - require Config; - if (($Config::Config{'extensions'} !~ m!\bList/Util\b!) ){ - print "1..0 # Skip -- Perl configured without List::Util module\n"; - exit 0; - } } use vars qw( $foo @bar %baz ); @@ -205,10 +200,7 @@ is( $out->read, "\$_<foo = 1\n", 'dumped glob for $_<foo correctly (DB)' ); # test CvGV name SKIP: { - if (" $Config::Config{'extensions'} " !~ m[ Devel/Peek ]) { - skip( 'no Devel::Peek', 2 ); - } - use_ok( 'Devel::Peek' ); + skip( 'no Devel::Peek', 1 ) unless use_ok( 'Devel::Peek' ); is( $d->CvGV_name(\&TieOut::read), 'TieOut::read', 'CvGV_name found sub' ); } diff --git a/gnu/usr.bin/perl/lib/File/CheckTree.t b/gnu/usr.bin/perl/lib/File/CheckTree.t index 656154a8704..0257f4e6f09 100644 --- a/gnu/usr.bin/perl/lib/File/CheckTree.t +++ b/gnu/usr.bin/perl/lib/File/CheckTree.t @@ -5,20 +5,11 @@ BEGIN { @INC = '../lib'; } -use Test::More tests => 23; +use Test; -use strict; +BEGIN { plan tests => 6 } -BEGIN { -# Cwd::cwd does an implicit "require Win32", but -# the ../lib directory in @INC will no longer work once -# we chdir() out of the "t" directory. - if ($^O eq 'MSWin32') { - require Win32; - Win32->import(); - } - require overload; -} +use strict; use File::CheckTree; use File::Spec; # used to get absolute paths @@ -48,14 +39,16 @@ chdir(File::Spec->updir) or die "cannot change to parent of t/ directory: $!"; # indented comment, followed blank line (w/o whitespace): README -f - '$path_to_README' -e || warn + $path_to_README -e || warn }; }; - diag($_) for @warnings; - is( $@, '' ); - is( scalar @warnings, 0 ); - is( $num_warnings, 0 ); + if ( !$@ && !@warnings && defined($num_warnings) && $num_warnings == 0 ) { + ok(1); + } + else { + ok(0); + } } @@ -73,10 +66,16 @@ chdir(File::Spec->updir) or die "cannot change to parent of t/ directory: $!"; }; }; - is( $@, '' ); - is( scalar @warnings, 1 ); - like( $warnings[0], qr/lib is not a plain file/); - is( $num_warnings, 1 ); + if ( !$@ && @warnings == 1 + && $warnings[0] =~ /lib is not a plain file/ + && defined($num_warnings) + && $num_warnings == 1 ) + { + ok(1); + } + else { + ok(0); + } } @@ -98,12 +97,18 @@ chdir(File::Spec->updir) or die "cannot change to parent of t/ directory: $!"; }; }; - is( $@, '' ); - is( scalar @warnings, 3 ); - like( $warnings[0], qr/lib is not a plain file/); - like( $warnings[1], qr/README is not a directory/); - like( $warnings[2], qr/my warning: lib/); - is( $num_warnings, 3 ); + if ( !$@ && @warnings == 3 + && $warnings[0] =~ /lib is not a plain file/ + && $warnings[1] =~ /README is not a directory/ + && $warnings[2] =~ /my warning: lib/ + && defined($num_warnings) + && $num_warnings == 3 ) + { + ok(1); + } + else { + ok(0); + } } @@ -119,21 +124,27 @@ chdir(File::Spec->updir) or die "cannot change to parent of t/ directory: $!"; eval { $num_warnings = validate qq{ lib -d || die - '$path_to_libFile' cd + $path_to_libFile cd Spec -e Spec -f - '$path_to_dist' cd + $path_to_dist cd README -ef INSTALL -d || warn - '$path_to_libFile' -d || die + $path_to_libFile -d || die }; }; - is( $@, '' ); - is( scalar @warnings, 2 ); - like( $warnings[0], qr/Spec is not a plain file/); - like( $warnings[1], qr/INSTALL is not a directory/); - is( $num_warnings, 2 ); + if ( !$@ && @warnings == 2 + && $warnings[0] =~ /Spec is not a plain file/ + && $warnings[1] =~ /INSTALL is not a directory/ + && defined($num_warnings) + && $num_warnings == 2 ) + { + ok(1); + } + else { + ok(0); + } } @@ -149,7 +160,14 @@ chdir(File::Spec->updir) or die "cannot change to parent of t/ directory: $!"; }; }; - like($@, qr/lib is not a plain file/); + if ( $@ && $@ =~ /lib is not a plain file/ + && not defined $num_warnings ) + { + ok(1); + } + else { + ok(0); + } } @@ -165,32 +183,12 @@ chdir(File::Spec->updir) or die "cannot change to parent of t/ directory: $!"; }; }; - like($@, qr/yadda lib yadda/); - is( $num_warnings, undef ); -} - -#### TEST 7 -- Quoted file names #### -{ - my $num_warnings; - eval { - $num_warnings = validate q{ - "a file with whitespace" !-ef - 'a file with whitespace' !-ef - }; - }; - - is ( $@, '', 'No errors mean we compile correctly'); -} - -#### TEST 8 -- Malformed query #### -{ - my $num_warnings; - eval { - $num_warnings = validate q{ - a file with whitespace !-ef - }; - }; - - like( $@, qr/syntax error/, - 'We got a syntax error for a malformed file query' ); + if ( $@ && $@ =~ /yadda lib yadda/ + && not defined $num_warnings ) + { + ok(1); + } + else { + ok(0); + } } diff --git a/gnu/usr.bin/perl/lib/Pod/t/Functions.t b/gnu/usr.bin/perl/lib/Pod/t/Functions.t index 8f44d812010..601aa50c9dc 100644 --- a/gnu/usr.bin/perl/lib/Pod/t/Functions.t +++ b/gnu/usr.bin/perl/lib/Pod/t/Functions.t @@ -80,7 +80,7 @@ Functions for SCALARs or strings: sprintf, substr, tr///, uc, ucfirst, y/// Regular expressions and pattern matching: - m//, pos, qr/STRING/, quotemeta, s///, split, study + m//, pos, qr/PATTERN/, quotemeta, s///, split, study Numeric functions: abs, atan2, cos, exp, hex, int, log, oct, rand, sin, sqrt, @@ -109,7 +109,7 @@ Functions for fixed length data or records: Functions for filehandles, files, or directories: -X, chdir, chmod, chown, chroot, fcntl, glob, ioctl, link, lstat, mkdir, open, opendir, readlink, rename, rmdir, - stat, symlink, sysopen, umask, unlink, utime + stat, symlink, umask, unlink, utime Keywords related to control flow of your perl program: caller, continue, die, do, dump, eval, exit, goto, last, @@ -124,15 +124,14 @@ Miscellaneous functions: Functions for processes and process groups: alarm, exec, fork, getpgrp, getppid, getpriority, kill, - pipe, qx/STRING/, readpipe, setpgrp, setpriority, sleep, - system, times, wait, waitpid + pipe, qx/STRING/, setpgrp, setpriority, sleep, system, + times, wait, waitpid Keywords related to perl modules: do, import, no, package, require, use Keywords related to classes and object-orientedness: - bless, dbmclose, dbmopen, package, ref, tie, tied, untie, - use + bless, dbmclose, dbmopen, package, ref, tie, untie, use Low-level socket functions: accept, bind, connect, getpeername, getsockname, diff --git a/gnu/usr.bin/perl/lib/Pod/t/htmlescp.pod b/gnu/usr.bin/perl/lib/Pod/t/htmlescp.pod index c901314c761..dc53ca75a09 100644 --- a/gnu/usr.bin/perl/lib/Pod/t/htmlescp.pod +++ b/gnu/usr.bin/perl/lib/Pod/t/htmlescp.pod @@ -11,6 +11,4 @@ Here is some B<bold> text, some I<italic> plus F</etc/fstab> file and something that looks like an E<lt>htmlE<gt> tag. This is some C<$code($arg1)>. -Some numeric escapes: E<0120> E<0x65> E<x72> E<108> - =cut diff --git a/gnu/usr.bin/perl/lib/Pod/t/htmlescp.t b/gnu/usr.bin/perl/lib/Pod/t/htmlescp.t index 95942cdf9eb..b7913c505b6 100644 --- a/gnu/usr.bin/perl/lib/Pod/t/htmlescp.t +++ b/gnu/usr.bin/perl/lib/Pod/t/htmlescp.t @@ -13,32 +13,26 @@ use Test::More tests => 1; convert_n_test("htmlescp", "html escape"); __DATA__ -<?xml version="1.0" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>NAME</title> -<meta http-equiv="content-type" content="text/html; charset=utf-8" /> <link rev="made" href="mailto:[PERLADMIN]" /> </head> <body style="background-color: white"> - -<!-- INDEX BEGIN --> -<div name="index"> <p><a name="__index__"></a></p> +<!-- INDEX BEGIN --> <ul> <li><a href="#name">NAME</a></li> <li><a href="#description">DESCRIPTION</a></li> </ul> - -<hr name="index" /> -</div> <!-- INDEX END --> +<hr /> <p> </p> <h1><a name="name">NAME</a></h1> @@ -49,10 +43,9 @@ __DATA__ <h1><a name="description">DESCRIPTION</a></h1> <p>I am a stupid fool who puts naked < & > characters in my POD instead of escaping them as < and >.</p> -<p>Here is some <strong>bold</strong> text, some <em>italic</em> plus <em class="file">/etc/fstab</em> +<p>Here is some <strong>bold</strong> text, some <em>italic</em> plus <em>/etc/fstab</em> file and something that looks like an <html> tag. This is some <code>$code($arg1)</code>.</p> -<p>Some numeric escapes: P e r l</p> </body> diff --git a/gnu/usr.bin/perl/lib/Pod/t/htmlview.pod b/gnu/usr.bin/perl/lib/Pod/t/htmlview.pod index 2ac15d36fe2..62ac71ced4d 100644 --- a/gnu/usr.bin/perl/lib/Pod/t/htmlview.pod +++ b/gnu/usr.bin/perl/lib/Pod/t/htmlview.pod @@ -110,7 +110,7 @@ Destructor method =head1 TESTING FOR AND BEGIN -=for html <br /> +=for html <br> <p> blah blah </p> @@ -135,8 +135,6 @@ This is an href link2: http://example.com/foo/bar.html This is an email link: mailto:foo@bar.com - This is a link in a verbatim block <a href="http://perl.org"> Perl </a> - =head1 SEE ALSO See also L<Test Page 2|htmlescp>, the L<Your::Module> and L<Their::Module> diff --git a/gnu/usr.bin/perl/lib/Pod/t/htmlview.t b/gnu/usr.bin/perl/lib/Pod/t/htmlview.t index 03fe6e572b5..a36b58aee37 100644 --- a/gnu/usr.bin/perl/lib/Pod/t/htmlview.t +++ b/gnu/usr.bin/perl/lib/Pod/t/htmlview.t @@ -7,49 +7,45 @@ BEGIN { require "pod2html-lib.pl"; } + use strict; use Test::More tests => 1; convert_n_test("htmlview", "html rendering"); + __DATA__ -<?xml version="1.0" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>NAME</title> -<meta http-equiv="content-type" content="text/html; charset=utf-8" /> <link rev="made" href="mailto:[PERLADMIN]" /> </head> <body style="background-color: white"> - -<!-- INDEX BEGIN --> -<div name="index"> <p><a name="__index__"></a></p> +<!-- INDEX BEGIN --> <ul> <li><a href="#name">NAME</a></li> <li><a href="#synopsis">SYNOPSIS</a></li> <li><a href="#description">DESCRIPTION</a></li> - <li><a href="#methods____other_stuff">METHODS => OTHER STUFF</a></li> + <li><a href="#methods_=>_other_stuff">METHODS => OTHER STUFF</a></li> <ul> - <li><a href="#new__"><code>new()</code></a></li> - <li><a href="#old__"><code>old()</code></a></li> + <li><a href="#new()"><code>new()</code></a></li> + <li><a href="#old()"><code>old()</code></a></li> </ul> <li><a href="#testing_for_and_begin">TESTING FOR AND BEGIN</a></li> <li><a href="#testing_urls_hyperlinking">TESTING URLs hyperlinking</a></li> <li><a href="#see_also">SEE ALSO</a></li> </ul> - -<hr name="index" /> -</div> <!-- INDEX END --> +<hr /> <p> </p> <h1><a name="name">NAME</a></h1> @@ -79,86 +75,82 @@ other <strong>cool </strong></em>> stuff >></p> <p> </p> <hr /> -<h1><a name="methods____other_stuff">METHODS => OTHER STUFF</a></h1> +<h1><a name="methods_=>_other_stuff">METHODS => OTHER STUFF</a></h1> <p>Here is a list of methods</p> <p> </p> -<h2><a name="new__"><code>new()</code></a></h2> +<h2><a name="new()"><code>new()</code></a></h2> <p>Constructor method. Accepts the following config options:</p> <dl> -<dt><strong><a name="foo" class="item">foo</a></strong></dt> - +<dt><strong><a name="item_foo">foo</a></strong><br /> +</dt> <dd> -<p>The foo item.</p> +The foo item. </dd> -<dt><strong><a name="bar" class="item">bar</a></strong></dt> - +<p></p> +<dt><strong><a name="item_bar">bar</a></strong><br /> +</dt> <dd> -<p>The bar item.</p> +The bar item. +</dd> <p>This is a list within a list</p> <ul> -<li> -<p>The wiz item.</p> -</li> -<li> -<p>The waz item.</p> -</li> -</ul> -</dd> -<dt><strong><a name="baz" class="item">baz</a></strong></dt> - +<li></li> +The wiz item. +<p></p> +<li></li> +The waz item. +<p></p></ul> +<dt><strong><a name="item_baz">baz</a></strong><br /> +</dt> <dd> -<p>The baz item.</p> +The baz item. </dd> -</dl> +<p></p></dl> <p>Title on the same line as the =item + * bullets</p> <ul> -<li><strong><a name="black_cat" class="item"><code>Black</code> Cat</a></strong> - +<li><strong><a name="item_black_cat"><code>Black</code> Cat</a></strong><br /> </li> -<li><strong><a name="sat_on_the" class="item">Sat <em>on</em> the</a></strong> - +<li><strong><a name="item_sat_on_the">Sat <em>on</em> the</a></strong><br /> </li> -<li><strong><a name="mat" class="item">Mat<!></a></strong> - +<li><strong><a name="item_mat%3c%21%3e">Mat<!></a></strong><br /> </li> </ul> <p>Title on the same line as the =item + numerical bullets</p> <ol> -<li><strong><a name="cat" class="item">Cat</a></strong> - +<li><strong><a name="item_cat">Cat</a></strong><br /> </li> -<li><strong><a name="sat" class="item">Sat</a></strong> - +<li><strong><a name="item_sat">Sat</a></strong><br /> </li> -<li><strong><a name="mat2" class="item">Mat</a></strong> - +<li><strong><a name="item_mat">Mat</a></strong><br /> </li> </ol> <p>No bullets, no title</p> <dl> -<dt> +<dt></dt> <dd> -<p>Cat</p> +Cat </dd> -<dt> +<p></p> +<dt></dt> <dd> -<p>Sat</p> +Sat </dd> -<dt> +<p></p> +<dt></dt> <dd> -<p>Mat</p> +Mat </dd> -</dl> +<p></p></dl> <p> </p> -<h2><a name="old__"><code>old()</code></a></h2> +<h2><a name="old()"><code>old()</code></a></h2> <p>Destructor method</p> <p> </p> <hr /> <h1><a name="testing_for_and_begin">TESTING FOR AND BEGIN</a></h1> -<br /> +<br> <p> blah blah </p><p>intermediate text</p> @@ -171,14 +163,12 @@ HTML <p>This is an href link1: <a href="http://example.com">http://example.com</a></p> <p>This is an href link2: <a href="http://example.com/foo/bar.html">http://example.com/foo/bar.html</a></p> <p>This is an email link: <a href="mailto:mailto:foo@bar.com">mailto:foo@bar.com</a></p> -<pre> - This is a link in a verbatim block <a href="<a href="http://perl.org">http://perl.org</a>"> Perl </a></pre> <p> </p> <hr /> <h1><a name="see_also">SEE ALSO</a></h1> <p>See also <a href="/t/htmlescp.html">Test Page 2</a>, the <a href="/Your/Module.html">the Your::Module manpage</a> and <a href="/Their/Module.html">the Their::Module manpage</a> -manpages and the other interesting file <em class="file">/usr/local/my/module/rocks</em> +manpages and the other interesting file <em>/usr/local/my/module/rocks</em> as well.</p> </body> diff --git a/gnu/usr.bin/perl/lib/Pod/t/pod2html-lib.pl b/gnu/usr.bin/perl/lib/Pod/t/pod2html-lib.pl index db33f7d5eb3..3f1b267ee16 100644 --- a/gnu/usr.bin/perl/lib/Pod/t/pod2html-lib.pl +++ b/gnu/usr.bin/perl/lib/Pod/t/pod2html-lib.pl @@ -21,42 +21,24 @@ sub convert_n_test { ); - my ($expect, $result); - { - local $/; - # expected - $expect = <DATA>; - $expect =~ s/\[PERLADMIN\]/$Config::Config{perladmin}/; - if (ord("A") == 193) { # EBCDIC. - $expect =~ s/item_mat_3c_21_3e/item_mat_4c_5a_6e/; - } - - # result - open my $in, $outfile or die "cannot open $outfile: $!"; - $result = <$in>; - close $in; + local $/; + # expected + my $expect = <DATA>; + $expect =~ s/\[PERLADMIN\]/$Config::Config{perladmin}/; + if (ord("A") == 193) { # EBCDIC. + $expect =~ s/item_mat%3c%21%3e/item_mat%4c%5a%6e/; } - ok($expect eq $result, $testname) or do { - my $diff = '/bin/diff'; - -x $diff or $diff = '/usr/bin/diff'; - if (-x $diff) { - my $expectfile = "pod2html-lib.tmp"; - open my $tmpfile, ">", $expectfile or die $!; - print $tmpfile $expect; - close $tmpfile; - my $diffopt = $^O eq 'linux' ? 'u' : 'c'; - open my $diff, "diff -$diffopt $expectfile $outfile |" or die $!; - print "# $_" while <$diff>; - close $diff; - unlink $expectfile; - } - }; + # result + open my $in, $outfile or die "cannot open $outfile: $!"; + my $result = <$in>; + close $in; + 1 while unlink $outfile; + is($expect, $result, $testname); # pod2html creates these - 1 while unlink $outfile; - 1 while unlink "pod2htmd.tmp"; - 1 while unlink "pod2htmi.tmp"; + 1 while unlink "pod2htmd.x~~"; + 1 while unlink "pod2htmi.x~~"; } 1; diff --git a/gnu/usr.bin/perl/lib/Text/Abbrev.t b/gnu/usr.bin/perl/lib/Text/Abbrev.t index 38d4a39886d..fb5a9841eb1 100644 --- a/gnu/usr.bin/perl/lib/Text/Abbrev.t +++ b/gnu/usr.bin/perl/lib/Text/Abbrev.t @@ -1,6 +1,6 @@ #!./perl -print "1..8\n"; +print "1..7\n"; BEGIN { chdir 't' if -d 't'; @@ -49,11 +49,3 @@ abbrev \%y, @z; $s = join ':', sort keys %y; print (($r eq $s)?"ok $test\n":"not ok $test\n"); $test++; - - -# warnings safe with zero arguments -my $notok; -$^W = 1; -$SIG{__WARN__} = sub { $notok++ }; -abbrev(); -print ($notok ? "not ok $test\n" : "ok $test\n"); $test++; diff --git a/gnu/usr.bin/perl/lib/bigfloatpl.t b/gnu/usr.bin/perl/lib/bigfloatpl.t index a3810e3ab0a..d67d13d1d4b 100644 --- a/gnu/usr.bin/perl/lib/bigfloatpl.t +++ b/gnu/usr.bin/perl/lib/bigfloatpl.t @@ -5,17 +5,7 @@ BEGIN { @INC = '../lib'; } -{ - # Silence the deprecation warnings from bigfloat.pl for the purpose - # of testing. These tests will be removed along with bigfloat.pl in - # the next major release of perl. - local $SIG{__WARN__} = sub { - if ($_[0] !~ /deprecated/) { - print(STDERR @_); - } - }; - require "bigfloat.pl"; -} +require "bigfloat.pl"; $test = 0; $| = 1; diff --git a/gnu/usr.bin/perl/lib/bigintpl.t b/gnu/usr.bin/perl/lib/bigintpl.t index 9245683eb1d..569db20667f 100644 --- a/gnu/usr.bin/perl/lib/bigintpl.t +++ b/gnu/usr.bin/perl/lib/bigintpl.t @@ -4,18 +4,7 @@ BEGIN { chdir 't' if -d 't'; @INC = '../lib'; } - -{ - # Silence the deprecation warnings from bigint.pl for the purpose - # of testing. These tests will be removed along with bigint.pl in - # the next major release of perl. - local $SIG{__WARN__} = sub { - if ($_[0] !~ /deprecated/) { - print(STDERR @_); - } - }; - require "bigint.pl"; -} +require "bigint.pl"; $test = 0; $| = 1; diff --git a/gnu/usr.bin/perl/lib/locale.t b/gnu/usr.bin/perl/lib/locale.t index d84c6c40d23..7b273309729 100644 --- a/gnu/usr.bin/perl/lib/locale.t +++ b/gnu/usr.bin/perl/lib/locale.t @@ -43,21 +43,13 @@ eval { # Visual C's CRT goes silly on strings of the form "en_US.ISO8859-1" # and mingw32 uses said silly CRT -# This doesn't seem to be an issue any more, at least on Windows XP, -# so re-enable the tests for Windows XP onwards. -my $winxp = ($^O eq 'MSWin32' && defined &Win32::GetOSVersion && - join('.', (Win32::GetOSVersion())[1..2]) >= 5.1); -$have_setlocale = 0 if ((($^O eq 'MSWin32' && !$winxp) || $^O eq 'NetWare') && - $Config{cc} =~ /^(cl|gcc)/i); - -# UWIN seems to loop after test 98, just skip for now -$have_setlocale = 0 if ($^O =~ /^uwin/); +$have_setlocale = 0 if (($^O eq 'MSWin32' || $^O eq 'NetWare') && $Config{cc} =~ /^(cl|gcc)/i); my $last = $have_setlocale ? &last : &last_without_setlocale; print "1..$last\n"; -sub LC_ALL (); +use vars qw(&LC_ALL); $a = 'abc %'; @@ -387,10 +379,6 @@ delete @ENV{qw(IFS CDPATH ENV BASH_ENV)}; if (-x "/usr/bin/locale" && open(LOCALES, "/usr/bin/locale -a 2>/dev/null|")) { while (<LOCALES>) { - # It seems that /usr/bin/locale steadfastly outputs 8 bit data, which - # ain't great when we're running this testPERL_UNICODE= so that utf8 - # locales will cause all IO hadles to default to (assume) utf8 - next unless utf8::valid($_); chomp; trylocale($_); } @@ -404,17 +392,6 @@ if (-x "/usr/bin/locale" && open(LOCALES, "/usr/bin/locale -a 2>/dev/null|")) { trylocale($_); } close(LOCALES); -} elsif ($^O eq 'openbsd' && -e '/usr/share/locale') { - - # OpenBSD doesn't have a locale executable, so reading /usr/share/locale - # is much easier and faster than the last resort method. - - opendir(LOCALES, '/usr/share/locale'); - while ($_ = readdir(LOCALES)) { - chomp; - trylocale($_); - } - close(LOCALES); } else { # This is going to be slow. @@ -453,19 +430,6 @@ if (-x "/usr/bin/locale" && open(LOCALES, "/usr/bin/locale -a 2>/dev/null|")) { setlocale(LC_ALL, "C"); -if ($^O eq 'darwin') { - # Darwin 8/Mac OS X 10.4 and 10.5 have bad Basque locales: perl bug #35895, - # Apple bug ID# 4139653. It also has a problem in Byelorussian. - (my $v) = $Config{osvers} =~ /^(\d+)/; - if ($v >= 8 and $v < 10) { - debug "# Skipping eu_ES, be_BY locales -- buggy in Darwin\n"; - @Locale = grep ! m/^(eu_ES(?:\..*)?|be_BY\.CP1131)$/, @Locale; - } elsif ($v < 11) { - debug "# Skipping be_BY locales -- buggy in Darwin\n"; - @Locale = grep ! m/^be_BY\.CP1131$/, @Locale; - } -} - @Locale = sort @Locale; debug "# Locales =\n"; @@ -559,17 +523,7 @@ foreach $Locale (@Locale) { my $word = join('', @Neoalpha); - my $badutf8; - { - local $SIG{__WARN__} = sub { - $badutf8 = $_[0] =~ /Malformed UTF-8/; - }; - $Locale =~ /utf-?8/i; - } - - if ($badutf8) { - debug "# Locale name contains bad UTF-8, skipping test 99 for locale '$Locale'\n"; - } elsif ($Locale =~ /utf-?8/i) { + if ($Locale =~ /utf-?8/i) { debug "# unknown whether locale and Unicode have the same \\w, skipping test 99 for locale '$Locale'\n"; push @{$Okay{99}}, $Locale; } else { diff --git a/gnu/usr.bin/perl/pod/perl570delta.pod b/gnu/usr.bin/perl/pod/perl570delta.pod index dcc2f0f1889..3d4e5e29e43 100644 --- a/gnu/usr.bin/perl/pod/perl570delta.pod +++ b/gnu/usr.bin/perl/pod/perl570delta.pod @@ -127,7 +127,7 @@ is a NaN. Previously the behaviour was unspecified. =item * -C<pack('U0a*', ...)> can now be used to force a string to UTF-8. +C<pack('U0a*', ...)> can now be used to force a string to UTF8. =item * @@ -242,7 +242,7 @@ perl.org, not perl.com. =item * The perlcc utility has been rewritten and its user interface (that is, -command line) is much more like that of the Unix C compiler, cc. +command line) is much more like that of the UNIX C compiler, cc. =item * @@ -508,7 +508,7 @@ C<IsAlnum>, C<IsAlpha>, and C<IsWord> now match titlecase. Concatenation with the C<.> operator or via variable interpolation, C<eq>, C<substr>, C<reverse>, C<quotemeta>, the C<x> operator, -substitution with C<s///>, single-quoted UTF-8, should now work--in +substitution with C<s///>, single-quoted UTF8, should now work--in theory. =item * @@ -690,7 +690,7 @@ concurrently. (Still 16M per thread.) =item * -C<< File::Spec->tmpdir() >> now prefers C:/temp over /tmp +C<File::Spec->tmpdir()> now prefers C:/temp over /tmp (works better when perl is running as service). =item * diff --git a/gnu/usr.bin/perl/pod/perl571delta.pod b/gnu/usr.bin/perl/pod/perl571delta.pod index be36e044066..431c35928bd 100644 --- a/gnu/usr.bin/perl/pod/perl571delta.pod +++ b/gnu/usr.bin/perl/pod/perl571delta.pod @@ -88,7 +88,7 @@ The built-in layers are: unix (low level read/write), stdio (as in previous Perls), perlio (re-implementation of stdio buffering in a portable manner), crlf (does CRLF <=> "\n" translation as on Win32, but available on any platform). A mmap layer may be available if -platform supports it (mostly Unixes). +platform supports it (mostly UNIXes). Layers to be applied by default may be specified via the 'open' pragma. @@ -130,7 +130,7 @@ That is a literal undef, not an undefined value. =item * -The list form of C<open> is now implemented for pipes (at least on Unix): +The list form of C<open> is now implemented for pipes (at least on UNIX): open($fh,"-|", 'cat', '/etc/motd') @@ -771,17 +771,17 @@ SOCKS support is now much more robust. If your file system supports symbolic links you can build Perl outside of the source directory by - mkdir perl/build/directory - cd perl/build/directory + mkdir /tmp/perl/build/directory + cd /tmp/perl/build/directory sh /path/to/perl/source/Configure -Dmksymlinks ... -This will create in perl/build/directory a tree of symbolic links +This will create in /tmp/perl/build/directory a tree of symbolic links pointing to files in /path/to/perl/source. The original files are left unaffected. After Configure has finished you can just say make all test -and Perl will be built and tested, all in perl/build/directory. +and Perl will be built and tested, all in /tmp/perl/build/directory. =back @@ -901,7 +901,7 @@ is made, a warning is given. =item * C<push @a;> and C<unshift @a;> (with no values to push or unshift) -now give a warning. This may be a problem for generated and eval'ed +now give a warning. This may be a problem for generated and evaled code. =back @@ -935,7 +935,7 @@ machines (Perl's malloc is mostly tuned for space). Many new tests have been added. The most notable is probably the lib/1_compile: it is very notable because running it takes quite a -long time. It test compiles all the Perl modules in the distribution. +long time -- it test compiles all the Perl modules in the distribution. Please be patient. =head1 Known Problems diff --git a/gnu/usr.bin/perl/pod/perl572delta.pod b/gnu/usr.bin/perl/pod/perl572delta.pod index 21585edc4e0..e7d4ce37ed4 100644 --- a/gnu/usr.bin/perl/pod/perl572delta.pod +++ b/gnu/usr.bin/perl/pod/perl572delta.pod @@ -89,7 +89,7 @@ ugly, but the current implementation slows down normal array and hash use quite noticeably. The C<fields> pragma interface will remain available. -The syntaxes C<< @a->[...] >> and C<< @h->{...} >> have now been deprecated. +The syntaxes C<@a->[...]> and C<@h->{...}> have now been deprecated. The suidperl is also considered to be too much a risk to continue maintaining and the suidperl code is likely to be removed in a future @@ -409,7 +409,7 @@ NetWare from Novell is now supported. See L<perlnetware>. =item * -The Amdahl UTS Unix mainframe platform is now supported. +The Amdahl UTS UNIX mainframe platform is now supported. =back @@ -513,7 +513,7 @@ the entire regex. You will an optional warning if you try to do otherwise. =item * -Using arrays or hashes as references (e.g. C<< %foo->{bar} >> has been +Using arrays or hashes as references (e.g. C<%foo->{bar}> has been deprecated for a while. Now you will get an optional warning. =back diff --git a/gnu/usr.bin/perl/reentr.pl b/gnu/usr.bin/perl/reentr.pl index b90c61dcfc4..cb9aca82dbb 100644 --- a/gnu/usr.bin/perl/reentr.pl +++ b/gnu/usr.bin/perl/reentr.pl @@ -1,30 +1,14 @@ #!/usr/bin/perl -w -# -# Regenerate (overwriting only if changed): -# -# reentr.h -# reentr.c -# -# from information stored in the DATA section of this file. -# -# With the -U option, it also unconditionally regenerates the relevant -# metaconfig units: -# -# d_${func}_r.U -# -# Also accepts the standard regen_lib -q and -v args. -# -# This script is normally invoked from regen.pl. -BEGIN { - # Get function prototypes - require 'regen_lib.pl'; -} +# +# Generate the reentr.c and reentr.h, +# and optionally also the relevant metaconfig units (-U option). +# use strict; use Getopt::Std; my %opts; -getopts('Uv', \%opts); +getopts('U', \%opts); my %map = ( V => "void", @@ -51,40 +35,23 @@ my %map = ( # Example #3: S_CBI means type func_r(const char*, char*, int) -# safer_unlink 'reentr.h'; -my $h = safer_open("reentr.h-new"); -select $h; +die "reentr.h: $!" unless open(H, ">reentr.h"); +select H; print <<EOF; -/* -*- buffer-read-only: t -*- - * +/* * reentr.h * - * Copyright (C) 2002, 2003, 2005, 2006, 2007 by Larry Wall and others + * Copyright (c) 1997-2002, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * * !!!!!!! DO NOT EDIT THIS FILE !!!!!!! - * This file is built by reentr.pl from data in reentr.pl. + * This file is built by reentrl.pl from data in reentr.pl. */ #ifndef REENTR_H -#define REENTR_H - -/* If compiling for a threaded perl, we will macro-wrap the system/library - * interfaces (e.g. getpwent()) which have threaded versions - * (e.g. getpwent_r()), which will handle things correctly for - * the Perl interpreter, but otherwise (for XS) the wrapping does - * not take place. See L<perlxs/Thread-aware system interfaces>. - */ - -#ifndef PERL_REENTR_API -# if defined(PERL_CORE) || defined(PERL_EXT) -# define PERL_REENTR_API 1 -# else -# define PERL_REENTR_API 0 -# endif -#endif +#define REENTR_H #ifdef USE_REENTRANT_API @@ -92,8 +59,7 @@ print <<EOF; * but they are declared obsolete and are not to be used. Often this * means that the platform has threadsafed the interfaces (hopefully). * All this is OS version dependent, so we are of course fooling ourselves. - * If you know of more deprecations on some platforms, please add your own - * (by editing reentr.pl, mind!) */ + * If you know of more deprecations on some platforms, please add your own. */ #ifdef __hpux # undef HAS_CRYPT_R @@ -114,17 +80,6 @@ print <<EOF; # define NETDB_R_OBSOLETE #endif -/* - * As of OpenBSD 3.7, reentrant functions are now working, they just are - * incompatible with everyone else. To make OpenBSD happy, we have to - * memzero out certain structures before calling the functions. - */ -#if defined(__OpenBSD__) -# define REENTR_MEMZERO(a,b) memzero(a,b) -#else -# define REENTR_MEMZERO(a,b) 0 -#endif - #ifdef NETDB_R_OBSOLETE # undef HAS_ENDHOSTENT_R # undef HAS_ENDNETENT_R @@ -180,7 +135,6 @@ my %seenp; # the different prototype signatures for all functions my %seent; # the return type of this function my %seens; # the type of this function's "S" my %seend; # the type of this function's "D" -my %seenm; # all the types my %seenu; # the length of the argument list of this function while (<DATA>) { # Read in the protypes. @@ -210,7 +164,6 @@ while (<DATA>) { # Read in the protypes. # If given the -U option open up the metaconfig unit for this function. if ($opts{U} && open(U, ">d_${func}_r.U")) { - binmode U; select U; } @@ -235,7 +188,7 @@ while (<DATA>) { # Read in the protypes. print <<EOF; ?RCS: \$Id: d_${func}_r.U,v $ ?RCS: -?RCS: Copyright (c) 2002,2003 Jarkko Hietaniemi +?RCS: Copyright (c) 2002 Jarkko Hietaniemi ?RCS: ?RCS: You may distribute under the terms of either the GNU General Public ?RCS: License or the Artistic License, as specified in the README file. @@ -306,7 +259,6 @@ EOF $seent{$func} = $type; $seens{$func} = $m{S}; $seend{$func} = $m{D}; - $seenm{$func} = \%m; } if ($opts{U}) { print <<EOF; @@ -342,7 +294,7 @@ close DATA; # Prepare to continue writing the reentr.h. -select $h; +select H; { # Write out all the known prototype signatures. @@ -375,7 +327,7 @@ sub pushssif { sub pushinitfree { my $func = shift; push @init, <<EOF; - Newx(PL_reentrant_buffer->_${func}_buffer, PL_reentrant_buffer->_${func}_size, char); + New(31338, PL_reentrant_buffer->_${func}_buffer, PL_reentrant_buffer->_${func}_size, char); EOF push @free, <<EOF; Safefree(PL_reentrant_buffer->_${func}_buffer); @@ -411,7 +363,6 @@ EOF EOF } } - return if @F == 1; push @define, <<EOF; /* Any of the @F using \L$n? */ @@ -500,22 +451,17 @@ EOF #if CRYPT_R_PROTO == REENTRANT_PROTO_B_CCD $seend{$func} _${func}_data; #else - $seent{$func} *_${func}_struct_buffer; + $seent{$func} _${func}_struct; #endif EOF push @init, <<EOF; -#if CRYPT_R_PROTO != REENTRANT_PROTO_B_CCD - PL_reentrant_buffer->_${func}_struct_buffer = 0; -#endif -EOF - push @free, <<EOF; -#if CRYPT_R_PROTO != REENTRANT_PROTO_B_CCD - Safefree(PL_reentrant_buffer->_${func}_struct_buffer); +#ifdef __GLIBC__ + PL_reentrant_buffer->_${func}_struct.initialized = 0; #endif EOF pushssif $endif; } - elsif ($func =~ /^(drand48|random|srandom)$/) { + elsif ($func =~ /^(drand48|gmtime|localtime|random)$/) { pushssif $ifdef; push @struct, <<EOF; $seent{$func} _${func}_struct; @@ -524,18 +470,6 @@ EOF push @struct, <<EOF; double _${func}_double; EOF - } elsif ($1 eq 'random') { - push @struct, <<EOF; -# if RANDOM_R_PROTO == REENTRANT_PROTO_I_iS - int _${func}_retval; -# endif -# if RANDOM_R_PROTO == REENTRANT_PROTO_I_lS - long _${func}_retval; -# endif -# if RANDOM_R_PROTO == REENTRANT_PROTO_I_St - int32_t _${func}_retval; -# endif -EOF } pushssif $endif; } @@ -557,36 +491,43 @@ EOF $seent{$func}* _${genfunc}_ptr; # endif EOF - push @struct, <<EOF; + if ($genfunc eq 'getspent') { + push @size, <<EOF; + PL_reentrant_buffer->_${genfunc}_size = 1024; +EOF + } else { + push @struct, <<EOF; # ifdef USE_${GENFUNC}_FPTR FILE* _${genfunc}_fptr; # endif EOF - push @init, <<EOF; + push @init, <<EOF; # ifdef USE_${GENFUNC}_FPTR PL_reentrant_buffer->_${genfunc}_fptr = NULL; # endif EOF - my $sc = $genfunc eq 'grent' ? + my $sc = $genfunc eq 'getgrent' ? '_SC_GETGR_R_SIZE_MAX' : '_SC_GETPW_R_SIZE_MAX'; - my $sz = "_${genfunc}_size"; - push @size, <<EOF; + my $sz = $genfunc eq 'getgrent' ? + '_grent_size' : '_pwent_size'; + push @size, <<EOF; # if defined(HAS_SYSCONF) && defined($sc) && !defined(__GLIBC__) - PL_reentrant_buffer->$sz = sysconf($sc); - if (PL_reentrant_buffer->$sz == (size_t) -1) + PL_reentrant_buffer->_${genfunc}_size = sysconf($sc); + if (PL_reentrant_buffer->$sz == -1) PL_reentrant_buffer->$sz = REENTRANTUSUALSIZE; # else # if defined(__osf__) && defined(__alpha) && defined(SIABUFSIZ) - PL_reentrant_buffer->$sz = SIABUFSIZ; + PL_reentrant_buffer->_${genfunc}_size = SIABUFSIZ; # else # ifdef __sgi - PL_reentrant_buffer->$sz = BUFSIZ; + PL_reentrant_buffer->_${genfunc}_size = BUFSIZ; # else - PL_reentrant_buffer->$sz = REENTRANTUSUALSIZE; + PL_reentrant_buffer->_${genfunc}_size = REENTRANTUSUALSIZE; # endif # endif # endif EOF + } pushinitfree $genfunc; pushssif $endif; } @@ -623,7 +564,7 @@ EOF EOF push @init, <<EOF; #if !($D) - Newx(PL_reentrant_buffer->_${genfunc}_buffer, PL_reentrant_buffer->_${genfunc}_size, char); + New(31338, PL_reentrant_buffer->_${genfunc}_buffer, PL_reentrant_buffer->_${genfunc}_size, char); #endif EOF push @free, <<EOF; @@ -660,7 +601,6 @@ EOF push @wrap, $ifdef; push @wrap, <<EOF; -# if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) # undef $func EOF @@ -681,9 +621,7 @@ EOF my $b = $a; my $w = ''; substr($b, 0, $seenu{$func}) = ''; - if ($func =~ /^random$/) { - $true = "PL_reentrant_buffer->_random_retval"; - } elsif ($b =~ /R/) { + if ($b =~ /R/) { $true = "PL_reentrant_buffer->_${genfunc}_ptr"; } elsif ($b =~ /T/ && $func eq 'drand48') { $true = "PL_reentrant_buffer->_${genfunc}_double"; @@ -712,28 +650,17 @@ EOF $_ eq 'D' ? "&PL_reentrant_buffer->_${genfunc}_data" : $_ eq 'S' ? - ($func =~ /^readdir\d*$/ ? + ($func =~ /^readdir/ ? "PL_reentrant_buffer->_${genfunc}_struct" : - $func =~ /^crypt$/ ? - "PL_reentrant_buffer->_${genfunc}_struct_buffer" : - "&PL_reentrant_buffer->_${genfunc}_struct") : + "&PL_reentrant_buffer->_${genfunc}_struct" ) : $_ eq 'T' && $func eq 'drand48' ? "&PL_reentrant_buffer->_${genfunc}_double" : - $_ =~ /^[ilt]$/ && $func eq 'random' ? - "&PL_reentrant_buffer->_random_retval" : $_ } split '', $b; $w = ", $w" if length $v; } - my $call = "${func}_r($v$w)"; - - # Must make OpenBSD happy - my $memzero = ''; - if($p =~ /D$/ && - ($genfunc eq 'protoent' || $genfunc eq 'servent')) { - $memzero = 'REENTR_MEMZERO(&PL_reentrant_buffer->_' . $genfunc . '_data, sizeof(PL_reentrant_buffer->_' . $genfunc . '_data)),'; - } + $call = "((errno = $call))" if $r eq 'I'; push @wrap, <<EOF; # if !defined($func) && ${FUNC}_R_PROTO == REENTRANT_PROTO_$p EOF @@ -744,30 +671,20 @@ EOF } else { if ($func =~ /^get/) { my $rv = $v ? ", $v" : ""; - if ($r eq 'I') { - push @wrap, <<EOF; -# define $func($v) ($memzero(PL_reentrant_retint = $call)$test ? $true : ((PL_reentrant_retint == ERANGE) ? ($seent{$func} *) Perl_reentrant_retry("$func"$rv) : 0)) -EOF - } else { - push @wrap, <<EOF; -# define $func($v) ($call$test ? $true : ((errno == ERANGE) ? ($seent{$func} *) Perl_reentrant_retry("$func"$rv) : 0)) + push @wrap, <<EOF; +# define $func($v) ($call$test ? $true : (errno == ERANGE ? Perl_reentrant_retry("$func"$rv) : 0)) EOF - } } else { push @wrap, <<EOF; # define $func($v) ($call$test ? $true : 0) EOF } } - push @wrap, <<EOF; # !defined(xxx) && XXX_R_PROTO == REENTRANT_PROTO_Y_TS + push @wrap, <<EOF; # endif EOF } - push @wrap, <<EOF; # defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) -# endif -EOF - push @wrap, $endif, "\n"; } } @@ -787,44 +704,33 @@ typedef struct { /* The wrappers. */ @wrap - #endif /* USE_REENTRANT_API */ #endif -/* ex: set ro: */ EOF -safer_close($h); -rename_if_different('reentr.h-new', 'reentr.h'); +close(H); # Prepare to write the reentr.c. -# safer_unlink 'reentr.c'; -my $c = safer_open("reentr.c-new"); -select $c; +die "reentr.c: $!" unless open(C, ">reentr.c"); +select C; print <<EOF; -/* -*- buffer-read-only: t -*- - * +/* * reentr.c * - * Copyright (C) 2002, 2003, 2005, 2006, 2007 by Larry Wall and others + * Copyright (c) 1997-2002, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * * !!!!!!! DO NOT EDIT THIS FILE !!!!!!! - * This file is built by reentr.pl from data in reentr.pl. + * This file is built by reentrl.pl from data in reentr.pl. * * "Saruman," I said, standing away from him, "only one hand at a time can * wield the One, and you know that well, so do not trouble to say we!" * - * This file contains a collection of automatically created wrappers - * (created by running reentr.pl) for reentrant (thread-safe) versions of - * various library calls, such as getpwent_r. The wrapping is done so - * that other files like pp_sys.c calling those library functions need not - * care about the differences between various platforms' idiosyncrasies - * regarding these reentrant interfaces. */ #include "EXTERN.h" @@ -844,7 +750,7 @@ Perl_reentrant_size(pTHX) { void Perl_reentrant_init(pTHX) { #ifdef USE_REENTRANT_API - Newx(PL_reentrant_buffer, 1, REENTR); + New(31337, PL_reentrant_buffer, 1, REENTR); Perl_reentrant_size(aTHX); @init #endif /* USE_REENTRANT_API */ @@ -863,16 +769,8 @@ Perl_reentrant_retry(const char *f, ...) { dTHX; void *retptr = NULL; - va_list ap; #ifdef USE_REENTRANT_API - /* Easier to special case this here than in embed.pl. (Look at what it - generates for proto.h) */ - PERL_ARGS_ASSERT_REENTRANT_RETRY; -#endif - va_start(ap, f); - { -#ifdef USE_REENTRANT_API -# if defined(USE_HOSTENT_BUFFER) || defined(USE_GRENT_BUFFER) || defined(USE_NETENT_BUFFER) || defined(USE_PWENT_BUFFER) || defined(USE_PROTOENT_BUFFER) || defined(USE_SERVENT_BUFFER) +# if defined(USE_HOSTENT_BUFFER) || defined(USE_GRENT_BUFFER) || defined(USE_NETENT_BUFFER) || defined(USE_PWENT_BUFFER) || defined(USE_PROTOENT_BUFFER) || defined(USE_SRVENT_BUFFER) void *p0; # endif # if defined(USE_SERVENT_BUFFER) @@ -884,6 +782,11 @@ Perl_reentrant_retry(const char *f, ...) # if defined(USE_HOSTENT_BUFFER) || defined(USE_NETENT_BUFFER) || defined(USE_PROTOENT_BUFFER) || defined(USE_SERVENT_BUFFER) int anint; # endif + va_list ap; + + va_start(ap, f); + +#define REENTRANTHALFMAXSIZE 32768 /* The maximum may end up twice this. */ switch (PL_op->op_type) { #ifdef USE_HOSTENT_BUFFER @@ -891,11 +794,7 @@ Perl_reentrant_retry(const char *f, ...) case OP_GHBYNAME: case OP_GHOSTENT: { -#ifdef PERL_REENTRANT_MAXSIZE - if (PL_reentrant_buffer->_hostent_size <= - PERL_REENTRANT_MAXSIZE / 2) -#endif - { + if (PL_reentrant_buffer->_hostent_size <= REENTRANTHALFMAXSIZE) { PL_reentrant_buffer->_hostent_size *= 2; Renew(PL_reentrant_buffer->_hostent_buffer, PL_reentrant_buffer->_hostent_size, char); @@ -907,11 +806,10 @@ Perl_reentrant_retry(const char *f, ...) retptr = gethostbyaddr(p0, asize, anint); break; case OP_GHBYNAME: p0 = va_arg(ap, void *); - retptr = gethostbyname((char *)p0); break; + retptr = gethostbyname(p0); break; case OP_GHOSTENT: retptr = gethostent(); break; default: - SETERRNO(ERANGE, LIB_INVARG); break; } } @@ -923,11 +821,7 @@ Perl_reentrant_retry(const char *f, ...) case OP_GGRGID: case OP_GGRENT: { -#ifdef PERL_REENTRANT_MAXSIZE - if (PL_reentrant_buffer->_grent_size <= - PERL_REENTRANT_MAXSIZE / 2) -#endif - { + if (PL_reentrant_buffer->_grent_size <= REENTRANTHALFMAXSIZE) { Gid_t gid; PL_reentrant_buffer->_grent_size *= 2; Renew(PL_reentrant_buffer->_grent_buffer, @@ -935,18 +829,13 @@ Perl_reentrant_retry(const char *f, ...) switch (PL_op->op_type) { case OP_GGRNAM: p0 = va_arg(ap, void *); - retptr = getgrnam((char *)p0); break; + retptr = getgrnam(p0); break; case OP_GGRGID: -#if Gid_t_size < INTSIZE - gid = (Gid_t)va_arg(ap, int); -#else gid = va_arg(ap, Gid_t); -#endif retptr = getgrgid(gid); break; case OP_GGRENT: retptr = getgrent(); break; default: - SETERRNO(ERANGE, LIB_INVARG); break; } } @@ -958,11 +847,7 @@ Perl_reentrant_retry(const char *f, ...) case OP_GNBYNAME: case OP_GNETENT: { -#ifdef PERL_REENTRANT_MAXSIZE - if (PL_reentrant_buffer->_netent_size <= - PERL_REENTRANT_MAXSIZE / 2) -#endif - { + if (PL_reentrant_buffer->_netent_size <= REENTRANTHALFMAXSIZE) { Netdb_net_t net; PL_reentrant_buffer->_netent_size *= 2; Renew(PL_reentrant_buffer->_netent_buffer, @@ -974,11 +859,10 @@ Perl_reentrant_retry(const char *f, ...) retptr = getnetbyaddr(net, anint); break; case OP_GNBYNAME: p0 = va_arg(ap, void *); - retptr = getnetbyname((char *)p0); break; + retptr = getnetbyname(p0); break; case OP_GNETENT: retptr = getnetent(); break; default: - SETERRNO(ERANGE, LIB_INVARG); break; } } @@ -990,11 +874,7 @@ Perl_reentrant_retry(const char *f, ...) case OP_GPWUID: case OP_GPWENT: { -#ifdef PERL_REENTRANT_MAXSIZE - if (PL_reentrant_buffer->_pwent_size <= - PERL_REENTRANT_MAXSIZE / 2) -#endif - { + if (PL_reentrant_buffer->_pwent_size <= REENTRANTHALFMAXSIZE) { Uid_t uid; PL_reentrant_buffer->_pwent_size *= 2; Renew(PL_reentrant_buffer->_pwent_buffer, @@ -1002,18 +882,13 @@ Perl_reentrant_retry(const char *f, ...) switch (PL_op->op_type) { case OP_GPWNAM: p0 = va_arg(ap, void *); - retptr = getpwnam((char *)p0); break; + retptr = getpwnam(p0); break; case OP_GPWUID: -#if Uid_t_size < INTSIZE - uid = (Uid_t)va_arg(ap, int); -#else uid = va_arg(ap, Uid_t); -#endif retptr = getpwuid(uid); break; case OP_GPWENT: retptr = getpwent(); break; default: - SETERRNO(ERANGE, LIB_INVARG); break; } } @@ -1025,25 +900,20 @@ Perl_reentrant_retry(const char *f, ...) case OP_GPBYNUMBER: case OP_GPROTOENT: { -#ifdef PERL_REENTRANT_MAXSIZE - if (PL_reentrant_buffer->_protoent_size <= - PERL_REENTRANT_MAXSIZE / 2) -#endif - { + if (PL_reentrant_buffer->_protoent_size <= REENTRANTHALFMAXSIZE) { PL_reentrant_buffer->_protoent_size *= 2; Renew(PL_reentrant_buffer->_protoent_buffer, PL_reentrant_buffer->_protoent_size, char); switch (PL_op->op_type) { case OP_GPBYNAME: p0 = va_arg(ap, void *); - retptr = getprotobyname((char *)p0); break; + retptr = getprotobyname(p0); break; case OP_GPBYNUMBER: anint = va_arg(ap, int); retptr = getprotobynumber(anint); break; case OP_GPROTOENT: retptr = getprotoent(); break; default: - SETERRNO(ERANGE, LIB_INVARG); break; } } @@ -1055,11 +925,7 @@ Perl_reentrant_retry(const char *f, ...) case OP_GSBYPORT: case OP_GSERVENT: { -#ifdef PERL_REENTRANT_MAXSIZE - if (PL_reentrant_buffer->_servent_size <= - PERL_REENTRANT_MAXSIZE / 2) -#endif - { + if (PL_reentrant_buffer->_servent_size <= REENTRANTHALFMAXSIZE) { PL_reentrant_buffer->_servent_size *= 2; Renew(PL_reentrant_buffer->_servent_buffer, PL_reentrant_buffer->_servent_size, char); @@ -1067,15 +933,14 @@ Perl_reentrant_retry(const char *f, ...) case OP_GSBYNAME: p0 = va_arg(ap, void *); p1 = va_arg(ap, void *); - retptr = getservbyname((char *)p0, (char *)p1); break; + retptr = getservbyname(p0, p1); break; case OP_GSBYPORT: anint = va_arg(ap, int); p0 = va_arg(ap, void *); - retptr = getservbyport(anint, (char *)p0); break; + retptr = getservbyport(anint, p0); break; case OP_GSERVENT: retptr = getservent(); break; default: - SETERRNO(ERANGE, LIB_INVARG); break; } } @@ -1086,20 +951,14 @@ Perl_reentrant_retry(const char *f, ...) /* Not known how to retry, so just fail. */ break; } -#else - PERL_UNUSED_ARG(f); -#endif - } + va_end(ap); +#endif return retptr; } -/* ex: set ro: */ EOF -safer_close($c); -rename_if_different('reentr.c-new', 'reentr.c'); - __DATA__ asctime S |time |const struct tm|B_SB|B_SBI|I_SB|I_SBI crypt CC |crypt |struct crypt_data|B_CCS|B_CCD|D=CRYPTD* @@ -1115,11 +974,11 @@ endservent |netdb | |I_D|V_D|D=struct servent_data* getgrent |grp |struct group |I_SBWR|I_SBIR|S_SBW|S_SBI|I_SBI|I_SBIH getgrgid T |grp |struct group |I_TSBWR|I_TSBIR|I_TSBI|S_TSBI|T=gid_t getgrnam C |grp |struct group |I_CSBWR|I_CSBIR|S_CBI|I_CSBI|S_CSBI -gethostbyaddr CWI |netdb |struct hostent |I_CWISBWRE|S_CWISBWIE|S_CWISBIE|S_TWISBIE|S_CIISBIE|S_CSBIE|S_TSBIE|I_CWISD|I_CIISD|I_CII|I_TsISBWRE|D=struct hostent_data*|T=const void*|s=socklen_t +gethostbyaddr CWI |netdb |struct hostent |I_CWISBWRE|S_CWISBWIE|S_CWISBIE|S_TWISBIE|S_CIISBIE|S_CSBIE|S_TSBIE|I_CWISD|I_CIISD|I_CII|D=struct hostent_data*|T=const void* gethostbyname C |netdb |struct hostent |I_CSBWRE|S_CSBIE|I_CSD|D=struct hostent_data* gethostent |netdb |struct hostent |I_SBWRE|I_SBIE|S_SBIE|S_SBI|I_SBI|I_SD|D=struct hostent_data* -getlogin |unistd |char |I_BW|I_BI|B_BW|B_BI -getnetbyaddr LI |netdb |struct netent |I_UISBWRE|I_LISBI|S_TISBI|S_LISBI|I_TISD|I_LISD|I_IISD|I_uISBWRE|D=struct netent_data*|T=in_addr_t|U=unsigned long|u=uint32_t +getlogin |unistd | |I_BW|I_BI|B_BW|B_BI +getnetbyaddr LI |netdb |struct netent |I_UISBWRE|I_LISBI|S_TISBI|S_LISBI|I_TISD|I_LISD|I_IISD|D=struct netent_data*|T=in_addr_t|U=unsigned long getnetbyname C |netdb |struct netent |I_CSBWRE|I_CSBI|S_CSBI|I_CSD|D=struct netent_data* getnetent |netdb |struct netent |I_SBWRE|I_SBIE|S_SBIE|S_SBI|I_SBI|I_SD|D=struct netent_data* getprotobyname C|netdb |struct protoent|I_CSBWR|S_CSBI|I_CSD|D=struct protoent_data* @@ -1132,7 +991,9 @@ getservbyname CC|netdb |struct servent |I_CCSBWR|S_CCSBI|I_CCSD|D=struct servent getservbyport IC|netdb |struct servent |I_ICSBWR|S_ICSBI|I_ICSD|D=struct servent_data* getservent |netdb |struct servent |I_SBWR|I_SBI|S_SBI|I_SD|D=struct servent_data* getspnam C |shadow |struct spwd |I_CSBWR|S_CSBI -random |stdlib |struct random_data|I_iS|I_lS|I_St|i=int*|l=long*|t=int32_t* +gmtime T |time |struct tm |S_TS|I_TS|T=const time_t* +localtime T |time |struct tm |S_TS|I_TS|T=const time_t* +random |stdlib |struct random_data|I_TS|T=int* readdir T |dirent |struct dirent |I_TSR|I_TS|T=DIR* readdir64 T |dirent |struct dirent64|I_TSR|I_TS|T=DIR* setgrent |grp | |I_H|V_H diff --git a/gnu/usr.bin/perl/t/uni/fold.t b/gnu/usr.bin/perl/t/uni/fold.t index f6f467cc9cf..789ba670293 100644 --- a/gnu/usr.bin/perl/t/uni/fold.t +++ b/gnu/usr.bin/perl/t/uni/fold.t @@ -15,9 +15,7 @@ if (open(CF, $CF)) { my @CF; while (<CF>) { - # Skip S since we are going for 'F'ull case folding. I is obsolete starting - # with Unicode 3.2, but leaving it in does no harm, and allows backward - # compatibility + # Skip S since we are going for 'F'ull case folding if (/^([0-9A-F]+); ([CFI]); ((?:[0-9A-F]+)(?: [0-9A-F]+)*); \# (.+)/) { next if EBCDIC && hex $1 < 0x100; push @CF, [$1, $2, $3, $4]; diff --git a/gnu/usr.bin/perl/uconfig.h b/gnu/usr.bin/perl/uconfig.h index 511a00b8cb1..c8b7efe808a 100644 --- a/gnu/usr.bin/perl/uconfig.h +++ b/gnu/usr.bin/perl/uconfig.h @@ -7,14 +7,14 @@ * that running config_h.SH again will wipe out any changes you've made. * For a more permanent change edit uconfig.sh and rerun config_h.SH. * - * $Id: Config_h.U 1 2006-08-24 12:32:52Z rmanfredi $ + * $Id: Config_h.U,v 3.0.1.5 1997/02/28 14:57:43 ram Exp $ */ /* - * Package name : perl5 - * Source directory : . - * Configuration time: Thu Jan 1 00:00:00 GMT 1970 - * Configured by : root@localhost + * Package name : + * Source directory : + * Configuration time: + * Configured by : * Target system : unknown */ @@ -32,6 +32,15 @@ */ /*#define HAS_ALARM / **/ +/* HASATTRIBUTE: + * This symbol indicates the C compiler can check for function attributes, + * such as printf formats. This is normally only supported by GNU cc. + */ +/*#define HASATTRIBUTE / **/ +#ifndef HASATTRIBUTE +#define __attribute__(_arg_) +#endif + /* HAS_BCMP: * This symbol is defined if the bcmp() routine is available to * compare blocks of memory. @@ -68,17 +77,16 @@ */ /*#define HAS_CHSIZE / **/ -/* HAS_CRYPT: - * This symbol, if defined, indicates that the crypt routine is available - * to encrypt passwords and the like. - */ -/*#define HAS_CRYPT / **/ - -/* HAS_CTERMID: - * This symbol, if defined, indicates that the ctermid routine is - * available to generate filename for terminal. +/* HASCONST: + * This symbol, if defined, indicates that this C compiler knows about + * the const type. There is no need to actually test for that symbol + * within your programs. The mere use of the "const" keyword will + * trigger the necessary tests. */ -/*#define HAS_CTERMID / **/ +/*#define HASCONST / **/ +#ifndef HASCONST +#define const +#endif /* HAS_CUSERID: * This symbol, if defined, indicates that the cuserid routine is @@ -107,26 +115,6 @@ */ /*#define HAS_DLERROR / **/ -/* SETUID_SCRIPTS_ARE_SECURE_NOW: - * This symbol, if defined, indicates that the bug that prevents - * setuid scripts from being secure is not present in this kernel. - */ -/* DOSUID: - * This symbol, if defined, indicates that the C program should - * check the script that it is executing for setuid/setgid bits, and - * attempt to emulate setuid/setgid on systems that have disabled - * setuid #! scripts because the kernel can't do it securely. - * It is up to the package designer to make sure that this emulation - * is done securely. Among other things, it should do an fstat on - * the script it just opened to make sure it really is a setuid/setgid - * script, it should make sure the arguments passed correspond exactly - * to the argument on the #! line, and it should not trust any - * subprocesses to which it must pass the filename rather than the - * file descriptor of the script to be executed. - */ -/*#define SETUID_SCRIPTS_ARE_SECURE_NOW / **/ -/*#define DOSUID / **/ - /* HAS_DUP2: * This symbol, if defined, indicates that the dup2 routine is * available to duplicate file descriptors. @@ -284,13 +272,13 @@ * This symbol, if defined, indicates that the memcmp routine is available * to compare blocks of memory. */ -#define HAS_MEMCMP /**/ +/*#define HAS_MEMCMP / **/ /* HAS_MEMCPY: * This symbol, if defined, indicates that the memcpy routine is available * to copy blocks of memory. */ -#define HAS_MEMCPY /**/ +/*#define HAS_MEMCPY / **/ /* HAS_MEMMOVE: * This symbol, if defined, indicates that the memmove routine is available @@ -372,8 +360,8 @@ /* HAS_POLL: * This symbol, if defined, indicates that the poll routine is - * available to poll active file descriptors. Please check I_POLL and - * I_SYS_POLL to know which header should be included as well. + * available to poll active file descriptors. You may safely + * include <poll.h> when this symbol is defined. */ /*#define HAS_POLL / **/ @@ -382,7 +370,7 @@ * available to read directory entries. You may have to include * <dirent.h>. See I_DIRENT. */ -#define HAS_READDIR /**/ +/*#define HAS_READDIR / **/ /* HAS_SEEKDIR: * This symbol, if defined, indicates that the seekdir routine is @@ -413,7 +401,7 @@ * to rename files. Otherwise you should do the unlink(), link(), unlink() * trick. */ -#define HAS_RENAME /**/ +/*#define HAS_RENAME / **/ /* HAS_RMDIR: * This symbol, if defined, indicates that the rmdir routine is @@ -441,13 +429,6 @@ */ /*#define HAS_SETEUID / **/ -/* HAS_SETGROUPS: - * This symbol, if defined, indicates that the setgroups() routine is - * available to set the list of process groups. If unavailable, multiple - * groups are probably not supported. - */ -/*#define HAS_SETGROUPS / **/ - /* HAS_SETLINEBUF: * This symbol, if defined, indicates that the setlinebuf routine is * available to change stderr or stdout from block-buffered or unbuffered @@ -541,6 +522,13 @@ */ /*#define HAS_STRCOLL / **/ +/* USE_STRUCT_COPY: + * This symbol, if defined, indicates that this C compiler knows how + * to copy structures. If undefined, you'll need to use a block copy + * routine of some sort instead. + */ +/*#define USE_STRUCT_COPY / **/ + /* HAS_STRTOD: * This symbol, if defined, indicates that the strtod routine is * available to provide better numeric string conversion than atof(). @@ -619,6 +607,15 @@ */ /*#define HAS_USLEEP / **/ +/* HASVOLATILE: + * This symbol, if defined, indicates that this C compiler knows about + * the volatile declaration. + */ +/*#define HASVOLATILE / **/ +#ifndef HASVOLATILE +#define volatile +#endif + /* HAS_WAIT4: * This symbol, if defined, indicates that wait4() exists. */ @@ -642,19 +639,6 @@ */ /*#define HAS_WCTOMB / **/ -/* Groups_t: - * This symbol holds the type used for the second argument to - * getgroups() and setgroups(). Usually, this is the same as - * gidtype (gid_t) , but sometimes it isn't. - * It can be int, ushort, gid_t, etc... - * It may be necessary to include <sys/types.h> to get any - * typedef'ed information. This is only required if you have - * getgroups() or setgroups().. - */ -#if defined(HAS_GETGROUPS) || defined(HAS_SETGROUPS) -#define Groups_t int /* Type for 2nd arg to [sg]etgroups() */ -#endif - /* I_ARPA_INET: * This symbol, if defined, indicates to the C program that it should * include <arpa/inet.h> to get inet_addr and friends declarations. @@ -672,6 +656,26 @@ /*#define I_DBM / **/ /*#define I_RPCSVC_DBM / **/ +/* I_DIRENT: + * This symbol, if defined, indicates to the C program that it should + * include <dirent.h>. Using this symbol also triggers the definition + * of the Direntry_t define which ends up being 'struct dirent' or + * 'struct direct' depending on the availability of <dirent.h>. + */ +/* DIRNAMLEN: + * This symbol, if defined, indicates to the C program that the length + * of directory entry names is provided by a d_namlen field. Otherwise + * you need to do strlen() on the d_name field. + */ +/* Direntry_t: + * 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. + */ +/*#define I_DIRENT / **/ +/*#define DIRNAMLEN / **/ +#define Direntry_t struct dirent + /* I_DLFCN: * This symbol, if defined, indicates that <dlfcn.h> exists and should * be included. @@ -690,12 +694,6 @@ */ /*#define I_FLOAT / **/ -/* I_GDBM: - * This symbol, if defined, indicates that <gdbm.h> exists and should - * be included. - */ -/*#define I_GDBM / **/ - /* I_LIMITS: * This symbol, if defined, indicates to the C program that it should * include <limits.h> to get definition of symbols like WORD_BIT or @@ -721,6 +719,12 @@ */ /*#define I_MEMORY / **/ +/* I_NET_ERRNO: + * This symbol, if defined, indicates that <net/errno.h> exists and + * should be included. + */ +/*#define I_NET_ERRNO / **/ + /* I_NETINET_IN: * This symbol, if defined, indicates to the C program that it should * include <netinet/in.h>. Otherwise, you may try <sys/in.h>. @@ -743,7 +747,7 @@ * This symbol, if defined, indicates that <stdlib.h> exists and should * be included. */ -#define I_STDLIB /**/ +/*#define I_STDLIB / **/ /* I_STRING: * This symbol, if defined, indicates to the C program that it should @@ -786,13 +790,6 @@ */ /*#define I_SYS_PARAM / **/ -/* I_SYS_POLL: - * This symbol, if defined, indicates that the program may include - * <sys/poll.h>. When I_POLL is also defined, it's probably safest - * to only include <poll.h>. - */ -/*#define I_SYS_POLL / **/ - /* I_SYS_RESOURCE: * This symbol, if defined, indicates to the C program that it should * include <sys/resource.h>. @@ -922,6 +919,30 @@ # define QUAD_IS_INT64_T 4 #endif +/* HAS_ACCESSX: + * This symbol, if defined, indicates that the accessx routine is + * available to do extended access checks. + */ +/*#define HAS_ACCESSX / **/ + +/* HAS_EACCESS: + * This symbol, if defined, indicates that the eaccess routine is + * available to do extended access checks. + */ +/*#define HAS_EACCESS / **/ + +/* I_SYS_ACCESS: + * This symbol, if defined, indicates to the C program that it should + * include <sys/access.h>. + */ +/*#define I_SYS_ACCESS / **/ + +/* I_SYS_SECURITY: + * This symbol, if defined, indicates to the C program that it should + * include <sys/security.h>. + */ +/*#define I_SYS_SECURITY / **/ + /* OSNAME: * This symbol contains the name of the operating system, as determined * by Configure. You shouldn't rely on it too much; the specific @@ -933,12 +954,23 @@ * feature tests from Configure are generally more reliable. */ #define OSNAME "unknown" /**/ -#define OSVERS "unknown" /**/ +#define OSVERS "" /**/ + +/* MEM_ALIGNBYTES: + * This symbol contains 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. + */ +#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH) +# define MEM_ALIGNBYTES 8 +#else +#define MEM_ALIGNBYTES 4 +#endif /* ARCHLIB: * This variable, if defined, holds the name of the directory in * which the user wants to put architecture-dependent public - * library files for perl5. It is most often a local directory + * library files for . It is most often a local directory * such as /usr/local/lib. Programs using this variable must be * prepared to deal with filename expansion. If ARCHLIB is the * same as PRIVLIB, it is not defined, since presumably the @@ -948,8 +980,8 @@ * This symbol contains the ~name expanded version of ARCHLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -/*#define ARCHLIB "/usr/local/lib/perl5/5.11/unknown" / **/ -/*#define ARCHLIB_EXP "/usr/local/lib/perl5/5.11/unknown" / **/ +/*#define ARCHLIB "/usr/local/lib/perl5/5.7/unknown" / **/ +/*#define ARCHLIB_EXP "/usr/local/lib/perl5/5.7/unknown" / **/ /* ARCHNAME: * This symbol holds a string representing the architecture name. @@ -959,6 +991,18 @@ */ #define ARCHNAME "unknown" /**/ +/* HAS_ATOLF: + * This symbol, if defined, indicates that the atolf routine is + * available to convert strings into long doubles. + */ +/*#define HAS_ATOLF / **/ + +/* HAS_ATOLL: + * This symbol, if defined, indicates that the atoll routine is + * available to convert strings into long longs. + */ +/*#define HAS_ATOLL / **/ + /* BIN: * This symbol holds the path of the bin directory where the package will * be installed. Program must be prepared to deal with ~name substitution. @@ -967,16 +1011,54 @@ * This symbol is the filename expanded version of the BIN symbol, for * programs that do not want to deal with that at run-time. */ -/* PERL_RELOCATABLE_INC: - * This symbol, if defined, indicates that we'd like to relocate entries - * in @INC at run time based on the location of the perl binary. - */ #define BIN "/usr/local/bin" /**/ -#define BIN_EXP "/usr/local/bin" /**/ -#define PERL_RELOCATABLE_INC "undef" /**/ +#define BIN_EXP "" /**/ + +/* BYTEORDER: + * This symbol holds the hexadecimal constant defined in byteorder, + * in a UV, i.e. 0x1234 or 0x4321 or 0x12345678, etc... + * If the compiler supports cross-compiling or multiple-architecture + * binaries (eg. on NeXT systems), use compiler-defined macros to + * determine the byte order. + * On NeXT 3.2 (and greater), you can build "Fat" Multiple Architecture + * Binaries (MAB) on either big endian or little endian machines. + * The endian-ness is available at compile-time. This only matters + * for perl, where the config.h can be generated and installed on + * one system, and used by a different architecture to build an + * extension. Older versions of NeXT that might not have + * defined either *_ENDIAN__ were all on Motorola 680x0 series, + * so the default case (for NeXT) is big endian to catch them. + * This might matter for NeXT 3.0. + */ +#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH) +# ifdef __LITTLE_ENDIAN__ +# if LONGSIZE == 4 +# define BYTEORDER 0x1234 +# else +# if LONGSIZE == 8 +# define BYTEORDER 0x12345678 +# endif +# endif +# else +# ifdef __BIG_ENDIAN__ +# if LONGSIZE == 4 +# define BYTEORDER 0x4321 +# else +# if LONGSIZE == 8 +# define BYTEORDER 0x87654321 +# endif +# endif +# endif +# endif +# if !defined(BYTEORDER) && (defined(NeXT) || defined(__NeXT__)) +# define BYTEORDER 0x4321 +# endif +#else +#define BYTEORDER 0x1234 /* large digits for MSB */ +#endif /* NeXT */ /* CAT2: - * This macro concatenates 2 tokens together. + * This macro catenates 2 tokens together. */ /* STRINGIFY: * This macro surrounds its token with double quotes. @@ -984,16 +1066,19 @@ #if 42 == 1 #define CAT2(a,b) a/**/b #define STRINGIFY(a) "a" + /* If you can get stringification with catify, tell me how! */ #endif #if 42 == 42 -#define PeRl_CaTiFy(a, b) a ## b +#define PeRl_CaTiFy(a, b) a ## b #define PeRl_StGiFy(a) #a +/* the additional level of indirection enables these macros to be + * used as arguments to other macros. See K&R 2nd ed., page 231. */ #define CAT2(a,b) PeRl_CaTiFy(a,b) #define StGiFy(a) PeRl_StGiFy(a) #define STRINGIFY(a) PeRl_StGiFy(a) #endif #if 42 != 1 && 42 != 42 -#include "Bletch: How does this C preprocessor concatenate tokens?" +# include "Bletch: How does this C preprocessor catenate tokens?" #endif /* CPPSTDIN: @@ -1021,10 +1106,16 @@ * This symbol is intended to be used along with CPPRUN in the same manner * symbol CPPMINUS is used with CPPSTDIN. It contains either "-" or "". */ -#define CPPSTDIN "cc -E" -#define CPPMINUS "-" -#define CPPRUN "cc -E" -#define CPPLAST "-" +#define CPPSTDIN "" +#define CPPMINUS "" +#define CPPRUN "" +#define CPPLAST "" + +/* HAS__FWALK: + * This symbol, if defined, indicates that the _fwalk system call is + * available to apply a function to all the file handles. + */ +/*#define HAS__FWALK / **/ /* HAS_ACCESS: * This manifest constant lets the C program know that the access() @@ -1033,12 +1124,6 @@ */ /*#define HAS_ACCESS / **/ -/* HAS_ACCESSX: - * This symbol, if defined, indicates that the accessx routine is - * available to do extended access checks. - */ -/*#define HAS_ACCESSX / **/ - /* HAS_ASCTIME_R: * This symbol, if defined, indicates that the asctime_r routine * is available to asctime re-entrantly. @@ -1052,53 +1137,56 @@ /*#define HAS_ASCTIME_R / **/ #define ASCTIME_R_PROTO 0 /**/ -/* HASATTRIBUTE_FORMAT: - * Can we handle GCC attribute for checking printf-style formats - */ -/* PRINTF_FORMAT_NULL_OK: - * Allows __printf__ format to be null when checking printf-style - */ -/* HASATTRIBUTE_MALLOC: - * Can we handle GCC attribute for malloc-style functions. - */ -/* HASATTRIBUTE_NONNULL: - * Can we handle GCC attribute for nonnull function parms. - */ -/* HASATTRIBUTE_NORETURN: - * Can we handle GCC attribute for functions that do not return +/* CASTI32: + * This symbol is defined if the C compiler can cast negative + * or large floating point numbers to 32-bit ints. */ -/* HASATTRIBUTE_PURE: - * Can we handle GCC attribute for pure functions +/*#define CASTI32 / **/ + +/* CASTNEGFLOAT: + * This symbol is defined if the C compiler can cast negative + * numbers to unsigned longs, ints and shorts. */ -/* HASATTRIBUTE_UNUSED: - * Can we handle GCC attribute for unused variables and arguments +/* CASTFLAGS: + * This symbol contains flags that say what difficulties the compiler + * has casting odd floating values to unsigned long: + * 0 = ok + * 1 = couldn't cast < 0 + * 2 = couldn't cast >= 0x80000000 + * 4 = couldn't cast in argument expression list */ -/* HASATTRIBUTE_DEPRECATED: - * Can we handle GCC attribute for marking deprecated APIs +/*#define CASTNEGFLOAT / **/ +#define CASTFLAGS 0 /**/ + +/* HAS_CLASS: + * This symbol, if defined, indicates that the class routine is + * available to classify doubles. Available for example in AIX. + * The returned values are defined in <float.h> and are: + * + * FP_PLUS_NORM Positive normalized, nonzero + * FP_MINUS_NORM Negative normalized, nonzero + * FP_PLUS_DENORM Positive denormalized, nonzero + * FP_MINUS_DENORM Negative denormalized, nonzero + * FP_PLUS_ZERO +0.0 + * FP_MINUS_ZERO -0.0 + * FP_PLUS_INF +INF + * FP_MINUS_INF -INF + * FP_NANS Signaling Not a Number (NaNS) + * FP_NANQ Quiet Not a Number (NaNQ) */ -/* HASATTRIBUTE_WARN_UNUSED_RESULT: - * Can we handle GCC attribute for warning on unused results +/*#define HAS_CLASS / **/ + +/* VOID_CLOSEDIR: + * This symbol, if defined, indicates that the closedir() routine + * does not return a value. */ -/*#define HASATTRIBUTE_DEPRECATED / **/ -/*#define HASATTRIBUTE_FORMAT / **/ -/*#define PRINTF_FORMAT_NULL_OK / **/ -/*#define HASATTRIBUTE_NORETURN / **/ -/*#define HASATTRIBUTE_MALLOC / **/ -/*#define HASATTRIBUTE_NONNULL / **/ -/*#define HASATTRIBUTE_PURE / **/ -/*#define HASATTRIBUTE_UNUSED / **/ -/*#define HASATTRIBUTE_WARN_UNUSED_RESULT / **/ +/*#define VOID_CLOSEDIR / **/ -/* HASCONST: - * This symbol, if defined, indicates that this C compiler knows about - * the const type. There is no need to actually test for that symbol - * within your programs. The mere use of the "const" keyword will - * trigger the necessary tests. +/* HAS_STRUCT_CMSGHDR: + * This symbol, if defined, indicates that the struct cmsghdr + * is supported. */ -/*#define HASCONST / **/ -#ifndef HASCONST -#define const -#endif +/*#define HAS_STRUCT_CMSGHDR / **/ /* HAS_CRYPT_R: * This symbol, if defined, indicates that the crypt_r routine @@ -1124,19 +1212,6 @@ #define CSH "" /**/ #endif -/* HAS_CTERMID_R: - * This symbol, if defined, indicates that the ctermid_r routine - * is available to ctermid re-entrantly. - */ -/* CTERMID_R_PROTO: - * This symbol encodes the prototype of ctermid_r. - * It is zero if d_ctermid_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_ctermid_r - * is defined. - */ -/*#define HAS_CTERMID_R / **/ -#define CTERMID_R_PROTO 0 /**/ - /* HAS_CTIME_R: * This symbol, if defined, indicates that the ctime_r routine * is available to ctime re-entrantly. @@ -1150,6 +1225,14 @@ /*#define HAS_CTIME_R / **/ #define CTIME_R_PROTO 0 /**/ +/* DLSYM_NEEDS_UNDERSCORE: + * This symbol, if defined, indicates that we need to prepend an + * underscore to the symbol name before calling dlsym(). This only + * makes sense if you *have* dlsym, which we will presume is the + * case if you're using dl_dlopen.xs. + */ +/*#define DLSYM_NEEDS_UNDERSCORE / **/ + /* HAS_DRAND48_R: * This symbol, if defined, indicates that the drand48_r routine * is available to drand48 re-entrantly. @@ -1171,12 +1254,6 @@ */ /*#define HAS_DRAND48_PROTO / **/ -/* HAS_EACCESS: - * This symbol, if defined, indicates that the eaccess routine is - * available to do extended access checks. - */ -/*#define HAS_EACCESS / **/ - /* HAS_ENDGRENT: * This symbol, if defined, indicates that the getgrent routine is * available for finalizing sequential access of the group database. @@ -1202,57 +1279,18 @@ */ /*#define HAS_ENDHOSTENT / **/ -/* HAS_ENDHOSTENT_R: - * This symbol, if defined, indicates that the endhostent_r routine - * is available to endhostent re-entrantly. - */ -/* ENDHOSTENT_R_PROTO: - * This symbol 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. - */ -/*#define HAS_ENDHOSTENT_R / **/ -#define ENDHOSTENT_R_PROTO 0 /**/ - /* HAS_ENDNETENT: * This symbol, if defined, indicates that the endnetent() routine is * available to close whatever was being used for network queries. */ /*#define HAS_ENDNETENT / **/ -/* HAS_ENDNETENT_R: - * This symbol, if defined, indicates that the endnetent_r routine - * is available to endnetent re-entrantly. - */ -/* ENDNETENT_R_PROTO: - * This symbol 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. - */ -/*#define HAS_ENDNETENT_R / **/ -#define ENDNETENT_R_PROTO 0 /**/ - /* HAS_ENDPROTOENT: * This symbol, if defined, indicates that the endprotoent() routine is * available to close whatever was being used for protocol queries. */ /*#define HAS_ENDPROTOENT / **/ -/* HAS_ENDPROTOENT_R: - * This symbol, if defined, indicates that the endprotoent_r routine - * is available to endprotoent re-entrantly. - */ -/* ENDPROTOENT_R_PROTO: - * This symbol 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. - */ -/*#define HAS_ENDPROTOENT_R / **/ -#define ENDPROTOENT_R_PROTO 0 /**/ - /* HAS_ENDPWENT: * This symbol, if defined, indicates that the getgrent routine is * available for finalizing sequential access of the passwd database. @@ -1278,18 +1316,37 @@ */ /*#define HAS_ENDSERVENT / **/ -/* HAS_ENDSERVENT_R: - * This symbol, if defined, indicates that the endservent_r routine - * is available to endservent re-entrantly. +/* HAS_FCHDIR: + * This symbol, if defined, indicates that the fchdir routine is + * available to change directory using a file descriptor. */ -/* ENDSERVENT_R_PROTO: - * This symbol encodes the prototype of endservent_r. - * It is zero if d_endservent_r is undef, and one of the - * REENTRANT_PROTO_T_ABC macros of reentr.h if d_endservent_r - * is defined. +/*#define HAS_FCHDIR / **/ + +/* FCNTL_CAN_LOCK: + * This symbol, if defined, indicates that fcntl() can be used + * for file locking. Normally on Unix systems this is defined. + * It may be undefined on VMS. */ -/*#define HAS_ENDSERVENT_R / **/ -#define ENDSERVENT_R_PROTO 0 /**/ +/*#define FCNTL_CAN_LOCK / **/ + +/* HAS_FD_SET: + * This symbol, when defined, indicates presence of the fd_set typedef + * in <sys/types.h> + */ +/*#define HAS_FD_SET / **/ + +/* HAS_FINITE: + * This symbol, if defined, indicates that the finite routine is + * available to check whether a double is finite (non-infinity non-NaN). + */ +/*#define HAS_FINITE / **/ + +/* HAS_FINITEL: + * This symbol, if defined, indicates that the finitel routine is + * available to check whether a long double is finite + * (non-infinity non-NaN). + */ +/*#define HAS_FINITEL / **/ /* FLEXFILENAMES: * This symbol, if defined, indicates that the system supports filenames @@ -1297,6 +1354,134 @@ */ /*#define FLEXFILENAMES / **/ +/* HAS_FP_CLASS: + * This symbol, if defined, indicates that the fp_class routine is + * available to classify doubles. Available for example in Digital UNIX. + * The returned values are defined in <math.h> and are: + * + * FP_SNAN Signaling NaN (Not-a-Number) + * FP_QNAN Quiet NaN (Not-a-Number) + * FP_POS_INF +infinity + * FP_NEG_INF -infinity + * FP_POS_NORM Positive normalized + * FP_NEG_NORM Negative normalized + * FP_POS_DENORM Positive denormalized + * FP_NEG_DENORM Negative denormalized + * FP_POS_ZERO +0.0 (positive zero) + * FP_NEG_ZERO -0.0 (negative zero) + */ +/*#define HAS_FP_CLASS / **/ + +/* HAS_FPCLASS: + * This symbol, if defined, indicates that the fpclass routine is + * available to classify doubles. Available for example in Solaris/SVR4. + * The returned values are defined in <ieeefp.h> and are: + * + * FP_SNAN signaling NaN + * FP_QNAN quiet NaN + * FP_NINF negative infinity + * FP_PINF positive infinity + * FP_NDENORM negative denormalized non-zero + * FP_PDENORM positive denormalized non-zero + * FP_NZERO negative zero + * FP_PZERO positive zero + * FP_NNORM negative normalized non-zero + * FP_PNORM positive normalized non-zero + */ +/*#define HAS_FPCLASS / **/ + +/* HAS_FPCLASSIFY: + * This symbol, if defined, indicates that the fpclassify routine is + * available to classify doubles. Available for example in HP-UX. + * The returned values are defined in <math.h> and are + * + * FP_NORMAL Normalized + * FP_ZERO Zero + * FP_INFINITE Infinity + * FP_SUBNORMAL Denormalized + * FP_NAN NaN + * + */ +/*#define HAS_FPCLASSIFY / **/ + +/* HAS_FPOS64_T: + * This symbol will be defined if the C compiler supports fpos64_t. + */ +/*#define HAS_FPOS64_T / **/ + +/* HAS_FREXPL: + * This symbol, if defined, indicates that the frexpl routine is + * available to break a long double floating-point number into + * a normalized fraction and an integral power of 2. + */ +/*#define HAS_FREXPL / **/ + +/* HAS_STRUCT_FS_DATA: + * This symbol, if defined, indicates that the struct fs_data + * to do statfs() is supported. + */ +/*#define HAS_STRUCT_FS_DATA / **/ + +/* HAS_FSEEKO: + * This symbol, if defined, indicates that the fseeko routine is + * available to fseek beyond 32 bits (useful for ILP32 hosts). + */ +/*#define HAS_FSEEKO / **/ + +/* HAS_FSTATFS: + * This symbol, if defined, indicates that the fstatfs routine is + * available to stat filesystems by file descriptors. + */ +/*#define HAS_FSTATFS / **/ + +/* HAS_FSYNC: + * This symbol, if defined, indicates that the fsync routine is + * available to write a file's modified data and attributes to + * permanent storage. + */ +/*#define HAS_FSYNC / **/ + +/* HAS_FTELLO: + * This symbol, if defined, indicates that the ftello routine is + * available to ftell beyond 32 bits (useful for ILP32 hosts). + */ +/*#define HAS_FTELLO / **/ + +/* Gconvert: + * This preprocessor macro is defined to convert a floating point + * number to a string without a trailing decimal point. This + * emulates the behavior of sprintf("%g"), but is sometimes much more + * efficient. If gconvert() is not available, but gcvt() drops the + * trailing decimal point, then gcvt() is used. If all else fails, + * a macro using sprintf("%g") is used. Arguments for the Gconvert + * macro are: value, number of digits, whether trailing zeros should + * be retained, and the output buffer. + * The usual values are: + * d_Gconvert='gconvert((x),(n),(t),(b))' + * d_Gconvert='gcvt((x),(n),(b))' + * d_Gconvert='sprintf((b),"%.*g",(n),(x))' + * The last two assume trailing zeros should not be kept. + */ +#define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(x)) + +/* HAS_GETCWD: + * This symbol, if defined, indicates that the getcwd routine is + * available to get the current working directory. + */ +/*#define HAS_GETCWD / **/ + +/* HAS_GETESPWNAM: + * This symbol, if defined, indicates that the getespwnam system call is + * available to retrieve enchanced (shadow) password entries by name. + */ +/*#define HAS_GETESPWNAM / **/ + +/* HAS_GETFSSTAT: + * This symbol, if defined, indicates that the getfsstat routine is + * available to stat filesystems in bulk. + */ +/*#define HAS_GETFSSTAT / **/ + /* HAS_GETGRENT: * This symbol, if defined, indicates that the getgrent routine is * available for sequential access of the group database. @@ -1386,48 +1571,9 @@ /*#define HAS_UNAME / **/ /*#define HAS_PHOSTNAME / **/ #ifdef HAS_PHOSTNAME -#define PHOSTNAME "/bin/hostname" /* How to get the host name */ +#define PHOSTNAME "" /* How to get the host name */ #endif -/* HAS_GETHOSTBYADDR_R: - * This symbol, if defined, indicates that the gethostbyaddr_r routine - * is available to gethostbyaddr re-entrantly. - */ -/* GETHOSTBYADDR_R_PROTO: - * This symbol encodes the prototype of gethostbyaddr_r. - * It is 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. - */ -/*#define HAS_GETHOSTBYADDR_R / **/ -#define GETHOSTBYADDR_R_PROTO 0 /**/ - -/* HAS_GETHOSTBYNAME_R: - * This symbol, if defined, indicates that the gethostbyname_r routine - * is available to gethostbyname re-entrantly. - */ -/* GETHOSTBYNAME_R_PROTO: - * This symbol encodes the prototype of gethostbyname_r. - * It is 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. - */ -/*#define HAS_GETHOSTBYNAME_R / **/ -#define GETHOSTBYNAME_R_PROTO 0 /**/ - -/* HAS_GETHOSTENT_R: - * This symbol, if defined, indicates that the gethostent_r routine - * is available to gethostent re-entrantly. - */ -/* GETHOSTENT_R_PROTO: - * This symbol encodes the prototype of gethostent_r. - * It is 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. - */ -/*#define HAS_GETHOSTENT_R / **/ -#define GETHOSTENT_R_PROTO 0 /**/ - /* HAS_GETHOST_PROTOS: * This symbol, if defined, indicates that <netdb.h> includes * prototypes for gethostent(), gethostbyname(), and @@ -1436,6 +1582,12 @@ */ /*#define HAS_GETHOST_PROTOS / **/ +/* HAS_GETITIMER: + * This symbol, if defined, indicates that the getitimer routine is + * available to return interval timers. + */ +/*#define HAS_GETITIMER / **/ + /* HAS_GETLOGIN_R: * This symbol, if defined, indicates that the getlogin_r routine * is available to getlogin re-entrantly. @@ -1449,6 +1601,18 @@ /*#define HAS_GETLOGIN_R / **/ #define GETLOGIN_R_PROTO 0 /**/ +/* HAS_GETMNT: + * This symbol, if defined, indicates that the getmnt routine is + * available to get filesystem mount info by filename. + */ +/*#define HAS_GETMNT / **/ + +/* HAS_GETMNTENT: + * This symbol, if defined, indicates that the getmntent routine is + * available to iterate through mounted file systems to get their info. + */ +/*#define HAS_GETMNTENT / **/ + /* HAS_GETNETBYADDR: * This symbol, if defined, indicates that the getnetbyaddr() routine is * available to look up networks by their IP addresses. @@ -1467,45 +1631,6 @@ */ /*#define HAS_GETNETENT / **/ -/* HAS_GETNETBYADDR_R: - * This symbol, if defined, indicates that the getnetbyaddr_r routine - * is available to getnetbyaddr re-entrantly. - */ -/* GETNETBYADDR_R_PROTO: - * This symbol encodes the prototype of getnetbyaddr_r. - * It is 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. - */ -/*#define HAS_GETNETBYADDR_R / **/ -#define GETNETBYADDR_R_PROTO 0 /**/ - -/* HAS_GETNETBYNAME_R: - * This symbol, if defined, indicates that the getnetbyname_r routine - * is available to getnetbyname re-entrantly. - */ -/* GETNETBYNAME_R_PROTO: - * This symbol encodes the prototype of getnetbyname_r. - * It is 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. - */ -/*#define HAS_GETNETBYNAME_R / **/ -#define GETNETBYNAME_R_PROTO 0 /**/ - -/* HAS_GETNETENT_R: - * This symbol, if defined, indicates that the getnetent_r routine - * is available to getnetent re-entrantly. - */ -/* GETNETENT_R_PROTO: - * This symbol encodes the prototype of getnetent_r. - * It is 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. - */ -/*#define HAS_GETNETENT_R / **/ -#define GETNETENT_R_PROTO 0 /**/ - /* HAS_GETNET_PROTOS: * This symbol, if defined, indicates that <netdb.h> includes * prototypes for getnetent(), getnetbyname(), and @@ -1514,6 +1639,13 @@ */ /*#define HAS_GETNET_PROTOS / **/ +/* HAS_GETPAGESIZE: + * This symbol, if defined, indicates that the getpagesize system call + * is available to get system page size, which is the granularity of + * many memory management calls. + */ +/*#define HAS_GETPAGESIZE / **/ + /* HAS_GETPROTOENT: * This symbol, if defined, indicates that the getprotoent() routine is * available to look up protocols in some data base or another. @@ -1542,45 +1674,6 @@ /*#define HAS_GETPROTOBYNAME / **/ /*#define HAS_GETPROTOBYNUMBER / **/ -/* HAS_GETPROTOBYNAME_R: - * This symbol, if defined, indicates that the getprotobyname_r routine - * is available to getprotobyname re-entrantly. - */ -/* GETPROTOBYNAME_R_PROTO: - * This symbol encodes the prototype of getprotobyname_r. - * It is 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. - */ -/*#define HAS_GETPROTOBYNAME_R / **/ -#define GETPROTOBYNAME_R_PROTO 0 /**/ - -/* HAS_GETPROTOBYNUMBER_R: - * This symbol, if defined, indicates that the getprotobynumber_r routine - * is available to getprotobynumber re-entrantly. - */ -/* GETPROTOBYNUMBER_R_PROTO: - * This symbol encodes the prototype of getprotobynumber_r. - * It is 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. - */ -/*#define HAS_GETPROTOBYNUMBER_R / **/ -#define GETPROTOBYNUMBER_R_PROTO 0 /**/ - -/* HAS_GETPROTOENT_R: - * This symbol, if defined, indicates that the getprotoent_r routine - * is available to getprotoent re-entrantly. - */ -/* GETPROTOENT_R_PROTO: - * This symbol encodes the prototype of getprotoent_r. - * It is 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. - */ -/*#define HAS_GETPROTOENT_R / **/ -#define GETPROTOENT_R_PROTO 0 /**/ - /* HAS_GETPROTO_PROTOS: * This symbol, if defined, indicates that <netdb.h> includes * prototypes for getprotoent(), getprotobyname(), and @@ -1589,6 +1682,12 @@ */ /*#define HAS_GETPROTO_PROTOS / **/ +/* HAS_GETPRPWNAM: + * This symbol, if defined, indicates that the getprpwnam system call is + * available to retrieve protected (shadow) password entries by name. + */ +/*#define HAS_GETPRPWNAM / **/ + /* HAS_GETPWENT: * This symbol, if defined, indicates that the getpwent routine is * available for sequential access of the passwd database. @@ -1641,45 +1740,6 @@ */ /*#define HAS_GETSERVENT / **/ -/* HAS_GETSERVBYNAME_R: - * This symbol, if defined, indicates that the getservbyname_r routine - * is available to getservbyname re-entrantly. - */ -/* GETSERVBYNAME_R_PROTO: - * This symbol encodes the prototype of getservbyname_r. - * It is 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. - */ -/*#define HAS_GETSERVBYNAME_R / **/ -#define GETSERVBYNAME_R_PROTO 0 /**/ - -/* HAS_GETSERVBYPORT_R: - * This symbol, if defined, indicates that the getservbyport_r routine - * is available to getservbyport re-entrantly. - */ -/* GETSERVBYPORT_R_PROTO: - * This symbol encodes the prototype of getservbyport_r. - * It is 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. - */ -/*#define HAS_GETSERVBYPORT_R / **/ -#define GETSERVBYPORT_R_PROTO 0 /**/ - -/* HAS_GETSERVENT_R: - * This symbol, if defined, indicates that the getservent_r routine - * is available to getservent re-entrantly. - */ -/* GETSERVENT_R_PROTO: - * This symbol encodes the prototype of getservent_r. - * It is 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. - */ -/*#define HAS_GETSERVENT_R / **/ -#define GETSERVENT_R_PROTO 0 /**/ - /* HAS_GETSERV_PROTOS: * This symbol, if defined, indicates that <netdb.h> includes * prototypes for getservent(), getservbyname(), and @@ -1688,6 +1748,12 @@ */ /*#define HAS_GETSERV_PROTOS / **/ +/* HAS_GETSPNAM: + * This symbol, if defined, indicates that the getspnam system call is + * available to retrieve SysV shadow password entries by name. + */ +/*#define HAS_GETSPNAM / **/ + /* HAS_GETSPNAM_R: * This symbol, if defined, indicates that the getspnam_r routine * is available to getspnam re-entrantly. @@ -1725,6 +1791,21 @@ /*#define HAS_GMTIME_R / **/ #define GMTIME_R_PROTO 0 /**/ +/* HAS_GNULIBC: + * This symbol, if defined, indicates to the C program that + * the GNU C library is being used. A better check is to use + * the __GLIBC__ and __GLIBC_MINOR__ symbols supplied with glibc. + */ +/*#define HAS_GNULIBC / **/ +#if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE) +# define _GNU_SOURCE +#endif +/* HAS_HASMNTOPT: + * This symbol, if defined, indicates that the hasmntopt routine is + * available to query the mount options of file systems. + */ +/*#define HAS_HASMNTOPT / **/ + /* HAS_HTONL: * This symbol, if defined, indicates that the htonl() routine (and * friends htons() ntohl() ntohs()) are available to do network @@ -1750,23 +1831,62 @@ /*#define HAS_NTOHL / **/ /*#define HAS_NTOHS / **/ +/* HAS_INT64_T: + * This symbol will defined if the C compiler supports int64_t. + * Usually the <inttypes.h> needs to be included, but sometimes + * <sys/types.h> is enough. + */ +/*#define HAS_INT64_T / **/ + +/* HAS_ISASCII: + * This manifest constant lets the C program know that isascii + * is available. + */ +/*#define HAS_ISASCII / **/ + +/* HAS_ISFINITE: + * This symbol, if defined, indicates that the isfinite routine is + * available to check whether a double is finite (non-infinity non-NaN). + */ +/*#define HAS_ISFINITE / **/ + +/* HAS_ISINF: + * This symbol, if defined, indicates that the isinf routine is + * available to check whether a double is an infinity. + */ +/*#define HAS_ISINF / **/ + +/* HAS_ISNAN: + * This symbol, if defined, indicates that the isnan routine is + * available to check whether a double is a NaN. + */ +/*#define HAS_ISNAN / **/ + +/* HAS_ISNANL: + * This symbol, if defined, indicates that the isnanl routine is + * available to check whether a long double is a NaN. + */ +/*#define HAS_ISNANL / **/ + +/* HAS_LCHOWN: + * This symbol, if defined, indicates that the lchown routine is + * available to operate on a symbolic link (instead of following the + * link). + */ +/*#define HAS_LCHOWN / **/ + +/* HAS_LDBL_DIG: + * This symbol, if defined, indicates that this system's <float.h> + * or <limits.h> defines the symbol LDBL_DIG, which is the number + * of significant digits in a long double precision number. Unlike + * for DBL_DIG, there's no good guess for LDBL_DIG if it is undefined. + */ +/*#define HAS_LDBL_DIG / * */ + /* HAS_LOCALTIME_R: * This symbol, if defined, indicates that the localtime_r routine * is available to localtime re-entrantly. */ -/* LOCALTIME_R_NEEDS_TZSET: - * Many libc's localtime_r implementations do not call tzset, - * making them differ from localtime(), and making timezone - * changes using $ENV{TZ} without explicitly calling tzset - * impossible. This symbol makes us call tzset before localtime_r - */ -/*#define LOCALTIME_R_NEEDS_TZSET / **/ -#ifdef LOCALTIME_R_NEEDS_TZSET -#define L_R_TZSET tzset(), -#else -#define L_R_TZSET -#endif - /* LOCALTIME_R_PROTO: * This symbol encodes the prototype of localtime_r. * It is zero if d_localtime_r is undef, and one of the @@ -1781,7 +1901,7 @@ * doubles. */ /* LONG_DOUBLESIZE: - * This symbol contains the size of a long double, so that the + * This symbol contains the size of a long double, so that the * C preprocessor can make decisions based on it. It is only * defined if the system supports long doubles. */ @@ -1794,7 +1914,7 @@ * This symbol will be defined if the C compiler supports long long. */ /* LONGLONGSIZE: - * This symbol contains the size of a long long, so that the + * This symbol contains the size of a long long, so that the * C preprocessor can make decisions based on it. It is only * defined if the system supports long long. */ @@ -1811,11 +1931,23 @@ */ /*#define HAS_LSEEK_PROTO / **/ +/* HAS_MADVISE: + * This symbol, if defined, indicates that the madvise system call is + * available to map a file into memory. + */ +/*#define HAS_MADVISE / **/ + /* HAS_MEMCHR: * This symbol, if defined, indicates that the memchr routine is available * to locate characters within a C string. */ -#define HAS_MEMCHR /**/ +/*#define HAS_MEMCHR / **/ + +/* HAS_MKDTEMP: + * This symbol, if defined, indicates that the mkdtemp routine is + * available to exclusively create a uniquely named temporary directory. + */ +/*#define HAS_MKDTEMP / **/ /* HAS_MKSTEMP: * This symbol, if defined, indicates that the mkstemp routine is @@ -1824,6 +1956,13 @@ */ /*#define HAS_MKSTEMP / **/ +/* HAS_MKSTEMPS: + * This symbol, if defined, indicates that the mkstemps routine is + * available to excluslvely create and open a uniquely named + * (with a suffix) temporary file. + */ +/*#define HAS_MKSTEMPS / **/ + /* HAS_MMAP: * This symbol, if defined, indicates that the mmap system call is * available to map a file into memory. @@ -1831,10 +1970,31 @@ /* Mmap_t: * This symbol holds the return type of the mmap() system call * (and simultaneously the type of the first argument). - * Usually set to 'void *' or 'caddr_t'. + * Usually set to 'void *' or 'cadd_t'. */ /*#define HAS_MMAP / **/ -#define Mmap_t void * /**/ +#define Mmap_t /**/ + +/* HAS_MODFL: + * This symbol, if defined, indicates that the modfl routine is + * available to split a long double x into a fractional part f and + * an integer part i such that |f| < 1.0 and (f + i) = x. + */ +/* HAS_MODFL_POW32_BUG: + * This symbol, if defined, indicates that the modfl routine is + * broken for long doubles >= pow(2, 32). + * For example from 4294967303.150000 one would get 4294967302.000000 + * and 1.150000. The bug has been seen in certain versions of glibc, + * release 2.2.2 is known to be okay. + */ +/*#define HAS_MODFL / **/ +/*#define HAS_MODFL_POW32_BUG / **/ + +/* HAS_MPROTECT: + * This symbol, if defined, indicates that the mprotect system call is + * available to modify the access protection of a memory mapped file. + */ +/*#define HAS_MPROTECT / **/ /* HAS_MSG: * This symbol, if defined, indicates that the entire msg*(2) library is @@ -1842,6 +2002,23 @@ */ /*#define HAS_MSG / **/ +/* HAS_STRUCT_MSGHDR: + * This symbol, if defined, indicates that the struct msghdr + * is supported. + */ +/*#define HAS_STRUCT_MSGHDR / **/ + +/* HAS_OFF64_T: + * This symbol will be defined if the C compiler supports off64_t. + */ +/*#define HAS_OFF64_T / **/ + +/* HAS_OPEN3: + * This manifest constant lets the C program know that the three + * argument form of open(2) is available. + */ +/*#define HAS_OPEN3 / **/ + /* OLD_PTHREAD_CREATE_JOINABLE: * This symbol, if defined, indicates how to create pthread * in joinable (aka undetached) state. NOTE: not defined @@ -1852,14 +2029,8 @@ */ /*#define OLD_PTHREAD_CREATE_JOINABLE / **/ -/* HAS_PTHREAD_ATFORK: - * This symbol, if defined, indicates that the pthread_atfork routine - * is available to setup fork handlers. - */ -/*#define HAS_PTHREAD_ATFORK / **/ - /* HAS_PTHREAD_YIELD: - * This symbol, if defined, indicates that the pthread_yield + * This symbol, if defined, indicates that the pthread_yield * routine is available to yield the execution of the current * thread. sched_yield is preferable to pthread_yield. */ @@ -1890,19 +2061,6 @@ /*#define HAS_RANDOM_R / **/ #define RANDOM_R_PROTO 0 /**/ -/* HAS_READDIR64_R: - * This symbol, if defined, indicates that the readdir64_r routine - * is available to readdir64 re-entrantly. - */ -/* READDIR64_R_PROTO: - * This symbol encodes the prototype of readdir64_r. - * It is 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. - */ -/*#define HAS_READDIR64_R / **/ -#define READDIR64_R_PROTO 0 /**/ - /* HAS_READDIR_R: * This symbol, if defined, indicates that the readdir_r routine * is available to readdir re-entrantly. @@ -1916,12 +2074,63 @@ /*#define HAS_READDIR_R / **/ #define READDIR_R_PROTO 0 /**/ +/* HAS_READV: + * This symbol, if defined, indicates that the readv routine is + * available to do gather reads. You will also need <sys/uio.h> + * and there I_SYSUIO. + */ +/*#define HAS_READV / **/ + +/* HAS_RECVMSG: + * This symbol, if defined, indicates that the recvmsg routine is + * available to send structured socket messages. + */ +/*#define HAS_RECVMSG / **/ + +/* HAS_SAFE_BCOPY: + * This symbol, if defined, indicates that the bcopy routine is available + * to copy potentially overlapping memory blocks. Normally, you should + * probably use memmove() or memcpy(). If neither is defined, roll your + * own version. + */ +/*#define HAS_SAFE_BCOPY / **/ + +/* HAS_SAFE_MEMCPY: + * This symbol, if defined, indicates that the memcpy routine is available + * to copy potentially overlapping memory blocks. If you need to + * copy overlapping memory blocks, you should check HAS_MEMMOVE and + * use memmove() instead, if available. + */ +/*#define HAS_SAFE_MEMCPY / **/ + +/* HAS_SANE_MEMCMP: + * This symbol, if defined, indicates that the memcmp routine is available + * and can be used to compare relative magnitudes of chars with their high + * bits set. If it is not defined, roll your own version. + */ +/*#define HAS_SANE_MEMCMP / **/ + +/* HAS_SBRK_PROTO: + * This symbol, if defined, indicates that the system provides + * a prototype for the sbrk() function. Otherwise, it is up + * to the program to supply one. Good guesses are + * extern void* sbrk(int); + * extern void* sbrk(size_t); + */ +/*#define HAS_SBRK_PROTO / **/ + /* HAS_SEM: * This symbol, if defined, indicates that the entire sem*(2) library is * supported. */ /*#define HAS_SEM / **/ +/* HAS_SENDMSG: + * This symbol, if defined, indicates that the sendmsg routine is + * available to send structured socket messages. + */ +/*#define HAS_SENDMSG / **/ + /* HAS_SETGRENT: * This symbol, if defined, indicates that the setgrent routine is * available for initializing sequential access of the group database. @@ -1941,37 +2150,24 @@ /*#define HAS_SETGRENT_R / **/ #define SETGRENT_R_PROTO 0 /**/ +/* HAS_SETGROUPS: + * This symbol, if defined, indicates that the setgroups() routine is + * available to set the list of process groups. If unavailable, multiple + * groups are probably not supported. + */ +/*#define HAS_SETGROUPS / **/ + /* HAS_SETHOSTENT: * This symbol, if defined, indicates that the sethostent() routine is * available. */ /*#define HAS_SETHOSTENT / **/ -/* HAS_SETHOSTENT_R: - * This symbol, if defined, indicates that the sethostent_r routine - * is available to sethostent re-entrantly. - */ -/* SETHOSTENT_R_PROTO: - * This symbol 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. - */ -/*#define HAS_SETHOSTENT_R / **/ -#define SETHOSTENT_R_PROTO 0 /**/ - -/* HAS_SETLOCALE_R: - * This symbol, if defined, indicates that the setlocale_r routine - * is available to setlocale re-entrantly. - */ -/* SETLOCALE_R_PROTO: - * This symbol 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. +/* HAS_SETITIMER: + * This symbol, if defined, indicates that the setitimer routine is + * available to set interval timers. */ -/*#define HAS_SETLOCALE_R / **/ -#define SETLOCALE_R_PROTO 0 /**/ +/*#define HAS_SETITIMER / **/ /* HAS_SETNETENT: * This symbol, if defined, indicates that the setnetent() routine is @@ -1979,19 +2175,6 @@ */ /*#define HAS_SETNETENT / **/ -/* HAS_SETNETENT_R: - * This symbol, if defined, indicates that the setnetent_r routine - * is available to setnetent re-entrantly. - */ -/* SETNETENT_R_PROTO: - * This symbol 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. - */ -/*#define HAS_SETNETENT_R / **/ -#define SETNETENT_R_PROTO 0 /**/ - /* HAS_SETPROTOENT: * This symbol, if defined, indicates that the setprotoent() routine is * available. @@ -2010,18 +2193,11 @@ /*#define HAS_SETPGRP / **/ /*#define USE_BSD_SETPGRP / **/ -/* HAS_SETPROTOENT_R: - * This symbol, if defined, indicates that the setprotoent_r routine - * is available to setprotoent re-entrantly. - */ -/* SETPROTOENT_R_PROTO: - * This symbol 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. +/* HAS_SETPROCTITLE: + * This symbol, if defined, indicates that the setproctitle routine is + * available to set process title. */ -/*#define HAS_SETPROTOENT_R / **/ -#define SETPROTOENT_R_PROTO 0 /**/ +/*#define HAS_SETPROCTITLE / **/ /* HAS_SETPWENT: * This symbol, if defined, indicates that the setpwent routine is @@ -2048,19 +2224,6 @@ */ /*#define HAS_SETSERVENT / **/ -/* HAS_SETSERVENT_R: - * This symbol, if defined, indicates that the setservent_r routine - * is available to setservent re-entrantly. - */ -/* SETSERVENT_R_PROTO: - * This symbol 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. - */ -/*#define HAS_SETSERVENT_R / **/ -#define SETSERVENT_R_PROTO 0 /**/ - /* HAS_SETVBUF: * This symbol, if defined, indicates that the setvbuf routine is * available to change buffering on an open stdio stream. @@ -2068,25 +2231,54 @@ */ /*#define HAS_SETVBUF / **/ +/* USE_SFIO: + * This symbol, if defined, indicates that sfio should + * be used. + */ +/*#define USE_SFIO / **/ + /* HAS_SHM: * This symbol, if defined, indicates that the entire shm*(2) library is * supported. */ /*#define HAS_SHM / **/ -/* Shmat_t: - * This symbol holds the return type of the shmat() system call. - * Usually set to 'void *' or 'char *'. +/* HAS_SIGACTION: + * This symbol, if defined, indicates that Vr4's sigaction() routine + * is available. */ -/* HAS_SHMAT_PROTOTYPE: - * This symbol, if defined, indicates that the sys/shm.h includes - * a prototype for shmat(). Otherwise, it is up to the program to - * guess one. Shmat_t shmat(int, Shmat_t, int) is a good guess, - * but not always right so it should be emitted by the program only - * when HAS_SHMAT_PROTOTYPE is not defined to avoid conflicting defs. +/*#define HAS_SIGACTION / **/ + +/* HAS_SIGSETJMP: + * This variable indicates to the C program that the sigsetjmp() + * routine is available to save the calling process's registers + * and stack environment for later use by siglongjmp(), and + * to optionally save the process's signal mask. See + * Sigjmp_buf, Sigsetjmp, and Siglongjmp. */ -#define Shmat_t void * /**/ -/*#define HAS_SHMAT_PROTOTYPE / **/ +/* Sigjmp_buf: + * This is the buffer type to be used with Sigsetjmp and Siglongjmp. + */ +/* Sigsetjmp: + * This macro is used in the same way as sigsetjmp(), but will invoke + * traditional setjmp() if sigsetjmp isn't available. + * See HAS_SIGSETJMP. + */ +/* Siglongjmp: + * This macro is used in the same way as siglongjmp(), but will invoke + * traditional longjmp() if siglongjmp isn't available. + * See HAS_SIGSETJMP. + */ +/*#define HAS_SIGSETJMP / **/ +#ifdef HAS_SIGSETJMP +#define Sigjmp_buf sigjmp_buf +#define Sigsetjmp(buf,save_mask) sigsetjmp((buf),(save_mask)) +#define Siglongjmp(buf,retval) siglongjmp((buf),(retval)) +#else +#define Sigjmp_buf jmp_buf +#define Sigsetjmp(buf,save_mask) setjmp((buf)) +#define Siglongjmp(buf,retval) longjmp((buf),(retval)) +#endif /* HAS_SOCKET: * This symbol, if defined, indicates that the BSD socket interface is @@ -2135,6 +2327,18 @@ /*#define HAS_MSG_PROXY / **/ /*#define HAS_SCM_RIGHTS / **/ +/* HAS_SOCKS5_INIT: + * This symbol, if defined, indicates that the socks5_init routine is + * available to initialize SOCKS 5. + */ +/*#define HAS_SOCKS5_INIT / **/ + +/* HAS_SQRTL: + * This symbol, if defined, indicates that the sqrtl routine is + * available to do long double square roots. + */ +/*#define HAS_SQRTL / **/ + /* HAS_SRAND48_R: * This symbol, if defined, indicates that the srand48_r routine * is available to srand48 re-entrantly. @@ -2169,12 +2373,98 @@ /*#define USE_STAT_BLOCKS / **/ #endif -/* USE_STRUCT_COPY: - * This symbol, if defined, indicates that this C compiler knows how - * to copy structures. If undefined, you'll need to use a block copy - * routine of some sort instead. +/* HAS_STRUCT_STATFS_F_FLAGS: + * This symbol, if defined, indicates that the struct statfs + * does have the f_flags member containing the mount flags of + * the filesystem containing the file. + * This kind of struct statfs is coming from <sys/mount.h> (BSD 4.3), + * not from <sys/statfs.h> (SYSV). Older BSDs (like Ultrix) do not + * have statfs() and struct statfs, they have ustat() and getmnt() + * with struct ustat and struct fs_data. */ -/*#define USE_STRUCT_COPY / **/ +/*#define HAS_STRUCT_STATFS_F_FLAGS / **/ + +/* HAS_STRUCT_STATFS: + * This symbol, if defined, indicates that the struct statfs + * to do statfs() is supported. + */ +/*#define HAS_STRUCT_STATFS / **/ + +/* HAS_FSTATVFS: + * This symbol, if defined, indicates that the fstatvfs routine is + * available to stat filesystems by file descriptors. + */ +/*#define HAS_FSTATVFS / **/ + +/* USE_STDIO_PTR: + * This symbol is defined if the _ptr and _cnt fields (or similar) + * of the stdio FILE structure can be used to access the stdio buffer + * for a file handle. If this is defined, then the FILE_ptr(fp) + * and FILE_cnt(fp) macros will also be defined and should be used + * to access these fields. + */ +/* FILE_ptr: + * This macro is used to access the _ptr field (or equivalent) of the + * FILE structure pointed to by its argument. This macro will always be + * defined if USE_STDIO_PTR is defined. + */ +/* STDIO_PTR_LVALUE: + * This symbol is defined if the FILE_ptr macro can be used as an + * lvalue. + */ +/* FILE_cnt: + * This macro is used to access the _cnt field (or equivalent) of the + * FILE structure pointed to by its argument. This macro will always be + * defined if USE_STDIO_PTR is defined. + */ +/* STDIO_CNT_LVALUE: + * This symbol is defined if the FILE_cnt macro can be used as an + * lvalue. + */ +/* STDIO_PTR_LVAL_SETS_CNT: + * 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. + */ +/* STDIO_PTR_LVAL_NOCHANGE_CNT: + * This symbol is defined if using the FILE_ptr macro as an lvalue + * to increase the pointer by n leaves File_cnt(fp) unchanged. + */ +/*#define USE_STDIO_PTR / **/ +#ifdef USE_STDIO_PTR +#define FILE_ptr(fp) ((fp)->_IO_read_ptr) +/*#define STDIO_PTR_LVALUE / **/ +#define FILE_cnt(fp) ((fp)->_IO_read_end - (fp)->_IO_read_ptr) +/*#define STDIO_CNT_LVALUE / **/ +/*#define STDIO_PTR_LVAL_SETS_CNT / **/ +/*#define STDIO_PTR_LVAL_NOCHANGE_CNT / **/ +#endif + +/* USE_STDIO_BASE: + * This symbol is defined if the _base field (or similar) of the + * stdio FILE structure can be used to access the stdio buffer for + * a file handle. If this is defined, then the FILE_base(fp) macro + * will also be defined and should be used to access this field. + * Also, the FILE_bufsiz(fp) macro will be defined and should be used + * to determine the number of bytes in the buffer. USE_STDIO_BASE + * will never be defined unless USE_STDIO_PTR is. + */ +/* FILE_base: + * This macro is used to access the _base field (or equivalent) of the + * FILE structure pointed to by its argument. This macro will always be + * defined if USE_STDIO_BASE is defined. + */ +/* FILE_bufsiz: + * This macro is used to determine the number of bytes in the I/O + * buffer pointed to by _base field (or equivalent) of the FILE + * structure pointed to its argument. This macro will always be defined + * if USE_STDIO_BASE is defined. + */ +/*#define USE_STDIO_BASE / **/ +#ifdef USE_STDIO_BASE +#define FILE_base(fp) ((fp)->_IO_read_base) +#define FILE_bufsiz(fp) ((fp)->_IO_read_end - (fp)->_IO_read_base) +#endif /* HAS_STRERROR: * This symbol, if defined, indicates that the strerror routine is @@ -2208,11 +2498,49 @@ /*#define HAS_STRERROR_R / **/ #define STRERROR_R_PROTO 0 /**/ +/* HAS_STRTOLD: + * This symbol, if defined, indicates that the strtold routine is + * available to convert strings to long doubles. + */ +/*#define HAS_STRTOLD / **/ + +/* HAS_STRTOLL: + * This symbol, if defined, indicates that the strtoll routine is + * available to convert strings to long longs. + */ +/*#define HAS_STRTOLL / **/ + +/* HAS_STRTOQ: + * This symbol, if defined, indicates that the strtoq routine is + * available to convert strings to long longs (quads). + */ +/*#define HAS_STRTOQ / **/ + /* HAS_STRTOUL: * This symbol, if defined, indicates that the strtoul routine is * available to provide conversion of strings to unsigned long. */ -#define HAS_STRTOUL /**/ +/*#define HAS_STRTOUL / **/ + +/* HAS_STRTOULL: + * This symbol, if defined, indicates that the strtoull routine is + * available to convert strings to unsigned long longs. + */ +/*#define HAS_STRTOULL / **/ + +/* HAS_STRTOUQ: + * This symbol, if defined, indicates that the strtouq routine is + * available to convert strings to unsigned long longs (quads). + */ +/*#define HAS_STRTOUQ / **/ + +/* HAS_TELLDIR_PROTO: + * This symbol, if defined, indicates that the system provides + * a prototype for the telldir() function. Otherwise, it is up + * to the program to supply one. A good guess is + * extern long telldir(DIR*); + */ +/*#define HAS_TELLDIR_PROTO / **/ /* HAS_TIME: * This symbol, if defined, indicates that the time() routine exists. @@ -2245,18 +2573,11 @@ /*#define HAS_TMPNAM_R / **/ #define TMPNAM_R_PROTO 0 /**/ -/* HAS_TTYNAME_R: - * This symbol, if defined, indicates that the ttyname_r routine - * is available to ttyname re-entrantly. - */ -/* TTYNAME_R_PROTO: - * This symbol 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. +/* HAS_UALARM: + * This symbol, if defined, indicates that the ualarm routine is + * available to do alarms with microsecond granularity. */ -/*#define HAS_TTYNAME_R / **/ -#define TTYNAME_R_PROTO 0 /**/ +/*#define HAS_UALARM / **/ /* HAS_UNION_SEMUN: * This symbol, if defined, indicates that the union semun is @@ -2280,17 +2601,24 @@ /*#define USE_SEMCTL_SEMUN / **/ /*#define USE_SEMCTL_SEMID_DS / **/ +/* HAS_UNORDERED: + * This symbol, if defined, indicates that the unordered routine is + * available to check whether two doubles are unordered + * (effectively: whether either of them is NaN) + */ +/*#define HAS_UNORDERED / **/ + +/* HAS_USTAT: + * This symbol, if defined, indicates that the ustat system call is + * available to query file system statistics by dev_t. + */ +/*#define HAS_USTAT / **/ + /* HAS_VFORK: * This symbol, if defined, indicates that vfork() exists. */ /*#define HAS_VFORK / **/ -/* HAS_PSEUDOFORK: - * This symbol, if defined, indicates that an emulation of the - * fork routine is available. - */ -/*#define HAS_PSEUDOFORK / **/ - /* Signal_t: * This symbol's value is either "void" or "int", corresponding to the * appropriate return type of a signal handler. Thus, you can declare @@ -2299,14 +2627,57 @@ */ #define Signal_t int /* Signal handler's return type */ -/* HASVOLATILE: - * This symbol, if defined, indicates that this C compiler knows about - * the volatile declaration. +/* HAS_VPRINTF: + * This symbol, if defined, indicates that the vprintf routine is available + * to printf with a pointer to an argument list. If unavailable, you + * may need to write your own, probably in terms of _doprnt(). */ -/*#define HASVOLATILE / **/ -#ifndef HASVOLATILE -#define volatile -#endif +/* USE_CHAR_VSPRINTF: + * This symbol is defined if this system has vsprintf() returning type + * (char*). The trend seems to be to declare it as "int vsprintf()". It + * is up to the package author to declare vsprintf correctly based on the + * symbol. + */ +#define HAS_VPRINTF /**/ +/*#define USE_CHAR_VSPRINTF / **/ + +/* HAS_WRITEV: + * This symbol, if defined, indicates that the writev routine is + * available to do scatter writes. + */ +/*#define HAS_WRITEV / **/ + +/* USE_DYNAMIC_LOADING: + * This symbol, if defined, indicates that dynamic loading of + * some sort is available. + */ +/*#define USE_DYNAMIC_LOADING / **/ + +/* DOUBLESIZE: + * This symbol contains the size of a double, so that the C preprocessor + * can make decisions based on it. + */ +#define DOUBLESIZE 8 /**/ + +/* EBCDIC: + * This symbol, if defined, indicates that this system uses + * EBCDIC encoding. + */ +/*#define EBCDIC / **/ + +/* FFLUSH_NULL: + * This symbol, if defined, tells that fflush(NULL) does flush + * all pending stdio output. + */ +/* FFLUSH_ALL: + * This symbol, if defined, tells that to flush + * all pending stdio output one must loop through all + * the stdio file handles stored in an array and fflush them. + * Note that if fflushNULL is defined, fflushall will not + * even be probed for and will be left undefined. + */ +/*#define FFLUSH_NULL / **/ +/*#define FFLUSH_ALL / **/ /* Fpos_t: * This symbol holds the type used to declare file positions in libc. @@ -2340,25 +2711,54 @@ */ #define Gid_t int /* Type for getgid(), etc... */ -/* I_DIRENT: - * This symbol, if defined, indicates to the C program that it should - * include <dirent.h>. Using this symbol also triggers the definition - * of the Direntry_t define which ends up being 'struct dirent' or - * 'struct direct' depending on the availability of <dirent.h>. +/* Groups_t: + * This symbol holds the type used for the second argument to + * getgroups() and setgroups(). Usually, this is the same as + * gidtype (gid_t) , but sometimes it isn't. + * It can be int, ushort, gid_t, etc... + * It may be necessary to include <sys/types.h> to get any + * typedef'ed information. This is only required if you have + * getgroups() or setgroups().. */ -/* DIRNAMLEN: - * This symbol, if defined, indicates to the C program that the length - * of directory entry names is provided by a d_namlen field. Otherwise - * you need to do strlen() on the d_name field. +#if defined(HAS_GETGROUPS) || defined(HAS_SETGROUPS) +#define Groups_t int /* Type for 2nd arg to [sg]etgroups() */ +#endif + +/* DB_Prefix_t: + * This symbol 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 u_int32_t. */ -/* Direntry_t: - * 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. +/* DB_Hash_t: + * This symbol 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. */ -#define I_DIRENT /**/ -/*#define DIRNAMLEN / **/ -#define Direntry_t struct dirent +/* DB_VERSION_MAJOR_CFG: + * This symbol, if defined, defines the major version number of + * Berkeley DB found in the <db.h> header when Perl was configured. + */ +/* DB_VERSION_MINOR_CFG: + * This symbol, if defined, defines the minor version number of + * Berkeley DB found in the <db.h> header when Perl was configured. + * For DB version 1 this is always 0. + */ +/* DB_VERSION_PATCH_CFG: + * This symbol, if defined, defines the patch version number of + * Berkeley DB found in the <db.h> header when Perl was configured. + * For DB version 1 this is always 0. + */ +#define DB_Hash_t u_int32_t /**/ +#define DB_Prefix_t size_t /**/ +#define DB_VERSION_MAJOR_CFG /**/ +#define DB_VERSION_MINOR_CFG /**/ +#define DB_VERSION_PATCH_CFG /**/ + +/* I_FP_CLASS: + * This symbol, if defined, indicates that <fp_class.h> exists and + * should be included. + */ +/*#define I_FP_CLASS / **/ /* I_GRP: * This symbol, if defined, indicates to the C program that it should @@ -2371,50 +2771,35 @@ /*#define I_GRP / **/ /*#define GRPASSWD / **/ +/* I_IEEEFP: + * This symbol, if defined, indicates that <ieeefp.h> exists and + * should be included. + */ +/*#define I_IEEEFP / **/ + +/* I_INTTYPES: + * This symbol, if defined, indicates to the C program that it should + * include <inttypes.h>. + */ +/*#define I_INTTYPES / **/ + +/* I_LIBUTIL: + * This symbol, if defined, indicates that <libutil.h> exists and + * should be included. + */ +/*#define I_LIBUTIL / **/ + /* I_MACH_CTHREADS: * This symbol, if defined, indicates to the C program that it should * include <mach/cthreads.h>. */ /*#define I_MACH_CTHREADS / **/ -/* I_NDBM: - * This symbol, if defined, indicates that <ndbm.h> exists and should - * be included. - */ -/* I_GDBMNDBM: - * This symbol, if defined, indicates that <gdbm/ndbm.h> exists and should - * be included. This was the location of the ndbm.h compatibility file - * in RedHat 7.1. - */ -/* I_GDBM_NDBM: - * This symbol, if defined, indicates that <gdbm-ndbm.h> exists and should - * be included. This is the location of the ndbm.h compatibility file - * in Debian 4.0. - */ -/* NDBM_H_USES_PROTOTYPES: - * This symbol, if defined, indicates that <ndbm.h> uses real ANSI C - * prototypes instead of K&R style function declarations without any - * parameter information. While ANSI C prototypes are supported in C++, - * K&R style function declarations will yield errors. - */ -/* GDBMNDBM_H_USES_PROTOTYPES: - * This symbol, if defined, indicates that <gdbm/ndbm.h> uses real ANSI C - * prototypes instead of K&R style function declarations without any - * parameter information. While ANSI C prototypes are supported in C++, - * K&R style function declarations will yield errors. - */ -/* GDBM_NDBM_H_USES_PROTOTYPES: - * This symbol, if defined, indicates that <gdbm-ndbm.h> uses real ANSI C - * prototypes instead of K&R style function declarations without any - * parameter information. While ANSI C prototypes are supported in C++, - * K&R style function declarations will yield errors. +/* I_MNTENT: + * This symbol, if defined, indicates that <mntent.h> exists and + * should be included. */ -/*#define I_NDBM / **/ -/*#define I_GDBMNDBM / **/ -/*#define I_GDBM_NDBM / **/ -/*#define NDBM_H_USES_PROTOTYPES / **/ -/*#define GDBMNDBM_H_USES_PROTOTYPES / **/ -/*#define GDBM_NDBM_H_USES_PROTOTYPES / **/ +/*#define I_MNTENT / **/ /* I_NETDB: * This symbol, if defined, indicates that <netdb.h> exists and @@ -2422,11 +2807,23 @@ */ /*#define I_NETDB / **/ -/* I_NET_ERRNO: - * This symbol, if defined, indicates that <net/errno.h> exists and +/* I_NETINET_TCP: + * This symbol, if defined, indicates to the C program that it should + * include <netinet/tcp.h>. + */ +/*#define I_NETINET_TCP / **/ + +/* I_POLL: + * This symbol, if defined, indicates that <poll.h> exists and * should be included. */ -/*#define I_NET_ERRNO / **/ +/*#define I_POLL / **/ + +/* I_PROT: + * This symbol, if defined, indicates that <prot.h> exists and + * should be included. + */ +/*#define I_PROT / **/ /* I_PTHREAD: * This symbol, if defined, indicates to the C program that it should @@ -2480,17 +2877,52 @@ /*#define PWGECOS / **/ /*#define PWPASSWD / **/ -/* I_SYS_ACCESS: - * This symbol, if defined, indicates to the C program that it should - * include <sys/access.h>. +/* I_SHADOW: + * This symbol, if defined, indicates that <shadow.h> exists and + * should be included. */ -/*#define I_SYS_ACCESS / **/ +/*#define I_SHADOW / **/ -/* I_SYS_SECURITY: - * This symbol, if defined, indicates to the C program that it should - * include <sys/security.h>. +/* I_SOCKS: + * This symbol, if defined, indicates that <socks.h> exists and + * should be included. */ -/*#define I_SYS_SECURITY / **/ +/*#define I_SOCKS / **/ + +/* I_SUNMATH: + * This symbol, if defined, indicates that <sunmath.h> exists and + * should be included. + */ +/*#define I_SUNMATH / **/ + +/* I_SYSLOG: + * This symbol, if defined, indicates that <syslog.h> exists and + * should be included. + */ +/*#define I_SYSLOG / **/ + +/* I_SYSMODE: + * This symbol, if defined, indicates that <sys/mode.h> exists and + * should be included. + */ +/*#define I_SYSMODE / **/ + +/* I_SYS_MOUNT: + * This symbol, if defined, indicates that <sys/mount.h> exists and + * should be included. + */ +/*#define I_SYS_MOUNT / **/ + +/* I_SYS_STATFS: + * This symbol, if defined, indicates that <sys/statfs.h> exists. + */ +/*#define I_SYS_STATFS / **/ + +/* I_SYS_STATVFS: + * This symbol, if defined, indicates that <sys/statvfs.h> exists and + * should be included. + */ +/*#define I_SYS_STATVFS / **/ /* I_SYSUIO: * This symbol, if defined, indicates that <sys/uio.h> exists and @@ -2498,16 +2930,44 @@ */ /*#define I_SYSUIO / **/ -/* I_STDARG: - * This symbol, if defined, indicates that <stdarg.h> exists and should - * be included. +/* I_SYSUTSNAME: + * This symbol, if defined, indicates that <sys/utsname.h> exists and + * should be included. */ -/* I_VARARGS: +/*#define I_SYSUTSNAME / **/ + +/* I_SYS_VFS: + * This symbol, if defined, indicates that <sys/vfs.h> exists and + * should be included. + */ +/*#define I_SYS_VFS / **/ + +/* I_TIME: * This symbol, if defined, indicates to the C program that it should - * include <varargs.h>. + * include <time.h>. */ -#define I_STDARG /**/ -/*#define I_VARARGS / **/ +/* I_SYS_TIME: + * This symbol, if defined, indicates to the C program that it should + * include <sys/time.h>. + */ +/* I_SYS_TIME_KERNEL: + * This symbol, if defined, indicates to the C program that it should + * include <sys/time.h> with KERNEL defined. + */ +/* HAS_TM_TM_ZONE: + * This symbol, if defined, indicates to the C program that + * the struct tm has a tm_zone field. + */ +#define I_TIME /**/ +/*#define I_SYS_TIME / **/ +/*#define I_SYS_TIME_KERNEL / **/ +/*#define HAS_TM_TM_ZONE / **/ + +/* I_USTAT: + * This symbol, if defined, indicates that <ustat.h> exists and + * should be included. + */ +/*#define I_USTAT / **/ /* PERL_INC_VERSION_LIST: * This variable specifies the list of subdirectories in over @@ -2516,7 +2976,7 @@ * for a C initialization string. See the inc_version_list entry * in Porting/Glossary for more details. */ -/*#define PERL_INC_VERSION_LIST NULL / **/ +#define PERL_INC_VERSION_LIST NULL /**/ /* INSTALL_USR_BIN_PERL: * This symbol, if defined, indicates that Perl is to be installed @@ -2524,6 +2984,27 @@ */ /*#define INSTALL_USR_BIN_PERL / **/ +/* PERL_PRIfldbl: + * This symbol, if defined, contains the string used by stdio to + * format long doubles (format 'f') for output. + */ +/* PERL_PRIgldbl: + * This symbol, if defined, contains the string used by stdio to + * format long doubles (format 'g') for output. + */ +/* PERL_PRIeldbl: + * This symbol, if defined, contains the string used by stdio to + * format long doubles (format 'e') for output. + */ +/* PERL_SCNfldbl: + * This symbol, if defined, contains the string used by stdio to + * format long doubles (format 'f') for input. + */ +/*#define PERL_PRIfldbl "llf" / **/ +/*#define PERL_PRIgldbl "llg" / **/ +/*#define PERL_PRIeldbl "lle" / **/ +/*#define PERL_SCNfldbl "llf" / **/ + /* Off_t: * This symbol holds the type used to declare offsets in the kernel. * It can be int, long, off_t, etc... It may be necessary to include @@ -2547,12 +3028,7 @@ * This symbol is the type of pointer returned by malloc and realloc. */ #define Malloc_t void * /**/ -#define Free_t void /**/ - -/* PERL_MALLOC_WRAP: - * This symbol, if defined, indicates that we'd like malloc wrap checks. - */ -/*#define PERL_MALLOC_WRAP / **/ +#define Free_t int /**/ /* MYMALLOC: * This symbol, if defined, indicates that we're using our own malloc. @@ -2560,13 +3036,51 @@ /*#define MYMALLOC / **/ /* Mode_t: - * This symbol holds the type used to declare file modes + * This symbol holds the type used to declare file modes * for systems calls. It is usually mode_t, but may be * int or unsigned short. It may be necessary to include <sys/types.h> * to get any typedef'ed information. */ #define Mode_t int /* file mode parameter for system calls */ +/* VAL_O_NONBLOCK: + * This symbol is to be used during open() or fcntl(F_SETFL) to turn on + * non-blocking I/O for the file descriptor. Note that there is no way + * back, i.e. you cannot turn it blocking again this way. If you wish to + * alternatively switch between blocking and non-blocking, use the + * ioctl(FIOSNBIO) call instead, but that is not supported by all devices. + */ +/* VAL_EAGAIN: + * This symbol holds the errno error code set by read() when no data was + * present on the non-blocking file descriptor. + */ +/* RD_NODATA: + * This symbol holds the return code from read() when no data is present + * on the non-blocking file descriptor. Be careful! If EOF_NONBLOCK is + * not defined, then you can't distinguish between no data and EOF by + * issuing a read(). You'll have to find another way to tell for sure! + */ +/* EOF_NONBLOCK: + * This symbol, if defined, indicates to the C program that a read() on + * a non-blocking file descriptor will return 0 on EOF, and not the value + * held in RD_NODATA (-1 usually, in that case!). + */ +#define VAL_O_NONBLOCK O_NONBLOCK +#define VAL_EAGAIN EAGAIN +#define RD_NODATA -1 +#undef EOF_NONBLOCK + +/* NEED_VA_COPY: + * This symbol, if defined, indicates that the system stores + * the variable argument list datatype, va_list, in a format + * that cannot be copied by simple assignment, so that some + * other means must be used when copying is required. + * As such systems vary in their provision (or non-provision) + * of copying mechanisms, handy.h defines a platform- + * independent macro, Perl_va_copy(src, dst), to do the job. + */ +/*#define NEED_VA_COPY / **/ + /* Netdb_host_t: * This symbol holds the type used for the 1st argument * to gethostbyaddr(). @@ -2596,7 +3110,151 @@ * and architecture-specific directories. See PERL_INC_VERSION_LIST * for more details. */ -/*#define PERL_OTHERLIBDIRS " " / **/ +/*#define PERL_OTHERLIBDIRS "" / **/ + +/* IVTYPE: + * This symbol defines the C type used for Perl's IV. + */ +/* UVTYPE: + * This symbol defines the C type used for Perl's UV. + */ +/* I8TYPE: + * This symbol defines the C type used for Perl's I8. + */ +/* U8TYPE: + * This symbol defines the C type used for Perl's U8. + */ +/* I16TYPE: + * This symbol defines the C type used for Perl's I16. + */ +/* U16TYPE: + * This symbol defines the C type used for Perl's U16. + */ +/* I32TYPE: + * This symbol defines the C type used for Perl's I32. + */ +/* U32TYPE: + * This symbol defines the C type used for Perl's U32. + */ +/* I64TYPE: + * This symbol defines the C type used for Perl's I64. + */ +/* U64TYPE: + * This symbol defines the C type used for Perl's U64. + */ +/* NVTYPE: + * This symbol defines the C type used for Perl's NV. + */ +/* IVSIZE: + * This symbol contains the sizeof(IV). + */ +/* UVSIZE: + * This symbol contains the sizeof(UV). + */ +/* I8SIZE: + * This symbol contains the sizeof(I8). + */ +/* U8SIZE: + * This symbol contains the sizeof(U8). + */ +/* I16SIZE: + * This symbol contains the sizeof(I16). + */ +/* U16SIZE: + * This symbol contains the sizeof(U16). + */ +/* I32SIZE: + * This symbol contains the sizeof(I32). + */ +/* U32SIZE: + * This symbol contains the sizeof(U32). + */ +/* I64SIZE: + * This symbol contains the sizeof(I64). + */ +/* U64SIZE: + * This symbol contains the sizeof(U64). + */ +/* NVSIZE: + * This symbol contains the sizeof(NV). + */ +/* NV_PRESERVES_UV: + * This symbol, if defined, indicates that a variable of type NVTYPE + * can preserve all the bits of a variable of type UVTYPE. + */ +/* NV_PRESERVES_UV_BITS: + * This symbol contains the number of bits a variable of type NVTYPE + * can preserve of a variable of type UVTYPE. + */ +#define IVTYPE long /**/ +#define UVTYPE unsigned long /**/ +#define I8TYPE char /**/ +#define U8TYPE unsigned char /**/ +#define I16TYPE short /**/ +#define U16TYPE unsigned short /**/ +#define I32TYPE long /**/ +#define U32TYPE unsigned long /**/ +#ifdef HAS_QUAD +#define I64TYPE int64_t /**/ +#define U64TYPE uint64_t /**/ +#endif +#define NVTYPE double /**/ +#define IVSIZE 4 /**/ +#define UVSIZE 4 /**/ +#define I8SIZE 1 /**/ +#define U8SIZE 1 /**/ +#define I16SIZE 2 /**/ +#define U16SIZE 2 /**/ +#define I32SIZE 4 /**/ +#define U32SIZE 4 /**/ +#ifdef HAS_QUAD +#define I64SIZE 8 /**/ +#define U64SIZE 8 /**/ +#endif +#define NVSIZE 8 /**/ +#undef NV_PRESERVES_UV +#define NV_PRESERVES_UV_BITS 0 + +/* IVdf: + * This symbol defines the format string used for printing a Perl IV + * as a signed decimal integer. + */ +/* UVuf: + * This symbol defines the format string used for printing a Perl UV + * as an unsigned decimal integer. + */ +/* UVof: + * This symbol defines the format string used for printing a Perl UV + * as an unsigned octal integer. + */ +/* UVxf: + * This symbol defines the format string used for printing a Perl UV + * as an unsigned hexadecimal integer in lowercase abcdef. + */ +/* UVXf: + * This symbol defines the format string used for printing a Perl UV + * as an unsigned hexadecimal integer in uppercase ABCDEF. + */ +/* NVef: + * This symbol defines the format string used for printing a Perl NV + * using %e-ish floating point format. + */ +/* NVff: + * This symbol defines the format string used for printing a Perl NV + * using %f-ish floating point format. + */ +/* NVgf: + * This symbol defines the format string used for printing a Perl NV + * using %g-ish floating point format. + */ +#define IVdf "ld" /**/ +#define UVuf "lu" /**/ +#define UVof "lo" /**/ +#define UVxf "lx" /**/ +#define UVXf "lX" /**/ +#define NVef "e" /**/ +#define NVff "f" /**/ +#define NVgf "g" /**/ /* Pid_t: * This symbol holds the type used to declare process ids in the kernel. @@ -2615,44 +3273,59 @@ * This symbol contains the ~name expanded version of PRIVLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define PRIVLIB "/usr/local/lib/perl5/5.11" /**/ -#define PRIVLIB_EXP "/usr/local/lib/perl5/5.11" /**/ +#define PRIVLIB "/usr/local/lib/perl5/5.7" /**/ +#define PRIVLIB_EXP "/usr/local/lib/perl5/5.7" /**/ -/* CAN_PROTOTYPE: - * If defined, this macro indicates that the C compiler can handle - * function prototypes. +/* PTRSIZE: + * This symbol contains the size of a pointer, so that the C preprocessor + * can make decisions based on it. It will be sizeof(void *) if + * the compiler supports (void *); otherwise it will be + * sizeof(char *). */ -/* _: - * This macro is used to declare function parameters for folks who want - * to make declarations with prototypes using a different style than - * the above macros. Use double parentheses. For example: - * - * int main _((int argc, char *argv[])); +#define PTRSIZE 4 /**/ + +/* Drand01: + * This macro is to be used to generate uniformly distributed + * random numbers over the range [0., 1.[. You may have to supply + * an 'extern double drand48();' in your program since SunOS 4.1.3 + * doesn't provide you with anything relevant in its headers. + * See HAS_DRAND48_PROTO. */ -/*#define CAN_PROTOTYPE / **/ -#ifdef CAN_PROTOTYPE -#define _(args) args -#else -#define _(args) () -#endif +/* Rand_seed_t: + * This symbol defines the type of the argument of the + * random seed function. + */ +/* seedDrand01: + * This symbol defines the macro to be used in seeding the + * random number generator (see Drand01). + */ +/* RANDBITS: + * This symbol indicates how many bits are produced by the + * function used to generate normalized random numbers. + * Values include 15, 16, 31, and 48. + */ +#define Drand01() ((rand() & 0x7FFF) / (double) ((unsigned long)1 << 15)) /**/ +#define Rand_seed_t int /**/ +#define seedDrand01(x) srand((Rand_seed_t)x) /**/ +#define RANDBITS 48 /**/ + +/* SELECT_MIN_BITS: + * This symbol 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), especially many little-endians do + * the latter. This is only useful if you have select(), naturally. + */ +#define SELECT_MIN_BITS 32 /**/ /* Select_fd_set_t: * This symbol 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. This is only useful if you + * is defined, and 'int *' otherwise. This is only useful if you * have select(), of course. */ #define Select_fd_set_t int /**/ -/* SH_PATH: - * This symbol contains the full pathname to the shell used on this - * on this system to execute Bourne shell scripts. Usually, this will be - * /bin/sh, though it's possible that some systems will have /bin/ksh, - * /bin/pdksh, /bin/ash, /bin/bash, or even something such as - * D:/bin/sh.exe. - */ -#define SH_PATH "/bin/sh" /**/ - /* SIG_NAME: * This symbol contains a list of signal names in order of * signal number. This is intended @@ -2665,9 +3338,7 @@ * etc., where nn is the actual signal number (e.g. NUM37). * The signal number for sig_name[i] is stored in sig_num[i]. * The last element is 0 to terminate the list with a NULL. This - * corresponds to the 0 at the end of the sig_name_init list. - * Note that this variable is initialized from the sig_name_init, - * not from sig_name (which is unused). + * corresponds to the 0 at the end of the sig_num list. */ /* SIG_NUM: * This symbol contains a list of signal numbers, in the same order as the @@ -2676,18 +3347,16 @@ * The signals in the list are separated with commas, and the indices * within that list and the SIG_NAME list match, so it's easy to compute * the signal name from a number or vice versa at the price of a small - * dynamic linear lookup. + * dynamic linear lookup. * Duplicates are allowed, but are moved to the end of the list. * The signal number corresponding to sig_name[i] is sig_number[i]. - * if (i < NSIG) then sig_number[i] == i. + * if (i < NSIG) then sig_number[i] == i. * The last element is 0, corresponding to the 0 at the end of - * the sig_name_init list. - * Note that this variable is initialized from the sig_num_init, - * not from sig_num (which is unused). + * the sig_name list. */ /* SIG_SIZE: - * This variable contains the number of elements of the SIG_NAME - * and SIG_NUM arrays, excluding the final NULL entry. + * This variable contains the number of elements of the sig_name + * and sig_num arrays, excluding the final NULL entry. */ #define SIG_NAME 0 /**/ #define SIG_NUM 0 /**/ @@ -2708,8 +3377,8 @@ * This symbol contains the ~name expanded version of SITEARCH, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -/*#define SITEARCH "/usr/local/lib/perl5/5.11/unknown" / **/ -/*#define SITEARCH_EXP "/usr/local/lib/perl5/5.11/unknown" / **/ +#define SITEARCH "" /**/ +#define SITEARCH_EXP "" /**/ /* SITELIB: * This symbol contains the name of the private library for this package. @@ -2731,9 +3400,9 @@ * 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. */ -#define SITELIB "/usr/local/lib/perl5/5.11" /**/ -#define SITELIB_EXP "/usr/local/lib/perl5/5.11" /**/ -#define SITELIB_STEM "/usr/local/lib/perl5" /**/ +#define SITELIB "" /**/ +#define SITELIB_EXP "" /**/ +#define SITELIB_STEM "" /**/ /* Size_t_size: * This symbol holds the size of a Size_t in bytes. @@ -2746,7 +3415,7 @@ * unsigned long, int, etc. It may be necessary to include * <sys/types.h> to get any typedef'ed information. */ -#define Size_t size_t /* length paramater for string functions */ +#define Size_t int /* length paramater for string functions */ /* Sock_size_t: * This symbol holds the type used for the size argument of @@ -2754,12 +3423,40 @@ */ #define Sock_size_t int /**/ +/* SSize_t: + * This symbol holds the type used by functions that return + * a count of bytes or an error condition. It must be a signed type. + * It is usually ssize_t, but may be long or int, etc. + * It may be necessary to include <sys/types.h> or <unistd.h> + * to get any typedef'ed information. + * We will pick a type such that sizeof(SSize_t) == sizeof(Size_t). + */ +#define SSize_t int /* signed count of bytes */ + +/* STARTPERL: + * This variable contains the string to put in front of a perl + * script to make sure (one hopes) that it runs with perl and not + * some shell. + */ +#define STARTPERL "" /**/ + /* STDCHAR: * This symbol is defined to be the type of char used in stdio.h. * It has the values "unsigned char" or "char". */ #define STDCHAR char /**/ +/* HAS_STDIO_STREAM_ARRAY: + * This symbol, if defined, tells that there is an array + * holding the stdio streams. + */ +/* STDIO_STREAM_ARRAY: + * This symbol tells the name of the array holding the stdio streams. + * Usual values include _iob, __iob, and __sF. + */ +/*#define HAS_STDIO_STREAM_ARRAY / **/ +#define STDIO_STREAM_ARRAY + /* Uid_t_f: * This symbol defines the format string used for printing a Uid_t. */ @@ -2783,6 +3480,81 @@ */ #define Uid_t int /* UID type */ +/* USE_64_BIT_INT: + * This symbol, if defined, indicates that 64-bit integers should + * be used when available. If not defined, the native integers + * will be employed (be they 32 or 64 bits). The minimal possible + * 64-bitness is used, 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. + */ +/* USE_64_BIT_ALL: + * This symbol, if defined, indicates that 64-bit integers should + * be used when available. If not defined, the native integers + * will be used (be they 32 or 64 bits). 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. + */ +#ifndef USE_64_BIT_INT +/*#define USE_64_BIT_INT / **/ +#endif + +#ifndef USE_64_BIT_ALL +/*#define USE_64_BIT_ALL / **/ +#endif + +/* USE_LARGE_FILES: + * This symbol, if defined, indicates that large file support + * should be used when available. + */ +#ifndef USE_LARGE_FILES +/*#define USE_LARGE_FILES / **/ +#endif + +/* USE_LONG_DOUBLE: + * This symbol, if defined, indicates that long doubles should + * be used when available. + */ +#ifndef USE_LONG_DOUBLE +/*#define USE_LONG_DOUBLE / **/ +#endif + +/* USE_MORE_BITS: + * This symbol, if defined, indicates that 64-bit interfaces and + * long doubles should be used when available. + */ +#ifndef USE_MORE_BITS +/*#define USE_MORE_BITS / **/ +#endif + +/* MULTIPLICITY: + * This symbol, if defined, indicates that Perl should + * be built to use multiplicity. + */ +#ifndef MULTIPLICITY +/*#define MULTIPLICITY / **/ +#endif + +/* USE_PERLIO: + * This symbol, if defined, indicates that the PerlIO abstraction should + * be used throughout. If not defined, stdio should be + * used in a fully backward compatible manner. + */ +#ifndef USE_PERLIO +/*#define USE_PERLIO / **/ +#endif + +/* USE_SOCKS: + * This symbol, if defined, indicates that Perl should + * be built to use socks. + */ +#ifndef USE_SOCKS +/*#define USE_SOCKS / **/ +#endif + /* USE_ITHREADS: * This symbol, if defined, indicates that Perl should be built to * use the interpreter-based threading implementation. @@ -2790,7 +3562,6 @@ /* USE_5005THREADS: * This symbol, if defined, indicates that Perl should be built to * use the 5.005-based threading implementation. - * Only valid up to 5.8.x. */ /* OLD_PTHREADS_API: * This symbol, if defined, indicates that Perl should @@ -2813,11 +3584,11 @@ * If defined, this symbol contains the name of a private library. * The library is private in the sense that it needn't be in anyone's * execution path, but it should be accessible by the world. - * It may have a ~ on the front. + * It may have a ~ on the front. * The standard distribution will put nothing in this directory. * Vendors who distribute perl may wish to place their own * architecture-dependent modules and extensions in this directory with - * MakeMaker Makefile.PL INSTALLDIRS=vendor + * MakeMaker Makefile.PL INSTALLDIRS=vendor * or equivalent. See INSTALL for details. */ /* PERL_VENDORARCH_EXP: @@ -2864,498 +3635,137 @@ #define M_VOID /* Xenix strikes again */ #endif -/* USE_CROSS_COMPILE: - * This symbol, if defined, indicates that Perl is being cross-compiled. - */ -/* PERL_TARGETARCH: - * This symbol, if defined, indicates the target architecture - * Perl has been cross-compiled to. Undefined if not a cross-compile. - */ -#ifndef USE_CROSS_COMPILE -/*#define USE_CROSS_COMPILE / **/ -#define PERL_TARGETARCH "" /**/ -#endif - -/* MEM_ALIGNBYTES: - * This symbol contains 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. - */ -#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH) -# define MEM_ALIGNBYTES 8 -#else -#define MEM_ALIGNBYTES 4 -#endif - -/* BYTEORDER: - * This symbol holds the hexadecimal constant defined in byteorder, - * in a UV, i.e. 0x1234 or 0x4321 or 0x12345678, etc... - * If the compiler supports cross-compiling or multiple-architecture - * binaries (eg. on NeXT systems), use compiler-defined macros to - * determine the byte order. - * On NeXT 3.2 (and greater), you can build "Fat" Multiple Architecture - * Binaries (MAB) on either big endian or little endian machines. - * The endian-ness is available at compile-time. This only matters - * for perl, where the config.h can be generated and installed on - * one system, and used by a different architecture to build an - * extension. Older versions of NeXT that might not have - * defined either *_ENDIAN__ were all on Motorola 680x0 series, - * so the default case (for NeXT) is big endian to catch them. - * This might matter for NeXT 3.0. - */ -#if defined(USE_CROSS_COMPILE) || defined(MULTIARCH) -# ifdef __LITTLE_ENDIAN__ -# if LONGSIZE == 4 -# define BYTEORDER 0x1234 -# else -# if LONGSIZE == 8 -# define BYTEORDER 0x12345678 -# endif -# endif -# else -# ifdef __BIG_ENDIAN__ -# if LONGSIZE == 4 -# define BYTEORDER 0x4321 -# else -# if LONGSIZE == 8 -# define BYTEORDER 0x87654321 -# endif -# endif -# endif -# endif -# if !defined(BYTEORDER) && (defined(NeXT) || defined(__NeXT__)) -# define BYTEORDER 0x4321 -# endif -#else -#define BYTEORDER 0x1234 /* large digits for MSB */ -#endif /* NeXT */ - -/* CASTI32: - * This symbol is defined if the C compiler can cast negative - * or large floating point numbers to 32-bit ints. - */ -/*#define CASTI32 / **/ - -/* CASTNEGFLOAT: - * This symbol is defined if the C compiler can cast negative - * numbers to unsigned longs, ints and shorts. - */ -/* CASTFLAGS: - * This symbol contains flags that say what difficulties the compiler - * has casting odd floating values to unsigned long: - * 0 = ok - * 1 = couldn't cast < 0 - * 2 = couldn't cast >= 0x80000000 - * 4 = couldn't cast in argument expression list - */ -/*#define CASTNEGFLOAT / **/ -#define CASTFLAGS 0 /**/ - -/* VOID_CLOSEDIR: - * This symbol, if defined, indicates that the closedir() routine - * does not return a value. - */ -/*#define VOID_CLOSEDIR / **/ - -/* HAS_FD_SET: - * This symbol, when defined, indicates presence of the fd_set typedef - * in <sys/types.h> - */ -/*#define HAS_FD_SET / **/ - -/* Gconvert: - * This preprocessor macro is defined to convert a floating point - * number to a string without a trailing decimal point. This - * emulates the behavior of sprintf("%g"), but is sometimes much more - * efficient. If gconvert() is not available, but gcvt() drops the - * trailing decimal point, then gcvt() is used. If all else fails, - * a macro using sprintf("%g") is used. Arguments for the Gconvert - * macro are: value, number of digits, whether trailing zeros should - * be retained, and the output buffer. - * The usual values are: - * d_Gconvert='gconvert((x),(n),(t),(b))' - * d_Gconvert='gcvt((x),(n),(b))' - * d_Gconvert='sprintf((b),"%.*g",(n),(x))' - * The last two assume trailing zeros should not be kept. - */ -#define Gconvert(x,n,t,b) sprintf((b),"%.*g",(n),(x)) - -/* HAS_GETPAGESIZE: - * This symbol, if defined, indicates that the getpagesize system call - * is available to get system page size, which is the granularity of - * many memory management calls. - */ -/*#define HAS_GETPAGESIZE / **/ +/* PERL_XS_APIVERSION: + * This variable contains the version of the oldest perl binary + * compatible with the present perl. perl.c:incpush() and + * lib/lib.pm will automatically search in for older + * directories across major versions back to xs_apiversion. + * 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. + * Since this can depend on compile time options + * it is set by Configure. Other non-default sources + * of potential incompatibility, such as multiplicity, threads, + * debugging, 64bits, sfio, etc., are not checked for currently, + * though in principle we could go snooping around in old + * Config.pm files. + */ +/* PERL_PM_APIVERSION: + * This variable contains the version of the oldest perl + * compatible with the present perl. (That is, pure perl modules + * written for pm_apiversion will still work for the current + * version). perl.c:incpush() and lib/lib.pm will automatically + * search in for older directories across major versions + * back to pm_apiversion. This is only useful if you have a perl + * library directory tree structured like the default one. The + * versioned site_perl library was introduced in 5.005, so that's + * the default setting for this variable. It's hard to imagine + * it changing before Perl6. It is included here for symmetry + * with xs_apiveprsion -- the searching algorithms will + * (presumably) be similar. + * See the INSTALL file for how this works. + */ +#define PERL_XS_APIVERSION "5.008" +#define PERL_PM_APIVERSION "5.005" -/* HAS_GNULIBC: - * This symbol, if defined, indicates to the C program that - * the GNU C library is being used. A better check is to use - * the __GLIBC__ and __GLIBC_MINOR__ symbols supplied with glibc. +/* HAS_CRYPT: + * This symbol, if defined, indicates that the crypt routine is available + * to encrypt passwords and the like. */ -/*#define HAS_GNULIBC / **/ -#if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE) -# define _GNU_SOURCE -#endif +/*#define HAS_CRYPT / **/ -/* HAS_ISASCII: - * This manifest constant lets the C program know that isascii - * is available. +/* SETUID_SCRIPTS_ARE_SECURE_NOW: + * This symbol, if defined, indicates that the bug that prevents + * setuid scripts from being secure is not present in this kernel. */ -/*#define HAS_ISASCII / **/ - -/* HAS_LCHOWN: - * This symbol, if defined, indicates that the lchown routine is - * available to operate on a symbolic link (instead of following the - * link). +/* DOSUID: + * This symbol, if defined, indicates that the C program should + * check the script that it is executing for setuid/setgid bits, and + * attempt to emulate setuid/setgid on systems that have disabled + * setuid #! scripts because the kernel can't do it securely. + * It is up to the package designer to make sure that this emulation + * is done securely. Among other things, it should do an fstat on + * the script it just opened to make sure it really is a setuid/setgid + * script, it should make sure the arguments passed correspond exactly + * to the argument on the #! line, and it should not trust any + * subprocesses to which it must pass the filename rather than the + * file descriptor of the script to be executed. */ -/*#define HAS_LCHOWN / **/ +/*#define SETUID_SCRIPTS_ARE_SECURE_NOW / **/ +/*#define DOSUID / **/ -/* HAS_OPEN3: - * This manifest constant lets the C program know that the three - * argument form of open(2) is available. +/* Shmat_t: + * This symbol holds the return type of the shmat() system call. + * Usually set to 'void *' or 'char *'. */ -/*#define HAS_OPEN3 / **/ - -/* HAS_SAFE_BCOPY: - * This symbol, if defined, indicates that the bcopy routine is available - * to copy potentially overlapping memory blocks. Normally, you should - * probably use memmove() or memcpy(). If neither is defined, roll your - * own version. +/* HAS_SHMAT_PROTOTYPE: + * This symbol, if defined, indicates that the sys/shm.h includes + * a prototype for shmat(). Otherwise, it is up to the program to + * guess one. Shmat_t shmat(int, Shmat_t, int) is a good guess, + * but not always right so it should be emitted by the program only + * when HAS_SHMAT_PROTOTYPE is not defined to avoid conflicting defs. */ -/*#define HAS_SAFE_BCOPY / **/ +#define Shmat_t void * /**/ +/*#define HAS_SHMAT_PROTOTYPE / **/ -/* HAS_SAFE_MEMCPY: - * This symbol, if defined, indicates that the memcpy routine is available - * to copy potentially overlapping memory blocks. If you need to - * copy overlapping memory blocks, you should check HAS_MEMMOVE and - * use memmove() instead, if available. +/* I_NDBM: + * This symbol, if defined, indicates that <ndbm.h> exists and should + * be included. */ -/*#define HAS_SAFE_MEMCPY / **/ +/*#define I_NDBM / **/ -/* HAS_SANE_MEMCMP: - * This symbol, if defined, indicates that the memcmp routine is available - * and can be used to compare relative magnitudes of chars with their high - * bits set. If it is not defined, roll your own version. +/* I_STDARG: + * This symbol, if defined, indicates that <stdarg.h> exists and should + * be included. */ -/*#define HAS_SANE_MEMCMP / **/ - -/* HAS_SIGACTION: - * This symbol, if defined, indicates that Vr4's sigaction() routine - * is available. +/* I_VARARGS: + * This symbol, if defined, indicates to the C program that it should + * include <varargs.h>. */ -/*#define HAS_SIGACTION / **/ +#define I_STDARG /**/ +/*#define I_VARARGS / **/ -/* HAS_SIGSETJMP: - * This variable indicates to the C program that the sigsetjmp() - * routine is available to save the calling process's registers - * and stack environment for later use by siglongjmp(), and - * to optionally save the process's signal mask. See - * Sigjmp_buf, Sigsetjmp, and Siglongjmp. - */ -/* Sigjmp_buf: - * This is the buffer type to be used with Sigsetjmp and Siglongjmp. - */ -/* Sigsetjmp: - * This macro is used in the same way as sigsetjmp(), but will invoke - * traditional setjmp() if sigsetjmp isn't available. - * See HAS_SIGSETJMP. +/* CAN_PROTOTYPE: + * If defined, this macro indicates that the C compiler can handle + * function prototypes. */ -/* Siglongjmp: - * This macro is used in the same way as siglongjmp(), but will invoke - * traditional longjmp() if siglongjmp isn't available. - * See HAS_SIGSETJMP. +/* _: + * This macro is used to declare function parameters for folks who want + * to make declarations with prototypes using a different style than + * the above macros. Use double parentheses. For example: + * + * int main _((int argc, char *argv[])); */ -/*#define HAS_SIGSETJMP / **/ -#ifdef HAS_SIGSETJMP -#define Sigjmp_buf sigjmp_buf -#define Sigsetjmp(buf,save_mask) sigsetjmp((buf),(save_mask)) -#define Siglongjmp(buf,retval) siglongjmp((buf),(retval)) +/*#define CAN_PROTOTYPE / **/ +#ifdef CAN_PROTOTYPE +#define _(args) args #else -#define Sigjmp_buf jmp_buf -#define Sigsetjmp(buf,save_mask) setjmp((buf)) -#define Siglongjmp(buf,retval) longjmp((buf),(retval)) +#define _(args) () #endif -/* USE_STDIO_PTR: - * This symbol is defined if the _ptr and _cnt fields (or similar) - * of the stdio FILE structure can be used to access the stdio buffer - * for a file handle. If this is defined, then the FILE_ptr(fp) - * and FILE_cnt(fp) macros will also be defined and should be used - * to access these fields. - */ -/* FILE_ptr: - * This macro is used to access the _ptr field (or equivalent) of the - * FILE structure pointed to by its argument. This macro will always be - * defined if USE_STDIO_PTR is defined. - */ -/* STDIO_PTR_LVALUE: - * This symbol is defined if the FILE_ptr macro can be used as an - * lvalue. - */ -/* FILE_cnt: - * This macro is used to access the _cnt field (or equivalent) of the - * FILE structure pointed to by its argument. This macro will always be - * defined if USE_STDIO_PTR is defined. - */ -/* STDIO_CNT_LVALUE: - * This symbol is defined if the FILE_cnt macro can be used as an - * lvalue. - */ -/* STDIO_PTR_LVAL_SETS_CNT: - * 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. - */ -/* STDIO_PTR_LVAL_NOCHANGE_CNT: - * This symbol is defined if using the FILE_ptr macro as an lvalue - * to increase the pointer by n leaves File_cnt(fp) unchanged. +/* SH_PATH: + * This symbol contains the full pathname to the shell used on this + * on this system to execute Bourne shell scripts. Usually, this will be + * /bin/sh, though it's possible that some systems will have /bin/ksh, + * /bin/pdksh, /bin/ash, /bin/bash, or even something such as + * D:/bin/sh.exe. */ -/*#define USE_STDIO_PTR / **/ -#ifdef USE_STDIO_PTR -#define FILE_ptr(fp) ((fp)->_IO_read_ptr) -/*#define STDIO_PTR_LVALUE / **/ -#define FILE_cnt(fp) ((fp)->_IO_read_end - (fp)->_IO_read_ptr) -/*#define STDIO_CNT_LVALUE / **/ -/*#define STDIO_PTR_LVAL_SETS_CNT / **/ -/*#define STDIO_PTR_LVAL_NOCHANGE_CNT / **/ -#endif +#define SH_PATH "" /**/ -/* USE_STDIO_BASE: - * This symbol is defined if the _base field (or similar) of the - * stdio FILE structure can be used to access the stdio buffer for - * a file handle. If this is defined, then the FILE_base(fp) macro - * will also be defined and should be used to access this field. - * Also, the FILE_bufsiz(fp) macro will be defined and should be used - * to determine the number of bytes in the buffer. USE_STDIO_BASE - * will never be defined unless USE_STDIO_PTR is. - */ -/* FILE_base: - * This macro is used to access the _base field (or equivalent) of the - * FILE structure pointed to by its argument. This macro will always be - * defined if USE_STDIO_BASE is defined. +/* USE_CROSS_COMPILE: + * This symbol, if defined, indicates that Perl is being cross-compiled. */ -/* FILE_bufsiz: - * This macro is used to determine the number of bytes in the I/O - * buffer pointed to by _base field (or equivalent) of the FILE - * structure pointed to its argument. This macro will always be defined - * if USE_STDIO_BASE is defined. +/* PERL_TARGETARCH: + * This symbol, if defined, indicates the target architecture + * Perl has been cross-compiled to. Undefined if not a cross-compile. */ -/*#define USE_STDIO_BASE / **/ -#ifdef USE_STDIO_BASE -#define FILE_base(fp) ((fp)->_IO_read_base) -#define FILE_bufsiz(fp) ((fp)->_IO_read_end - (fp)->_IO_read_base) +#ifndef USE_CROSS_COMPILE +/*#define USE_CROSS_COMPILE / **/ +#define PERL_TARGETARCH "" /**/ #endif -/* HAS_VPRINTF: - * This symbol, if defined, indicates that the vprintf routine is available - * to printf with a pointer to an argument list. If unavailable, you - * may need to write your own, probably in terms of _doprnt(). - */ -/* USE_CHAR_VSPRINTF: - * This symbol is defined if this system has vsprintf() returning type - * (char*). The trend seems to be to declare it as "int vsprintf()". It - * is up to the package author to declare vsprintf correctly based on the - * symbol. - */ -#define HAS_VPRINTF /**/ -/*#define USE_CHAR_VSPRINTF / **/ - -/* DOUBLESIZE: - * This symbol contains the size of a double, so that the C preprocessor - * can make decisions based on it. - */ -#define DOUBLESIZE 8 /**/ - -/* I_TIME: - * This symbol, if defined, indicates to the C program that it should - * include <time.h>. - */ -/* I_SYS_TIME: - * This symbol, if defined, indicates to the C program that it should - * include <sys/time.h>. - */ -/* I_SYS_TIME_KERNEL: - * This symbol, if defined, indicates to the C program that it should - * include <sys/time.h> with KERNEL defined. - */ -/* HAS_TM_TM_ZONE: - * This symbol, if defined, indicates to the C program that - * the struct tm has a tm_zone field. - */ -/* HAS_TM_TM_GMTOFF: - * This symbol, if defined, indicates to the C program that - * the struct tm has a tm_gmtoff field. - */ -#define I_TIME /**/ -/*#define I_SYS_TIME / **/ -/*#define I_SYS_TIME_KERNEL / **/ -/*#define HAS_TM_TM_ZONE / **/ -/*#define HAS_TM_TM_GMTOFF / **/ - -/* VAL_O_NONBLOCK: - * This symbol is to be used during open() or fcntl(F_SETFL) to turn on - * non-blocking I/O for the file descriptor. Note that there is no way - * back, i.e. you cannot turn it blocking again this way. If you wish to - * alternatively switch between blocking and non-blocking, use the - * ioctl(FIOSNBIO) call instead, but that is not supported by all devices. - */ -/* VAL_EAGAIN: - * This symbol holds the errno error code set by read() when no data was - * present on the non-blocking file descriptor. - */ -/* RD_NODATA: - * This symbol holds the return code from read() when no data is present - * on the non-blocking file descriptor. Be careful! If EOF_NONBLOCK is - * not defined, then you can't distinguish between no data and EOF by - * issuing a read(). You'll have to find another way to tell for sure! - */ -/* EOF_NONBLOCK: - * This symbol, if defined, indicates to the C program that a read() on - * a non-blocking file descriptor will return 0 on EOF, and not the value - * held in RD_NODATA (-1 usually, in that case!). - */ -#define VAL_O_NONBLOCK O_NONBLOCK -#define VAL_EAGAIN EAGAIN -#define RD_NODATA -1 -#undef EOF_NONBLOCK - -/* PTRSIZE: - * This symbol contains the size of a pointer, so that the C preprocessor - * can make decisions based on it. It will be sizeof(void *) if - * the compiler supports (void *); otherwise it will be - * sizeof(char *). - */ -#define PTRSIZE 4 /**/ - -/* Drand01: - * This macro is to be used to generate uniformly distributed - * random numbers over the range [0., 1.[. You may have to supply - * an 'extern double drand48();' in your program since SunOS 4.1.3 - * doesn't provide you with anything relevant in its headers. - * See HAS_DRAND48_PROTO. - */ -/* Rand_seed_t: - * This symbol defines the type of the argument of the - * random seed function. - */ -/* seedDrand01: - * This symbol defines the macro to be used in seeding the - * random number generator (see Drand01). - */ -/* RANDBITS: - * This symbol indicates how many bits are produced by the - * function used to generate normalized random numbers. - * Values include 15, 16, 31, and 48. - */ -#define Drand01() ((rand() & 0x7FFF) / (double) ((unsigned long)1 << 15)) /**/ -#define Rand_seed_t int /**/ -#define seedDrand01(x) srand((Rand_seed_t)x) /**/ -#define RANDBITS 48 /**/ - -/* SSize_t: - * This symbol holds the type used by functions that return - * a count of bytes or an error condition. It must be a signed type. - * It is usually ssize_t, but may be long or int, etc. - * It may be necessary to include <sys/types.h> or <unistd.h> - * to get any typedef'ed information. - * We will pick a type such that sizeof(SSize_t) == sizeof(Size_t). - */ -#define SSize_t int /* signed count of bytes */ - -/* EBCDIC: - * This symbol, if defined, indicates that this system uses - * EBCDIC encoding. - */ -/*#define EBCDIC / **/ - -/* PERL_USE_DEVEL: - * This symbol, if defined, indicates that Perl was configured with - * -Dusedevel, to enable development features. This should not be - * done for production builds. - */ -/*#define PERL_USE_DEVEL / **/ - -/* HAS_ATOLF: - * This symbol, if defined, indicates that the atolf routine is - * available to convert strings into long doubles. - */ -/*#define HAS_ATOLF / **/ - -/* HAS_ATOLL: - * This symbol, if defined, indicates that the atoll routine is - * available to convert strings into long longs. - */ -/*#define HAS_ATOLL / **/ - -/* HAS__FWALK: - * This symbol, if defined, indicates that the _fwalk system call is - * available to apply a function to all the file handles. - */ -/*#define HAS__FWALK / **/ - -/* HAS_AINTL: - * This symbol, if defined, indicates that the aintl routine is - * available. If copysignl is also present we can emulate modfl. - */ -/*#define HAS_AINTL / **/ - -/* HAS_BUILTIN_CHOOSE_EXPR: - * Can we handle GCC builtin for compile-time ternary-like expressions - */ -/* HAS_BUILTIN_EXPECT: - * Can we handle GCC builtin for telling that certain values are more - * likely - */ -/*#define HAS_BUILTIN_EXPECT / **/ -/*#define HAS_BUILTIN_CHOOSE_EXPR / **/ - -/* HAS_C99_VARIADIC_MACROS: - * If defined, the compiler supports C99 variadic macros. - */ -/*#define HAS_C99_VARIADIC_MACROS / **/ - -/* HAS_CLASS: - * This symbol, if defined, indicates that the class routine is - * available to classify doubles. Available for example in AIX. - * The returned values are defined in <float.h> and are: - * - * FP_PLUS_NORM Positive normalized, nonzero - * FP_MINUS_NORM Negative normalized, nonzero - * FP_PLUS_DENORM Positive denormalized, nonzero - * FP_MINUS_DENORM Negative denormalized, nonzero - * FP_PLUS_ZERO +0.0 - * FP_MINUS_ZERO -0.0 - * FP_PLUS_INF +INF - * FP_MINUS_INF -INF - * FP_NANS Signaling Not a Number (NaNS) - * FP_NANQ Quiet Not a Number (NaNQ) - */ -/*#define HAS_CLASS / **/ - -/* HAS_CLEARENV: - * This symbol, if defined, indicates that the clearenv () routine is - * available for use. - */ -/*#define HAS_CLEARENV / **/ - -/* HAS_STRUCT_CMSGHDR: - * This symbol, if defined, indicates that the struct cmsghdr - * is supported. - */ -/*#define HAS_STRUCT_CMSGHDR / **/ - -/* HAS_COPYSIGNL: - * This symbol, if defined, indicates that the copysignl routine is - * available. If aintl is also present we can emulate modfl. - */ -/*#define HAS_COPYSIGNL / **/ - -/* USE_CPLUSPLUS: - * This symbol, if defined, indicates that a C++ compiler was - * used to compiled Perl and will be used to compile extensions. - */ -/*#define USE_CPLUSPLUS / **/ - /* HAS_DBMINIT_PROTO: * This symbol, if defined, indicates that the system provides * a prototype for the dbminit() function. Otherwise, it is up @@ -3364,58 +3774,12 @@ */ /*#define HAS_DBMINIT_PROTO / **/ -/* HAS_DIR_DD_FD: - * This symbol, if defined, indicates that the the DIR* dirstream - * structure contains a member variable named dd_fd. - */ -/*#define HAS_DIR_DD_FD / **/ - /* HAS_DIRFD: * This manifest constant lets the C program know that dirfd * is available. */ /*#define HAS_DIRFD / **/ -/* DLSYM_NEEDS_UNDERSCORE: - * This symbol, if defined, indicates that we need to prepend an - * underscore to the symbol name before calling dlsym(). This only - * makes sense if you *have* dlsym, which we will presume is the - * case if you're using dl_dlopen.xs. - */ -/*#define DLSYM_NEEDS_UNDERSCORE / **/ - -/* HAS_FAST_STDIO: - * This symbol, if defined, indicates that the "fast stdio" - * is available to manipulate the stdio buffers directly. - */ -/*#define HAS_FAST_STDIO / **/ - -/* HAS_FCHDIR: - * This symbol, if defined, indicates that the fchdir routine is - * available to change directory using a file descriptor. - */ -/*#define HAS_FCHDIR / **/ - -/* FCNTL_CAN_LOCK: - * This symbol, if defined, indicates that fcntl() can be used - * for file locking. Normally on Unix systems this is defined. - * It may be undefined on VMS. - */ -/*#define FCNTL_CAN_LOCK / **/ - -/* HAS_FINITE: - * This symbol, if defined, indicates that the finite routine is - * available to check whether a double is finite (non-infinity non-NaN). - */ -/*#define HAS_FINITE / **/ - -/* HAS_FINITEL: - * This symbol, if defined, indicates that the finitel routine is - * available to check whether a long double is finite - * (non-infinity non-NaN). - */ -/*#define HAS_FINITEL / **/ - /* HAS_FLOCK_PROTO: * This symbol, if defined, indicates that the system provides * a prototype for the flock() function. Otherwise, it is up @@ -3424,56 +3788,6 @@ */ /*#define HAS_FLOCK_PROTO / **/ -/* HAS_FP_CLASS: - * This symbol, if defined, indicates that the fp_class routine is - * available to classify doubles. Available for example in Digital UNIX. - * The returned values are defined in <math.h> and are: - * - * FP_SNAN Signaling NaN (Not-a-Number) - * FP_QNAN Quiet NaN (Not-a-Number) - * FP_POS_INF +infinity - * FP_NEG_INF -infinity - * FP_POS_NORM Positive normalized - * FP_NEG_NORM Negative normalized - * FP_POS_DENORM Positive denormalized - * FP_NEG_DENORM Negative denormalized - * FP_POS_ZERO +0.0 (positive zero) - * FP_NEG_ZERO -0.0 (negative zero) - */ -/*#define HAS_FP_CLASS / **/ - -/* HAS_FPCLASS: - * This symbol, if defined, indicates that the fpclass routine is - * available to classify doubles. Available for example in Solaris/SVR4. - * The returned values are defined in <ieeefp.h> and are: - * - * FP_SNAN signaling NaN - * FP_QNAN quiet NaN - * FP_NINF negative infinity - * FP_PINF positive infinity - * FP_NDENORM negative denormalized non-zero - * FP_PDENORM positive denormalized non-zero - * FP_NZERO negative zero - * FP_PZERO positive zero - * FP_NNORM negative normalized non-zero - * FP_PNORM positive normalized non-zero - */ -/*#define HAS_FPCLASS / **/ - -/* HAS_FPCLASSIFY: - * This symbol, if defined, indicates that the fpclassify routine is - * available to classify doubles. Available for example in HP-UX. - * The returned values are defined in <math.h> and are - * - * FP_NORMAL Normalized - * FP_ZERO Zero - * FP_INFINITE Infinity - * FP_SUBNORMAL Denormalized - * FP_NAN NaN - * - */ -/*#define HAS_FPCLASSIFY / **/ - /* HAS_FPCLASSL: * This symbol, if defined, indicates that the fpclassl routine is * available to classify long doubles. Available for example in IRIX. @@ -3492,224 +3806,6 @@ */ /*#define HAS_FPCLASSL / **/ -/* HAS_FPOS64_T: - * This symbol will be defined if the C compiler supports fpos64_t. - */ -/*#define HAS_FPOS64_T / **/ - -/* HAS_FREXPL: - * This symbol, if defined, indicates that the frexpl routine is - * available to break a long double floating-point number into - * a normalized fraction and an integral power of 2. - */ -/*#define HAS_FREXPL / **/ - -/* HAS_STRUCT_FS_DATA: - * This symbol, if defined, indicates that the struct fs_data - * to do statfs() is supported. - */ -/*#define HAS_STRUCT_FS_DATA / **/ - -/* HAS_FSEEKO: - * This symbol, if defined, indicates that the fseeko routine is - * available to fseek beyond 32 bits (useful for ILP32 hosts). - */ -/*#define HAS_FSEEKO / **/ - -/* HAS_FSTATFS: - * This symbol, if defined, indicates that the fstatfs routine is - * available to stat filesystems by file descriptors. - */ -/*#define HAS_FSTATFS / **/ - -/* HAS_FSYNC: - * This symbol, if defined, indicates that the fsync routine is - * available to write a file's modified data and attributes to - * permanent storage. - */ -/*#define HAS_FSYNC / **/ - -/* HAS_FTELLO: - * This symbol, if defined, indicates that the ftello routine is - * available to ftell beyond 32 bits (useful for ILP32 hosts). - */ -/*#define HAS_FTELLO / **/ - -/* HAS_FUTIMES: - * This symbol, if defined, indicates that the futimes routine is - * available to change file descriptor time stamps with struct timevals. - */ -/*#define HAS_FUTIMES / **/ - -/* HAS_GETCWD: - * This symbol, if defined, indicates that the getcwd routine is - * available to get the current working directory. - */ -/*#define HAS_GETCWD / **/ - -/* HAS_GETESPWNAM: - * This symbol, if defined, indicates that the getespwnam system call is - * available to retrieve enchanced (shadow) password entries by name. - */ -/*#define HAS_GETESPWNAM / **/ - -/* HAS_GETFSSTAT: - * This symbol, if defined, indicates that the getfsstat routine is - * available to stat filesystems in bulk. - */ -/*#define HAS_GETFSSTAT / **/ - -/* HAS_GETITIMER: - * This symbol, if defined, indicates that the getitimer routine is - * available to return interval timers. - */ -/*#define HAS_GETITIMER / **/ - -/* HAS_GETMNT: - * This symbol, if defined, indicates that the getmnt routine is - * available to get filesystem mount info by filename. - */ -/*#define HAS_GETMNT / **/ - -/* HAS_GETMNTENT: - * This symbol, if defined, indicates that the getmntent routine is - * available to iterate through mounted file systems to get their info. - */ -/*#define HAS_GETMNTENT / **/ - -/* HAS_GETPRPWNAM: - * This symbol, if defined, indicates that the getprpwnam system call is - * available to retrieve protected (shadow) password entries by name. - */ -/*#define HAS_GETPRPWNAM / **/ - -/* HAS_GETSPNAM: - * This symbol, if defined, indicates that the getspnam system call is - * available to retrieve SysV shadow password entries by name. - */ -/*#define HAS_GETSPNAM / **/ - -/* HAS_HASMNTOPT: - * This symbol, if defined, indicates that the hasmntopt routine is - * available to query the mount options of file systems. - */ -/*#define HAS_HASMNTOPT / **/ - -/* HAS_ILOGBL: - * This symbol, if defined, indicates that the ilogbl routine is - * available. If scalbnl is also present we can emulate frexpl. - */ -/*#define HAS_ILOGBL / **/ - -/* HAS_INT64_T: - * This symbol will defined if the C compiler supports int64_t. - * Usually the <inttypes.h> needs to be included, but sometimes - * <sys/types.h> is enough. - */ -/*#define HAS_INT64_T / **/ - -/* HAS_ISFINITE: - * This symbol, if defined, indicates that the isfinite routine is - * available to check whether a double is finite (non-infinity non-NaN). - */ -/*#define HAS_ISFINITE / **/ - -/* HAS_ISINF: - * This symbol, if defined, indicates that the isinf routine is - * available to check whether a double is an infinity. - */ -/*#define HAS_ISINF / **/ - -/* HAS_ISNAN: - * This symbol, if defined, indicates that the isnan routine is - * available to check whether a double is a NaN. - */ -/*#define HAS_ISNAN / **/ - -/* HAS_ISNANL: - * This symbol, if defined, indicates that the isnanl routine is - * available to check whether a long double is a NaN. - */ -/*#define HAS_ISNANL / **/ - -/* HAS_LDBL_DIG: - * This symbol, if defined, indicates that this system's <float.h> - * or <limits.h> defines the symbol LDBL_DIG, which is the number - * of significant digits in a long double precision number. Unlike - * for DBL_DIG, there's no good guess for LDBL_DIG if it is undefined. - */ -/*#define HAS_LDBL_DIG / * */ - -/* LIBM_LIB_VERSION: - * This symbol, if defined, indicates that libm exports _LIB_VERSION - * and that math.h defines the enum to manipulate it. - */ -/*#define LIBM_LIB_VERSION / **/ - -/* HAS_MADVISE: - * This symbol, if defined, indicates that the madvise system call is - * available to map a file into memory. - */ -/*#define HAS_MADVISE / **/ - -/* HAS_MALLOC_SIZE: - * This symbol, if defined, indicates that the malloc_size - * routine is available for use. - */ -/*#define HAS_MALLOC_SIZE / **/ - -/* HAS_MALLOC_GOOD_SIZE: - * This symbol, if defined, indicates that the malloc_good_size - * routine is available for use. - */ -/*#define HAS_MALLOC_GOOD_SIZE / **/ - -/* HAS_MKDTEMP: - * This symbol, if defined, indicates that the mkdtemp routine is - * available to exclusively create a uniquely named temporary directory. - */ -/*#define HAS_MKDTEMP / **/ - -/* HAS_MKSTEMPS: - * This symbol, if defined, indicates that the mkstemps routine is - * available to excluslvely create and open a uniquely named - * (with a suffix) temporary file. - */ -/*#define HAS_MKSTEMPS / **/ - -/* HAS_MODFL: - * This symbol, if defined, indicates that the modfl routine is - * available to split a long double x into a fractional part f and - * an integer part i such that |f| < 1.0 and (f + i) = x. - */ -/* HAS_MODFL_PROTO: - * This symbol, if defined, indicates that the system provides - * a prototype for the modfl() function. Otherwise, it is up - * to the program to supply one. - */ -/* HAS_MODFL_POW32_BUG: - * This symbol, if defined, indicates that the modfl routine is - * broken for long doubles >= pow(2, 32). - * For example from 4294967303.150000 one would get 4294967302.000000 - * and 1.150000. The bug has been seen in certain versions of glibc, - * release 2.2.2 is known to be okay. - */ -/*#define HAS_MODFL / **/ -/*#define HAS_MODFL_PROTO / **/ -/*#define HAS_MODFL_POW32_BUG / **/ - -/* HAS_MPROTECT: - * This symbol, if defined, indicates that the mprotect system call is - * available to modify the access protection of a memory mapped file. - */ -/*#define HAS_MPROTECT / **/ - -/* HAS_STRUCT_MSGHDR: - * This symbol, if defined, indicates that the struct msghdr - * is supported. - */ -/*#define HAS_STRUCT_MSGHDR / **/ - /* HAS_NL_LANGINFO: * This symbol, if defined, indicates that the nl_langinfo routine is * available to return local data. You will also need <langinfo.h> @@ -3717,11 +3813,6 @@ */ /*#define HAS_NL_LANGINFO / **/ -/* HAS_OFF64_T: - * This symbol will be defined if the C compiler supports off64_t. - */ -/*#define HAS_OFF64_T / **/ - /* HAS_PROCSELFEXE: * This symbol is defined if PROCSELFEXE_PATH is a symlink * to the absolute pathname of the executing program. @@ -3736,75 +3827,6 @@ #define PROCSELFEXE_PATH /**/ #endif -/* HAS_PTHREAD_ATTR_SETSCOPE: - * This symbol, if defined, indicates that the pthread_attr_setscope - * system call is available to set the contention scope attribute of - * a thread attribute object. - */ -/*#define HAS_PTHREAD_ATTR_SETSCOPE / **/ - -/* HAS_READV: - * This symbol, if defined, indicates that the readv routine is - * available to do gather reads. You will also need <sys/uio.h> - * and there I_SYSUIO. - */ -/*#define HAS_READV / **/ - -/* HAS_RECVMSG: - * This symbol, if defined, indicates that the recvmsg routine is - * available to send structured socket messages. - */ -/*#define HAS_RECVMSG / **/ - -/* HAS_SBRK_PROTO: - * This symbol, if defined, indicates that the system provides - * a prototype for the sbrk() function. Otherwise, it is up - * to the program to supply one. Good guesses are - * extern void* sbrk(int); - * extern void* sbrk(size_t); - */ -/*#define HAS_SBRK_PROTO / **/ - -/* HAS_SCALBNL: - * This symbol, if defined, indicates that the scalbnl routine is - * available. If ilogbl is also present we can emulate frexpl. - */ -/*#define HAS_SCALBNL / **/ - -/* HAS_SENDMSG: - * This symbol, if defined, indicates that the sendmsg routine is - * available to send structured socket messages. - */ -/*#define HAS_SENDMSG / **/ - -/* HAS_SETITIMER: - * This symbol, if defined, indicates that the setitimer routine is - * available to set interval timers. - */ -/*#define HAS_SETITIMER / **/ - -/* HAS_SETPROCTITLE: - * This symbol, if defined, indicates that the setproctitle routine is - * available to set process title. - */ -/*#define HAS_SETPROCTITLE / **/ - -/* USE_SFIO: - * This symbol, if defined, indicates that sfio should - * be used. - */ -/*#define USE_SFIO / **/ - -/* HAS_SIGNBIT: - * This symbol, if defined, indicates that the signbit routine is - * available to check if the given number has the sign bit set. - * This should include correct testing of -0.0. This will only be set - * if the signbit() routine is safe to use with the NV type used internally - * in perl. Users should call Perl_signbit(), which will be #defined to - * the system's signbit() function or macro if this symbol is defined. - */ -/*#define HAS_SIGNBIT / **/ - /* HAS_SIGPROCMASK: * This symbol, if defined, indicates that the sigprocmask * system call is available to examine or change the signal mask @@ -3812,25 +3834,6 @@ */ /*#define HAS_SIGPROCMASK / **/ -/* USE_SITECUSTOMIZE: - * This symbol, if defined, indicates that sitecustomize should - * be used. - */ -#ifndef USE_SITECUSTOMIZE -/*#define USE_SITECUSTOMIZE / **/ -#endif - -/* HAS_SNPRINTF: - * This symbol, if defined, indicates that the snprintf () library - * function is available for use. - */ -/* HAS_VSNPRINTF: - * This symbol, if defined, indicates that the vsnprintf () library - * function is available for use. - */ -/*#define HAS_SNPRINTF / **/ -/*#define HAS_VSNPRINTF / **/ - /* HAS_SOCKATMARK: * This symbol, if defined, indicates that the sockatmark routine is * available to test whether a socket is at the out-of-band mark. @@ -3845,26 +3848,6 @@ */ /*#define HAS_SOCKATMARK_PROTO / **/ -/* HAS_SOCKS5_INIT: - * This symbol, if defined, indicates that the socks5_init routine is - * available to initialize SOCKS 5. - */ -/*#define HAS_SOCKS5_INIT / **/ - -/* SPRINTF_RETURNS_STRLEN: - * This variable defines whether sprintf returns the length of the string - * (as per the ANSI spec). Some C libraries retain compatibility with - * pre-ANSI C and return a pointer to the passed in buffer; for these - * this variable will be undef. - */ -/*#define SPRINTF_RETURNS_STRLEN / **/ - -/* HAS_SQRTL: - * This symbol, if defined, indicates that the sqrtl routine is - * available to do long double square roots. - */ -/*#define HAS_SQRTL / **/ - /* HAS_SETRESGID_PROTO: * This symbol, if defined, indicates that the system provides * a prototype for the setresgid() function. Otherwise, it is up @@ -3881,77 +3864,12 @@ */ /*#define HAS_SETRESUID_PROTO / **/ -/* HAS_STRUCT_STATFS_F_FLAGS: - * This symbol, if defined, indicates that the struct statfs - * does have the f_flags member containing the mount flags of - * the filesystem containing the file. - * This kind of struct statfs is coming from <sys/mount.h> (BSD 4.3), - * not from <sys/statfs.h> (SYSV). Older BSDs (like Ultrix) do not - * have statfs() and struct statfs, they have ustat() and getmnt() - * with struct ustat and struct fs_data. - */ -/*#define HAS_STRUCT_STATFS_F_FLAGS / **/ - -/* HAS_STRUCT_STATFS: - * This symbol, if defined, indicates that the struct statfs - * to do statfs() is supported. - */ -/*#define HAS_STRUCT_STATFS / **/ - -/* HAS_FSTATVFS: - * This symbol, if defined, indicates that the fstatvfs routine is - * available to stat filesystems by file descriptors. - */ -/*#define HAS_FSTATVFS / **/ - /* HAS_STRFTIME: * This symbol, if defined, indicates that the strftime routine is * available to do time formatting. */ /*#define HAS_STRFTIME / **/ -/* HAS_STRLCAT: - * This symbol, if defined, indicates that the strlcat () routine is - * available to do string concatenation. - */ -/*#define HAS_STRLCAT / **/ - -/* HAS_STRLCPY: - * This symbol, if defined, indicates that the strlcpy () routine is - * available to do string copying. - */ -/*#define HAS_STRLCPY / **/ - -/* HAS_STRTOLD: - * This symbol, if defined, indicates that the strtold routine is - * available to convert strings to long doubles. - */ -/*#define HAS_STRTOLD / **/ - -/* HAS_STRTOLL: - * This symbol, if defined, indicates that the strtoll routine is - * available to convert strings to long longs. - */ -/*#define HAS_STRTOLL / **/ - -/* HAS_STRTOQ: - * This symbol, if defined, indicates that the strtoq routine is - * available to convert strings to long longs (quads). - */ -/*#define HAS_STRTOQ / **/ - -/* HAS_STRTOULL: - * This symbol, if defined, indicates that the strtoull routine is - * available to convert strings to unsigned long longs. - */ -/*#define HAS_STRTOULL / **/ - -/* HAS_STRTOUQ: - * This symbol, if defined, indicates that the strtouq routine is - * available to convert strings to unsigned long longs (quads). - */ -/*#define HAS_STRTOUQ / **/ - /* HAS_SYSCALL_PROTO: * This symbol, if defined, indicates that the system provides * a prototype for the syscall() function. Otherwise, it is up @@ -3961,51 +3879,6 @@ */ /*#define HAS_SYSCALL_PROTO / **/ -/* HAS_TELLDIR_PROTO: - * This symbol, if defined, indicates that the system provides - * a prototype for the telldir() function. Otherwise, it is up - * to the program to supply one. A good guess is - * extern long telldir(DIR*); - */ -/*#define HAS_TELLDIR_PROTO / **/ - -/* HAS_CTIME64: - * This symbol, if defined, indicates that the ctime64 () routine is - * available to do the 64bit variant of ctime () - */ -/* HAS_LOCALTIME64: - * This symbol, if defined, indicates that the localtime64 () routine is - * available to do the 64bit variant of localtime () - */ -/* HAS_GMTIME64: - * This symbol, if defined, indicates that the gmtime64 () routine is - * available to do the 64bit variant of gmtime () - */ -/* HAS_MKTIME64: - * This symbol, if defined, indicates that the mktime64 () routine is - * available to do the 64bit variant of mktime () - */ -/* HAS_DIFFTIME64: - * This symbol, if defined, indicates that the difftime64 () routine is - * available to do the 64bit variant of difftime () - */ -/* HAS_ASCTIME64: - * This symbol, if defined, indicates that the asctime64 () routine is - * available to do the 64bit variant of asctime () - */ -/*#define HAS_CTIME64 / **/ -/*#define HAS_LOCALTIME64 / **/ -/*#define HAS_GMTIME64 / **/ -/*#define HAS_MKTIME64 / **/ -/*#define HAS_DIFFTIME64 / **/ -/*#define HAS_ASCTIME64 / **/ - -/* HAS_TIMEGM: - * This symbol, if defined, indicates that the timegm routine is - * available to do the opposite of gmtime () - */ -/*#define HAS_TIMEGM / **/ - /* U32_ALIGNMENT_REQUIRED: * This symbol, if defined, indicates that you must access * character data through U32-aligned pointers. @@ -4014,25 +3887,6 @@ #define U32_ALIGNMENT_REQUIRED /**/ #endif -/* HAS_UALARM: - * This symbol, if defined, indicates that the ualarm routine is - * available to do alarms with microsecond granularity. - */ -/*#define HAS_UALARM / **/ - -/* HAS_UNORDERED: - * This symbol, if defined, indicates that the unordered routine is - * available to check whether two doubles are unordered - * (effectively: whether either of them is NaN) - */ -/*#define HAS_UNORDERED / **/ - -/* HAS_UNSETENV: - * This symbol, if defined, indicates that the unsetenv () routine is - * available for use. - */ -/*#define HAS_UNSETENV / **/ - /* HAS_USLEEP_PROTO: * This symbol, if defined, indicates that the system provides * a prototype for the usleep() function. Otherwise, it is up @@ -4041,555 +3895,340 @@ */ /*#define HAS_USLEEP_PROTO / **/ -/* HAS_USTAT: - * This symbol, if defined, indicates that the ustat system call is - * available to query file system statistics by dev_t. - */ -/*#define HAS_USTAT / **/ - -/* HAS_WRITEV: - * This symbol, if defined, indicates that the writev routine is - * available to do scatter writes. - */ -/*#define HAS_WRITEV / **/ - -/* USE_DYNAMIC_LOADING: - * This symbol, if defined, indicates that dynamic loading of - * some sort is available. - */ -/*#define USE_DYNAMIC_LOADING / **/ - -/* FFLUSH_NULL: - * This symbol, if defined, tells that fflush(NULL) does flush - * all pending stdio output. - */ -/* FFLUSH_ALL: - * This symbol, if defined, tells that to flush - * all pending stdio output one must loop through all - * the stdio file handles stored in an array and fflush them. - * Note that if fflushNULL is defined, fflushall will not - * even be probed for and will be left undefined. - */ -/*#define FFLUSH_NULL / **/ -/*#define FFLUSH_ALL / **/ - -/* I_ASSERT: - * This symbol, if defined, indicates that <assert.h> exists and - * could be included by the C program to get the assert() macro. - */ -#define I_ASSERT /**/ - /* I_CRYPT: * This symbol, if defined, indicates that <crypt.h> exists and * should be included. */ /*#define I_CRYPT / **/ -/* DB_Prefix_t: - * This symbol 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 u_int32_t. - */ -/* DB_Hash_t: - * This symbol 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_CFG: - * This symbol, if defined, defines the major version number of - * Berkeley DB found in the <db.h> header when Perl was configured. - */ -/* DB_VERSION_MINOR_CFG: - * This symbol, if defined, defines the minor version number of - * Berkeley DB found in the <db.h> header when Perl was configured. - * For DB version 1 this is always 0. - */ -/* DB_VERSION_PATCH_CFG: - * This symbol, if defined, defines the patch version number of - * Berkeley DB found in the <db.h> header when Perl was configured. - * For DB version 1 this is always 0. - */ -#define DB_Hash_t u_int32_t /**/ -#define DB_Prefix_t size_t /**/ -#define DB_VERSION_MAJOR_CFG 0 /**/ -#define DB_VERSION_MINOR_CFG 0 /**/ -#define DB_VERSION_PATCH_CFG 0 /**/ - /* I_FP: * This symbol, if defined, indicates that <fp.h> exists and * should be included. */ /*#define I_FP / **/ -/* I_FP_CLASS: - * This symbol, if defined, indicates that <fp_class.h> exists and - * should be included. - */ -/*#define I_FP_CLASS / **/ - -/* I_IEEEFP: - * This symbol, if defined, indicates that <ieeefp.h> exists and - * should be included. - */ -/*#define I_IEEEFP / **/ - -/* I_INTTYPES: - * This symbol, if defined, indicates to the C program that it should - * include <inttypes.h>. - */ -/*#define I_INTTYPES / **/ - /* I_LANGINFO: * This symbol, if defined, indicates that <langinfo.h> exists and * should be included. */ /*#define I_LANGINFO / **/ -/* I_LIBUTIL: - * This symbol, if defined, indicates that <libutil.h> exists and - * should be included. - */ -/*#define I_LIBUTIL / **/ - -/* I_MALLOCMALLOC: - * This symbol, if defined, indicates to the C program that it should - * include <malloc/malloc.h>. +/* HAS_CTERMID_R: + * This symbol, if defined, indicates that the ctermid_r routine + * is available to ctermid re-entrantly. */ -/*#define I_MALLOCMALLOC / **/ - -/* I_MNTENT: - * This symbol, if defined, indicates that <mntent.h> exists and - * should be included. +/* CTERMID_R_PROTO: + * This symbol encodes the prototype of ctermid_r. + * It is zero if d_ctermid_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_ctermid_r + * is defined. */ -/*#define I_MNTENT / **/ +/*#define HAS_CTERMID_R / **/ +#define CTERMID_R_PROTO 0 /**/ -/* I_NETINET_TCP: - * This symbol, if defined, indicates to the C program that it should - * include <netinet/tcp.h>. +/* HAS_ENDHOSTENT_R: + * This symbol, if defined, indicates that the endhostent_r routine + * is available to endhostent re-entrantly. */ -/*#define I_NETINET_TCP / **/ - -/* I_POLL: - * This symbol, if defined, indicates that <poll.h> exists and - * should be included. (see also HAS_POLL) +/* ENDHOSTENT_R_PROTO: + * This symbol 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. */ -/*#define I_POLL / **/ +/*#define HAS_ENDHOSTENT_R / **/ +#define ENDHOSTENT_R_PROTO 0 /**/ -/* I_PROT: - * This symbol, if defined, indicates that <prot.h> exists and - * should be included. +/* HAS_ENDNETENT_R: + * This symbol, if defined, indicates that the endnetent_r routine + * is available to endnetent re-entrantly. */ -/*#define I_PROT / **/ - -/* I_SHADOW: - * This symbol, if defined, indicates that <shadow.h> exists and - * should be included. +/* ENDNETENT_R_PROTO: + * This symbol 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. */ -/*#define I_SHADOW / **/ +/*#define HAS_ENDNETENT_R / **/ +#define ENDNETENT_R_PROTO 0 /**/ -/* I_SOCKS: - * This symbol, if defined, indicates that <socks.h> exists and - * should be included. +/* HAS_ENDPROTOENT_R: + * This symbol, if defined, indicates that the endprotoent_r routine + * is available to endprotoent re-entrantly. */ -/*#define I_SOCKS / **/ - -/* I_SUNMATH: - * This symbol, if defined, indicates that <sunmath.h> exists and - * should be included. +/* ENDPROTOENT_R_PROTO: + * This symbol 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. */ -/*#define I_SUNMATH / **/ +/*#define HAS_ENDPROTOENT_R / **/ +#define ENDPROTOENT_R_PROTO 0 /**/ -/* I_SYSLOG: - * This symbol, if defined, indicates that <syslog.h> exists and - * should be included. +/* HAS_ENDSERVENT_R: + * This symbol, if defined, indicates that the endservent_r routine + * is available to endservent re-entrantly. */ -/*#define I_SYSLOG / **/ - -/* I_SYSMODE: - * This symbol, if defined, indicates that <sys/mode.h> exists and - * should be included. +/* ENDSERVENT_R_PROTO: + * This symbol encodes the prototype of endservent_r. + * It is zero if d_endservent_r is undef, and one of the + * REENTRANT_PROTO_T_ABC macros of reentr.h if d_endservent_r + * is defined. */ -/*#define I_SYSMODE / **/ +/*#define HAS_ENDSERVENT_R / **/ +#define ENDSERVENT_R_PROTO 0 /**/ -/* I_SYS_MOUNT: - * This symbol, if defined, indicates that <sys/mount.h> exists and - * should be included. +/* HAS_GETHOSTBYADDR_R: + * This symbol, if defined, indicates that the gethostbyaddr_r routine + * is available to gethostbyaddr re-entrantly. */ -/*#define I_SYS_MOUNT / **/ - -/* I_SYS_STATFS: - * This symbol, if defined, indicates that <sys/statfs.h> exists. +/* GETHOSTBYADDR_R_PROTO: + * This symbol encodes the prototype of gethostbyaddr_r. + * It is 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. */ -/*#define I_SYS_STATFS / **/ +/*#define HAS_GETHOSTBYADDR_R / **/ +#define GETHOSTBYADDR_R_PROTO 0 /**/ -/* I_SYS_STATVFS: - * This symbol, if defined, indicates that <sys/statvfs.h> exists and - * should be included. +/* HAS_GETHOSTBYNAME_R: + * This symbol, if defined, indicates that the gethostbyname_r routine + * is available to gethostbyname re-entrantly. */ -/*#define I_SYS_STATVFS / **/ - -/* I_SYSUTSNAME: - * This symbol, if defined, indicates that <sys/utsname.h> exists and - * should be included. +/* GETHOSTBYNAME_R_PROTO: + * This symbol encodes the prototype of gethostbyname_r. + * It is 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. */ -/*#define I_SYSUTSNAME / **/ +/*#define HAS_GETHOSTBYNAME_R / **/ +#define GETHOSTBYNAME_R_PROTO 0 /**/ -/* I_SYS_VFS: - * This symbol, if defined, indicates that <sys/vfs.h> exists and - * should be included. +/* HAS_GETHOSTENT_R: + * This symbol, if defined, indicates that the gethostent_r routine + * is available to gethostent re-entrantly. */ -/*#define I_SYS_VFS / **/ - -/* I_USTAT: - * This symbol, if defined, indicates that <ustat.h> exists and - * should be included. +/* GETHOSTENT_R_PROTO: + * This symbol encodes the prototype of gethostent_r. + * It is 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. */ -/*#define I_USTAT / **/ +/*#define HAS_GETHOSTENT_R / **/ +#define GETHOSTENT_R_PROTO 0 /**/ -/* PERL_PRIfldbl: - * This symbol, if defined, contains the string used by stdio to - * format long doubles (format 'f') for output. - */ -/* PERL_PRIgldbl: - * This symbol, if defined, contains the string used by stdio to - * format long doubles (format 'g') for output. - */ -/* PERL_PRIeldbl: - * This symbol, if defined, contains the string used by stdio to - * format long doubles (format 'e') for output. +/* HAS_GETNETBYADDR_R: + * This symbol, if defined, indicates that the getnetbyaddr_r routine + * is available to getnetbyaddr re-entrantly. */ -/* PERL_SCNfldbl: - * This symbol, if defined, contains the string used by stdio to - * format long doubles (format 'f') for input. +/* GETNETBYADDR_R_PROTO: + * This symbol encodes the prototype of getnetbyaddr_r. + * It is 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. */ -/*#define PERL_PRIfldbl "llf" / **/ -/*#define PERL_PRIgldbl "llg" / **/ -/*#define PERL_PRIeldbl "lle" / **/ -/*#define PERL_SCNfldbl "llf" / **/ +/*#define HAS_GETNETBYADDR_R / **/ +#define GETNETBYADDR_R_PROTO 0 /**/ -/* PERL_MAD: - * This symbol, if defined, indicates that the Misc Attribution - * Declaration code should be conditionally compiled. +/* HAS_GETNETBYNAME_R: + * This symbol, if defined, indicates that the getnetbyname_r routine + * is available to getnetbyname re-entrantly. */ -/*#define PERL_MAD / **/ - -/* NEED_VA_COPY: - * This symbol, if defined, indicates that the system stores - * the variable argument list datatype, va_list, in a format - * that cannot be copied by simple assignment, so that some - * other means must be used when copying is required. - * As such systems vary in their provision (or non-provision) - * of copying mechanisms, handy.h defines a platform- - * independent macro, Perl_va_copy(src, dst), to do the job. +/* GETNETBYNAME_R_PROTO: + * This symbol encodes the prototype of getnetbyname_r. + * It is 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. */ -/*#define NEED_VA_COPY / **/ +/*#define HAS_GETNETBYNAME_R / **/ +#define GETNETBYNAME_R_PROTO 0 /**/ -/* IVTYPE: - * This symbol defines the C type used for Perl's IV. - */ -/* UVTYPE: - * This symbol defines the C type used for Perl's UV. - */ -/* I8TYPE: - * This symbol defines the C type used for Perl's I8. - */ -/* U8TYPE: - * This symbol defines the C type used for Perl's U8. - */ -/* I16TYPE: - * This symbol defines the C type used for Perl's I16. - */ -/* U16TYPE: - * This symbol defines the C type used for Perl's U16. - */ -/* I32TYPE: - * This symbol defines the C type used for Perl's I32. - */ -/* U32TYPE: - * This symbol defines the C type used for Perl's U32. - */ -/* I64TYPE: - * This symbol defines the C type used for Perl's I64. - */ -/* U64TYPE: - * This symbol defines the C type used for Perl's U64. - */ -/* NVTYPE: - * This symbol defines the C type used for Perl's NV. - */ -/* IVSIZE: - * This symbol contains the sizeof(IV). - */ -/* UVSIZE: - * This symbol contains the sizeof(UV). - */ -/* I8SIZE: - * This symbol contains the sizeof(I8). - */ -/* U8SIZE: - * This symbol contains the sizeof(U8). - */ -/* I16SIZE: - * This symbol contains the sizeof(I16). - */ -/* U16SIZE: - * This symbol contains the sizeof(U16). - */ -/* I32SIZE: - * This symbol contains the sizeof(I32). - */ -/* U32SIZE: - * This symbol contains the sizeof(U32). - */ -/* I64SIZE: - * This symbol contains the sizeof(I64). - */ -/* U64SIZE: - * This symbol contains the sizeof(U64). - */ -/* NVSIZE: - * This symbol contains the sizeof(NV). - */ -/* NV_PRESERVES_UV: - * This symbol, if defined, indicates that a variable of type NVTYPE - * can preserve all the bits of a variable of type UVTYPE. +/* HAS_GETNETENT_R: + * This symbol, if defined, indicates that the getnetent_r routine + * is available to getnetent re-entrantly. */ -/* NV_PRESERVES_UV_BITS: - * This symbol contains the number of bits a variable of type NVTYPE - * can preserve of a variable of type UVTYPE. +/* GETNETENT_R_PROTO: + * This symbol encodes the prototype of getnetent_r. + * It is 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. */ -/* NV_OVERFLOWS_INTEGERS_AT: - * This symbol gives the largest integer value that NVs can hold. This - * value + 1.0 cannot be stored accurately. It is expressed as constant - * floating point expression to reduce the chance of decimale/binary - * conversion issues. If it can not be determined, the value 0 is given. +/*#define HAS_GETNETENT_R / **/ +#define GETNETENT_R_PROTO 0 /**/ + +/* HAS_GETPROTOBYNAME_R: + * This symbol, if defined, indicates that the getprotobyname_r routine + * is available to getprotobyname re-entrantly. */ -/* NV_ZERO_IS_ALLBITS_ZERO: - * This symbol, if defined, indicates that a variable of type NVTYPE - * stores 0.0 in memory as all bits zero. +/* GETPROTOBYNAME_R_PROTO: + * This symbol encodes the prototype of getprotobyname_r. + * It is 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. */ -#define IVTYPE long /**/ -#define UVTYPE unsigned long /**/ -#define I8TYPE char /**/ -#define U8TYPE unsigned char /**/ -#define I16TYPE short /**/ -#define U16TYPE unsigned short /**/ -#define I32TYPE long /**/ -#define U32TYPE unsigned long /**/ -#ifdef HAS_QUAD -#define I64TYPE int64_t /**/ -#define U64TYPE uint64_t /**/ -#endif -#define NVTYPE double /**/ -#define IVSIZE 4 /**/ -#define UVSIZE 4 /**/ -#define I8SIZE 1 /**/ -#define U8SIZE 1 /**/ -#define I16SIZE 2 /**/ -#define U16SIZE 2 /**/ -#define I32SIZE 4 /**/ -#define U32SIZE 4 /**/ -#ifdef HAS_QUAD -#define I64SIZE 8 /**/ -#define U64SIZE 8 /**/ -#endif -#define NVSIZE 8 /**/ -#undef NV_PRESERVES_UV -#define NV_PRESERVES_UV_BITS 0 -#define NV_OVERFLOWS_INTEGERS_AT 256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0 -#undef NV_ZERO_IS_ALLBITS_ZERO -#if UVSIZE == 8 -# ifdef BYTEORDER -# if BYTEORDER == 0x1234 -# undef BYTEORDER -# define BYTEORDER 0x12345678 -# else -# if BYTEORDER == 0x4321 -# undef BYTEORDER -# define BYTEORDER 0x87654321 -# endif -# endif -# endif -#endif +/*#define HAS_GETPROTOBYNAME_R / **/ +#define GETPROTOBYNAME_R_PROTO 0 /**/ -/* IVdf: - * This symbol defines the format string used for printing a Perl IV - * as a signed decimal integer. +/* HAS_GETPROTOBYNUMBER_R: + * This symbol, if defined, indicates that the getprotobynumber_r routine + * is available to getprotobynumber re-entrantly. */ -/* UVuf: - * This symbol defines the format string used for printing a Perl UV - * as an unsigned decimal integer. +/* GETPROTOBYNUMBER_R_PROTO: + * This symbol encodes the prototype of getprotobynumber_r. + * It is 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. */ -/* UVof: - * This symbol defines the format string used for printing a Perl UV - * as an unsigned octal integer. +/*#define HAS_GETPROTOBYNUMBER_R / **/ +#define GETPROTOBYNUMBER_R_PROTO 0 /**/ + +/* HAS_GETPROTOENT_R: + * This symbol, if defined, indicates that the getprotoent_r routine + * is available to getprotoent re-entrantly. */ -/* UVxf: - * This symbol defines the format string used for printing a Perl UV - * as an unsigned hexadecimal integer in lowercase abcdef. +/* GETPROTOENT_R_PROTO: + * This symbol encodes the prototype of getprotoent_r. + * It is 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. */ -/* UVXf: - * This symbol defines the format string used for printing a Perl UV - * as an unsigned hexadecimal integer in uppercase ABCDEF. +/*#define HAS_GETPROTOENT_R / **/ +#define GETPROTOENT_R_PROTO 0 /**/ + +/* HAS_GETSERVBYNAME_R: + * This symbol, if defined, indicates that the getservbyname_r routine + * is available to getservbyname re-entrantly. */ -/* NVef: - * This symbol defines the format string used for printing a Perl NV - * using %e-ish floating point format. +/* GETSERVBYNAME_R_PROTO: + * This symbol encodes the prototype of getservbyname_r. + * It is 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. */ -/* NVff: - * This symbol defines the format string used for printing a Perl NV - * using %f-ish floating point format. +/*#define HAS_GETSERVBYNAME_R / **/ +#define GETSERVBYNAME_R_PROTO 0 /**/ + +/* HAS_GETSERVBYPORT_R: + * This symbol, if defined, indicates that the getservbyport_r routine + * is available to getservbyport re-entrantly. */ -/* NVgf: - * This symbol defines the format string used for printing a Perl NV - * using %g-ish floating point format. +/* GETSERVBYPORT_R_PROTO: + * This symbol encodes the prototype of getservbyport_r. + * It is 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. */ -#define IVdf "ld" /**/ -#define UVuf "lu" /**/ -#define UVof "lo" /**/ -#define UVxf "lx" /**/ -#define UVXf "lX" /**/ -#define NVef "e" /**/ -#define NVff "f" /**/ -#define NVgf "g" /**/ +/*#define HAS_GETSERVBYPORT_R / **/ +#define GETSERVBYPORT_R_PROTO 0 /**/ -/* SELECT_MIN_BITS: - * This symbol 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), especially many little-endians do - * the latter. This is only useful if you have select(), naturally. +/* HAS_GETSERVENT_R: + * This symbol, if defined, indicates that the getservent_r routine + * is available to getservent re-entrantly. */ -#define SELECT_MIN_BITS 32 /**/ - -/* STARTPERL: - * This variable contains the string to put in front of a perl - * script to make sure (one hopes) that it runs with perl and not - * some shell. +/* GETSERVENT_R_PROTO: + * This symbol encodes the prototype of getservent_r. + * It is 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. */ -#define STARTPERL "#!perl" /**/ +/*#define HAS_GETSERVENT_R / **/ +#define GETSERVENT_R_PROTO 0 /**/ -/* HAS_STDIO_STREAM_ARRAY: - * This symbol, if defined, tells that there is an array - * holding the stdio streams. - */ -/* STDIO_STREAM_ARRAY: - * This symbol tells the name of the array holding the stdio streams. - * Usual values include _iob, __iob, and __sF. +/* HAS_PTHREAD_ATFORK: + * This symbol, if defined, indicates that the pthread_atfork routine + * is available setup fork handlers. */ -/*#define HAS_STDIO_STREAM_ARRAY / **/ -#ifdef HAS_STDIO_STREAM_ARRAY -#define STDIO_STREAM_ARRAY -#endif +/*#define HAS_PTHREAD_ATFORK / **/ -/* GMTIME_MAX: - * This symbol contains the maximum value for the time_t offset that - * the system function gmtime () accepts, and defaults to 0 +/* HAS_READDIR64_R: + * This symbol, if defined, indicates that the readdir64_r routine + * is available to readdir64 re-entrantly. */ -/* GMTIME_MIN: - * This symbol contains the minimum value for the time_t offset that - * the system function gmtime () accepts, and defaults to 0 +/* READDIR64_R_PROTO: + * This symbol encodes the prototype of readdir64_r. + * It is 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. */ -/* LOCALTIME_MAX: - * This symbol contains the maximum value for the time_t offset that - * the system function localtime () accepts, and defaults to 0 +/*#define HAS_READDIR64_R / **/ +#define READDIR64_R_PROTO 0 /**/ + +/* HAS_SETHOSTENT_R: + * This symbol, if defined, indicates that the sethostent_r routine + * is available to sethostent re-entrantly. */ -/* LOCALTIME_MIN: - * This symbol contains the minimum value for the time_t offset that - * the system function localtime () accepts, and defaults to 0 +/* SETHOSTENT_R_PROTO: + * This symbol 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. */ -#define GMTIME_MAX 2147483647 /**/ -#define GMTIME_MIN 0 /**/ -#define LOCALTIME_MAX 2147483647 /**/ -#define LOCALTIME_MIN 0 /**/ +/*#define HAS_SETHOSTENT_R / **/ +#define SETHOSTENT_R_PROTO 0 /**/ -/* USE_64_BIT_INT: - * This symbol, if defined, indicates that 64-bit integers should - * be used when available. If not defined, the native integers - * will be employed (be they 32 or 64 bits). The minimal possible - * 64-bitness is used, 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. +/* HAS_SETLOCALE_R: + * This symbol, if defined, indicates that the setlocale_r routine + * is available to setlocale re-entrantly. */ -/* USE_64_BIT_ALL: - * This symbol, if defined, indicates that 64-bit integers should - * be used when available. If not defined, the native integers - * will be used (be they 32 or 64 bits). 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. +/* SETLOCALE_R_PROTO: + * This symbol 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. */ -#ifndef USE_64_BIT_INT -/*#define USE_64_BIT_INT / **/ -#endif -#ifndef USE_64_BIT_ALL -/*#define USE_64_BIT_ALL / **/ -#endif +/*#define HAS_SETLOCALE_R / **/ +#define SETLOCALE_R_PROTO 0 /**/ -/* USE_DTRACE: - * This symbol, if defined, indicates that Perl should - * be built with support for DTrace. +/* HAS_SETNETENT_R: + * This symbol, if defined, indicates that the setnetent_r routine + * is available to setnetent re-entrantly. */ -/*#define USE_DTRACE / **/ - -/* USE_FAST_STDIO: - * This symbol, if defined, indicates that Perl should - * be built to use 'fast stdio'. - * Defaults to define in Perls 5.8 and earlier, to undef later. +/* SETNETENT_R_PROTO: + * This symbol 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. */ -#ifndef USE_FAST_STDIO -/*#define USE_FAST_STDIO / **/ -#endif +/*#define HAS_SETNETENT_R / **/ +#define SETNETENT_R_PROTO 0 /**/ -/* USE_LARGE_FILES: - * This symbol, if defined, indicates that large file support - * should be used when available. +/* HAS_SETPROTOENT_R: + * This symbol, if defined, indicates that the setprotoent_r routine + * is available to setprotoent re-entrantly. */ -#ifndef USE_LARGE_FILES -/*#define USE_LARGE_FILES / **/ -#endif - -/* USE_LONG_DOUBLE: - * This symbol, if defined, indicates that long doubles should - * be used when available. +/* SETPROTOENT_R_PROTO: + * This symbol 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. */ -#ifndef USE_LONG_DOUBLE -/*#define USE_LONG_DOUBLE / **/ -#endif +/*#define HAS_SETPROTOENT_R / **/ +#define SETPROTOENT_R_PROTO 0 /**/ -/* USE_MORE_BITS: - * This symbol, if defined, indicates that 64-bit interfaces and - * long doubles should be used when available. +/* HAS_SETSERVENT_R: + * This symbol, if defined, indicates that the setservent_r routine + * is available to setservent re-entrantly. */ -#ifndef USE_MORE_BITS -/*#define USE_MORE_BITS / **/ -#endif - -/* MULTIPLICITY: - * This symbol, if defined, indicates that Perl should - * be built to use multiplicity. +/* SETSERVENT_R_PROTO: + * This symbol 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. */ -#ifndef MULTIPLICITY -/*#define MULTIPLICITY / **/ -#endif +/*#define HAS_SETSERVENT_R / **/ +#define SETSERVENT_R_PROTO 0 /**/ -/* USE_PERLIO: - * This symbol, if defined, indicates that the PerlIO abstraction should - * be used throughout. If not defined, stdio should be - * used in a fully backward compatible manner. +/* HAS_TTYNAME_R: + * This symbol, if defined, indicates that the ttyname_r routine + * is available to ttyname re-entrantly. */ -#ifndef USE_PERLIO -/*#define USE_PERLIO / **/ -#endif - -/* USE_SOCKS: - * This symbol, if defined, indicates that Perl should - * be built to use socks. +/* TTYNAME_R_PROTO: + * This symbol 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. */ -#ifndef USE_SOCKS -/*#define USE_SOCKS / **/ -#endif +/*#define HAS_TTYNAME_R / **/ +#define TTYNAME_R_PROTO 0 /**/ #endif diff --git a/gnu/usr.bin/perl/uconfig.sh b/gnu/usr.bin/perl/uconfig.sh index ca3742d8c6d..5a06d2e4172 100644 --- a/gnu/usr.bin/perl/uconfig.sh +++ b/gnu/usr.bin/perl/uconfig.sh @@ -4,23 +4,16 @@ _o='.o' afs='false' afsroot='/afs' alignbytes='4' -aphostname='/bin/hostname' -archlib='/usr/local/lib/perl5/5.12/unknown' -archlibexp='/usr/local/lib/perl5/5.12/unknown' +apiversion='5.005' +archlib='/usr/local/lib/perl5/5.7/unknown' +archlibexp='/usr/local/lib/perl5/5.7/unknown' archname='unknown' asctime_r_proto='0' bin='/usr/local/bin' -binexp='/usr/local/bin' byteorder='1234' castflags='0' -cf_by='root@localhost' -cf_time='Thu Jan 1 00:00:00 GMT 1970' -charbits='8' +charsize='1' clocktype='clock_t' -cpplast='-' -cppminus='-' -cpprun='cc -E' -cppstdin='cc -E' cpp_stuff='42' crypt_r_proto='0' ctermid_r_proto='0' @@ -42,30 +35,18 @@ d_SCNfldbl='undef' d__fwalk='undef' d_access='undef' d_accessx='undef' -d_aintl='undef' d_alarm='undef' d_archlib='undef' -d_asctime64='undef' d_asctime_r='undef' d_atolf='undef' d_atoll='undef' -d_attribute_deprecated='undef' -d_attribute_format='undef' -d_attribute_malloc='undef' -d_attribute_nonnull='undef' -d_attribute_noreturn='undef' -d_attribute_pure='undef' -d_attribute_unused='undef' -d_attribute_warn_unused_result='undef' +d_attribut='undef' d_bcmp='undef' d_bcopy='undef' +d_bsd='undef' d_bsdgetpgrp='undef' d_bsdsetpgrp='undef' -d_bsd='undef' -d_builtin_choose_expr='undef' -d_builtin_expect='undef' d_bzero='undef' -d_c99_variadic_macros='undef' d_casti32='undef' d_castneg='undef' d_charvspr='undef' @@ -73,70 +54,62 @@ d_chown='undef' d_chroot='undef' d_chsize='undef' d_class='undef' -d_clearenv='undef' -d_closedir='define' +d_closedir='undef' d_cmsghdr_s='undef' d_const='undef' -d_copysignl='undef' -d_cplusplus='undef' -d_crypt_r='undef' d_crypt='undef' +d_crypt_r='undef' d_csh='undef' d_ctermid_r='undef' -d_ctermid='undef' -d_ctime64='undef' d_ctime_r='undef' d_cuserid='undef' d_dbl_dig='undef' d_dbminitproto='undef' -d_difftime64='undef' d_difftime='undef' -d_dir_dd_fd='undef' d_dirfd='undef' d_dirnamlen='undef' d_dlerror='undef' d_dlopen='undef' d_dlsymun='undef' d_dosuid='undef' -d_drand48proto='undef' d_drand48_r='undef' +d_drand48proto='undef' d_dup2='undef' d_eaccess='undef' -d_endgrent_r='undef' d_endgrent='undef' +d_endgrent_r='undef' d_endhent='undef' d_endhostent_r='undef' d_endnent='undef' d_endnetent_r='undef' d_endpent='undef' d_endprotoent_r='undef' -d_endpwent_r='undef' d_endpwent='undef' +d_endpwent_r='undef' d_endsent='undef' d_endservent_r='undef' d_eofnblk='undef' d_eunice='undef' -d_faststdio='undef' d_fchdir='undef' d_fchmod='undef' d_fchown='undef' -d_fcntl_can_lock='undef' d_fcntl='undef' +d_fcntl_can_lock='undef' d_fd_macros='undef' -d_fds_bits='undef' d_fd_set='undef' +d_fds_bits='undef' d_fgetpos='undef' -d_finitel='undef' d_finite='undef' +d_finitel='undef' d_flexfnam='undef' -d_flockproto='undef' d_flock='undef' +d_flockproto='undef' d_fork='define' +d_fp_class='undef' d_fpathconf='undef' +d_fpclass='undef' d_fpclassify='undef' d_fpclassl='undef' -d_fp_class='undef' -d_fpclass='undef' d_fpos64_t='undef' d_frexpl='undef' d_fs_data_s='undef' @@ -147,15 +120,11 @@ d_fstatvfs='undef' d_fsync='undef' d_ftello='undef' d_ftime='undef' -d_futimes='undef' -d_gdbm_ndbm_h_uses_prototypes='undef' -d_gdbmndbm_h_uses_prototypes='undef' -d_getaddrinfo='undef' d_getcwd='undef' d_getespwnam='undef' d_getfsstat='undef' -d_getgrent_r='undef' d_getgrent='undef' +d_getgrent_r='undef' d_getgrgid_r='undef' d_getgrnam_r='undef' d_getgrps='undef' @@ -168,11 +137,10 @@ d_gethostbyname_r='undef' d_gethostent_r='undef' d_gethostprotos='undef' d_getitimer='undef' -d_getlogin_r='undef' d_getlogin='undef' -d_getmntent='undef' +d_getlogin_r='undef' d_getmnt='undef' -d_getnameinfo='undef' +d_getmntent='undef' d_getnbyaddr='undef' d_getnbyname='undef' d_getnent='undef' @@ -194,8 +162,8 @@ d_getprotobynumber_r='undef' d_getprotoent_r='undef' d_getprotoprotos='undef' d_getprpwnam='undef' -d_getpwent_r='undef' d_getpwent='undef' +d_getpwent_r='undef' d_getpwnam_r='undef' d_getpwuid_r='undef' d_getsbyname='undef' @@ -206,34 +174,26 @@ d_getservbyport_r='undef' d_getservent_r='undef' d_getservprotos='undef' d_getspent='undef' -d_getspnam_r='undef' d_getspnam='undef' +d_getspnam_r='undef' d_gettimeod='undef' -d_gmtime64='undef' d_gmtime_r='undef' d_gnulibc='undef' d_grpasswd='undef' d_hasmntopt='undef' d_htonl='undef' -d_ilogbl='undef' -d_inc_version_list='undef' d_index='undef' d_inetaton='undef' -d_inetntop='undef' -d_inetpton='undef' d_int64_t='undef' d_isascii='undef' d_isfinite='undef' d_isinf='undef' -d_isnanl='undef' d_isnan='undef' +d_isnanl='undef' d_killpg='undef' d_lchown='undef' d_ldbl_dig='undef' -d_libm_lib_version='undef' d_link='undef' -d_localtime64='undef' -d_localtime_r_needs_tzset='undef' d_localtime_r='undef' d_locconv='undef' d_lockf='undef' @@ -242,54 +202,47 @@ d_longlong='undef' d_lseekproto='undef' d_lstat='undef' d_madvise='undef' -d_malloc_good_size='undef' -d_malloc_size='undef' d_mblen='undef' d_mbstowcs='undef' d_mbtowc='undef' -d_memchr='define' -d_memcmp='define' -d_memcpy='define' +d_memchr='undef' +d_memcmp='undef' +d_memcpy='undef' d_memmove='undef' d_memset='undef' d_mkdir='undef' d_mkdtemp='undef' d_mkfifo='undef' -d_mkstemps='undef' d_mkstemp='undef' -d_mktime64='undef' +d_mkstemps='undef' d_mktime='undef' d_mmap='undef' -d_modfl_pow32_bug='undef' -d_modflproto='undef' d_modfl='undef' +d_modfl_pow32_bug='undef' d_mprotect='undef' -d_msgctl='undef' +d_msg='undef' d_msg_ctrunc='undef' d_msg_dontroute='undef' -d_msgget='undef' -d_msghdr_s='undef' d_msg_oob='undef' d_msg_peek='undef' d_msg_proxy='undef' +d_msgctl='undef' +d_msgget='undef' +d_msghdr_s='undef' d_msgrcv='undef' d_msgsnd='undef' -d_msg='undef' d_msync='undef' d_munmap='undef' d_mymalloc='undef' -d_ndbm_h_uses_prototypes='undef' d_nice='undef' d_nl_langinfo='undef' d_nv_preserves_uv='undef' -d_nv_zero_is_allbits_zero='undef' +nv_preserves_uv_bits='0' d_off64_t='undef' d_old_pthread_create_joinable='undef' d_oldpthreads='undef' d_oldsock='undef' d_open3='undef' -nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0' -nv_preserves_uv_bits='0' d_pathconf='undef' d_pause='undef' d_perl_otherlibdirs='undef' @@ -297,11 +250,8 @@ d_phostname='undef' d_pipe='undef' d_poll='undef' d_portable='undef' -d_printf_format_null='undef' d_procselfexe='undef' -d_pseudofork='undef' d_pthread_atfork='undef' -d_pthread_attr_setscope='undef' d_pthread_yield='undef' d_pwage='undef' d_pwchange='undef' @@ -315,19 +265,18 @@ d_qgcvt='undef' d_quad='undef' d_random_r='undef' d_readdir64_r='undef' -d_readdir='define' +d_readdir='undef' d_readdir_r='undef' d_readlink='undef' d_readv='undef' d_recvmsg='undef' -d_rename='define' +d_rename='undef' d_rewinddir='undef' d_rmdir='undef' d_safebcpy='undef' d_safemcpy='undef' d_sanemcmp='undef' d_sbrkproto='undef' -d_scalbnl='undef' d_sched_yield='undef' d_scm_rights='undef' d_seekdir='undef' @@ -379,18 +328,14 @@ d_shmctl='undef' d_shmdt='undef' d_shmget='undef' d_sigaction='undef' -d_signbit='undef' d_sigprocmask='undef' d_sigsetjmp='undef' -d_sitearch='undef' d_sockatmark='undef' -d_snprintf='undef' d_sockatmarkproto='undef' d_socket='undef' d_socklen_t='undef' d_sockpair='undef' d_socks5_init='undef' -d_sprintf_returns_strlen='undef' d_sqrtl='undef' d_srand48_r='undef' d_srandom_r='undef' @@ -414,14 +359,12 @@ d_strerrm='strerror(e)' d_strerror='undef' d_strerror_r='undef' d_strftime='undef' -d_strlcat='undef' -d_strlcpy='undef' d_strtod='undef' d_strtol='undef' d_strtold='undef' d_strtoll='undef' d_strtoq='undef' -d_strtoul='define' +d_strtoul='undef' d_strtoull='undef' d_strtouq='undef' d_strxfrm='undef' @@ -438,7 +381,6 @@ d_tcsetpgrp='undef' d_telldir='undef' d_telldirproto='undef' d_time='define' -d_timegm='undef' d_times='undef' d_tm_tm_gmtoff='undef' d_tm_tm_zone='undef' @@ -452,7 +394,6 @@ d_umask='undef' d_uname='undef' d_union_semun='undef' d_unordered='undef' -d_unsetenv='undef' d_usleep='undef' d_usleepproto='undef' d_ustat='undef' @@ -465,7 +406,6 @@ d_voidsig='undef' d_voidtty='' d_volatile='undef' d_vprintf='define' -d_vsnprintf='undef' d_wait4='undef' d_waitpid='undef' d_wcstombs='undef' @@ -474,15 +414,11 @@ d_writev='undef' d_xenix='undef' db_hashtype='u_int32_t' db_prefixtype='size_t' -db_version_major='0' -db_version_minor='0' -db_version_patch='0' defvoidused=1 direntrytype='struct dirent' doublesize='8' drand01="((rand() & 0x7FFF) / (double) ((unsigned long)1 << 15))" drand48_r_proto='0' -dtrace='' eagain='EAGAIN' ebcdic='undef' endgrent_r_proto='0' @@ -496,9 +432,7 @@ fflushall='undef' firstmakefile='makefile' fpossize='4' fpostype=int -freetype=void -full_csh='' -full_sed='' +freetype=int getgrent_r_proto='0' getgrgid_r_proto='0' getgrnam_r_proto='0' @@ -536,12 +470,11 @@ i64type='int64_t' i8size='1' i8type='char' i_arpainet='undef' -i_assert='define' i_bsdioctl='' i_crypt='undef' i_db='undef' i_dbm='undef' -i_dirent='define' +i_dirent='undef' i_dld='undef' i_dlfcn='undef' i_fcntl='undef' @@ -549,8 +482,6 @@ i_float='undef' i_fp='undef' i_fp_class='undef' i_gdbm='undef' -i_gdbm_ndbm='undef' -i_gdbmndbm='undef' i_grp='undef' i_ieeefp='undef' i_inttypes='undef' @@ -560,7 +491,6 @@ i_limits='undef' i_locale='undef' i_machcthr='undef' i_malloc='undef' -i_mallocmalloc='undef' i_math='define' i_memory='undef' i_mntent='undef' @@ -580,7 +510,7 @@ i_shadow='undef' i_socks='undef' i_stdarg='define' i_stddef='undef' -i_stdlib='define' +i_stdlib='undef' i_string='define' i_sunmath='undef' i_sysaccess='undef' @@ -595,7 +525,6 @@ i_sysmode='undef' i_sysmount='undef' i_sysndir='undef' i_sysparam='undef' -i_syspoll='undef' i_sysresrc='undef' i_syssecrt='undef' i_sysselct='undef' @@ -637,10 +566,8 @@ longlongsize=8 longsize='4' lseeksize=4 lseektype=int -mad='undef' malloctype='int*' malloctype='void *' -mmaptype='void *' modetype='mode_t' modetype=int multiarch='undef' @@ -659,17 +586,14 @@ nvsize='8' nvtype='double' o_nonblock='O_NONBLOCK' obj_ext='.o' -old_pthread_create_joinable='' optimize='-O2' orderlib='false' osname='unknown' -osvers='unknown' -otherlibdirs=' ' -package='perl5' phostname='hostname' pidtype=int -privlib='/usr/local/lib/perl5/5.12' -privlibexp='/usr/local/lib/perl5/5.12' +pm_apiversion='5.005' +privlib='/usr/local/lib/perl5/5.7' +privlibexp='/usr/local/lib/perl5/5.7' procselfexe='' prototype='undef' ptrsize='4' @@ -682,22 +606,18 @@ randseedtype='int' rd_nodata='-1' readdir64_r_proto='0' readdir_r_proto='0' -sGMTIME_max='2147483647' -sGMTIME_min='0' -sLOCALTIME_max='2147483647' -sLOCALTIME_min='0' +sPRIEUldbl='"llE"' +sPRIFUldbl='"llF"' +sPRIGUldbl='"llG"' +sPRIXU64='"LX"' sPRId64='"Ld"' sPRIeldbl='"lle"' -sPRIEUldbl='"llE"' sPRIfldbl='"llf"' -sPRIFUldbl='"llF"' sPRIgldbl='"llg"' -sPRIGUldbl='"llG"' sPRIi64='"Li"' sPRIo64='"Lo"' sPRIu64='"Lu"' sPRIx64='"Lx"' -sPRIXU64='"LX"' sSCNfldbl='"llf"' sched_yield='sched_yield()' scriptdir='/usr/local/bin' @@ -712,26 +632,18 @@ setnetent_r_proto='0' setprotoent_r_proto='0' setpwent_r_proto='0' setservent_r_proto='0' -sh='/bin/sh' shmattype='void *' -shortsize='2' +shortsize=2 sig_name_init='0' sig_num_init='0' sig_size='1' signal_t=int -sitearch='/usr/local/lib/perl5/5.12/unknown' -sitearchexp='/usr/local/lib/perl5/5.12/unknown' -sitelib='/usr/local/lib/perl5/5.12' -sitelib_stem='/usr/local/lib/perl5' -sitelibexp='/usr/local/lib/perl5/5.12' sizesize=4 -sizetype='size_t' +sizetype=int socksizetype='int' srand48_r_proto='0' srandom_r_proto='0' -src='.' ssizetype=int -startperl='#!perl' stdchar=char stdio_base='((fp)->_IO_read_base)' stdio_bufsiz='((fp)->_IO_read_end - (fp)->_IO_read_base)' @@ -740,7 +652,6 @@ stdio_filbuf='' stdio_ptr='((fp)->_IO_read_ptr)' stdio_stream_array='' strerror_r_proto='0' -targetarch='' timetype=time_t tmpnam_r_proto='0' touch='touch' @@ -762,14 +673,10 @@ use5005threads='undef' use64bitall='undef' use64bitint='undef' usecrosscompile='undef' -usedevel='undef' usedl='undef' -usedtrace='undef' -usefaststdio='undef' useithreads='undef' uselargefiles='undef' uselongdouble='undef' -usemallocwrap='undef' usemorebits='undef' usemultiplicity='undef' usemymalloc='n' @@ -778,10 +685,8 @@ useopcode='true' useperlio='undef' useposix='true' usereentrant='undef' -userelocatableinc='undef' usesfio='false' useshrplib='false' -usesitecustomize='undef' usesocks='undef' usethreads='undef' usevendorprefix='undef' @@ -792,10 +697,6 @@ uvsize='4' uvtype='unsigned long' uvuformat='"lu"' uvxformat='"lx"' -vaproto='undef' -vendorarch='' -vendorarchexp='' -vendorlib_stem='' -vendorlibexp='' versiononly='undef' voidflags=1 +xs_apiversion='5.008' diff --git a/gnu/usr.bin/perl/win32/sync_ext.pl b/gnu/usr.bin/perl/win32/sync_ext.pl index cb09285561b..e482b69838d 100644 --- a/gnu/usr.bin/perl/win32/sync_ext.pl +++ b/gnu/usr.bin/perl/win32/sync_ext.pl @@ -1,14 +1,7 @@ -=begin comment +=comment Synchronize filename cases for extensions. -This script could be used to perform following renaming: -if there exist file, for example, "FiLeNaME.c" and -filename.obj then it renames "filename.obj" to "FiLeNaME.obj". -There is a problem when some compilers (e.g.Borland) generate -such .obj files and then "make" process will not treat them -as dependant and already maked files. - This script takes two arguments - first and second extensions to synchronize filename cases with. |