my $exportperlmalloc = $ARGS{PLATFORM} eq 'os2';
-my $config_h = $ARGS{PLATFORM} eq 'wince' ? 'xconfig.h' : 'config.h';
+my $config_h = 'config.h';
open(CFG, '<', $config_h) || die "Cannot open $config_h: $!\n";
while (<CFG>) {
$define{$1} = 1 if /^\s*\#\s*define\s+(MYMALLOC|MULTIPLICITY
}
}
+if ($ARGS{PLATFORM} ne 'win32') {
+ ++$skip{$_} foreach qw(
+ Perl_my_setlocale
+ );
+}
+
unless ($define{UNLINK_ALL_VERSIONS}) {
++$skip{Perl_unlnk};
}
Perl_debstackptrs
Perl_pad_sv
Perl_pad_setsv
+ Perl_set_padlist
Perl_hv_assert
PL_watchaddr
PL_watchok
Perl_my_cxt_index
);
}
+if ($define{'NO_MATHOMS'}) {
+ # win32 builds happen in the win32/ subdirectory, but vms builds happen
+ # at the top level, so we need to look in two candidate locations for
+ # the mathoms.c file.
+ my ($file) = grep { -f } qw( mathoms.c ../mathoms.c )
+ or die "No mathoms.c file found in . or ..\n";
+ open my $mathoms, '<', $file
+ or die "Cannot open $file: $!\n";
+ while (<$mathoms>) {
+ ++$skip{$1} if /\A ( NATIVE_TO_NEED
+ | ASCII_TO_NEED
+ | Perl_\w+ ) \s* \( /axms;
+ }
+}
unless ($define{'PERL_NEED_APPCTX'}) {
++$skip{PL_appctx};
++$skip{PL_memory_debug_header};
}
-unless ($define{PERL_MAD}) {
- ++$skip{$_} foreach qw(
- PL_madskills
- PL_xmlfp
- );
-}
-
unless ($define{'MULTIPLICITY'}) {
++$skip{$_} foreach qw(
PL_interp_size
);
}
+unless ($define{'USE_C_BACKTRACE'}) {
+ ++$skip{Perl_get_c_backtrace_dump};
+ ++$skip{Perl_dump_c_backtrace};
+}
+
unless ($define{HAVE_INTERP_INTERN}) {
++$skip{$_} foreach qw(
Perl_sys_intern_clear
Perl_PerlIO_get_cnt
Perl_PerlIO_get_ptr
Perl_PerlIO_read
+ Perl_PerlIO_restore_errno
+ Perl_PerlIO_save_errno
Perl_PerlIO_seek
Perl_PerlIO_set_cnt
Perl_PerlIO_set_ptrcnt
# Remaining remnants that _may_ be functions are handled below.
}
+unless ($define{'USE_QUADMATH'}) {
+ ++$skip{Perl_quadmath_format_needed};
+ ++$skip{Perl_quadmath_format_single};
+}
+
###############################################################################
# At this point all skip lists should be completed, as we are about to test
foreach (@syms) {
my $syms = $ARGS{TARG_DIR} . $_;
open my $global, '<', $syms or die "failed to open $syms: $!\n";
- # Functions already have a Perl_ prefix
- # Variables need a PL_ prefix
- my $prefix = $syms =~ /var\.sym$/i ? 'PL_' : '';
while (<$global>) {
next unless /^([A-Za-z].*)/;
- my $symbol = "$prefix$1";
+ my $symbol = "$1";
++$export{$symbol} unless exists $skip{$symbol};
}
}