}
}
+# https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B#Internal_version_numbering
my $cctype = $ARGS{CCTYPE} =~ s/MSVC//r;
if (! $define{HAS_SETLOCALE} && $define{HAS_POSIX_2008_LOCALE}) {
$define{USE_POSIX_2008_LOCALE} = 1;
my $file = $ARGS{TARG_DIR} . shift;
my $hash = shift;
my $proc = shift;
- open my $vars, '<', $file or die die "Cannot open $file: $!\n";
+ open my $vars, '<', $file or die "Cannot open $file: $!\n";
while (<$vars>) {
# All symbols have a Perl_ prefix because that's what embed.h sticks
if ($ARGS{PLATFORM} ne 'os2') {
++$skip{$_} foreach qw(
- PL_cryptseen
PL_opsave
- Perl_GetVars
Perl_dump_fds
Perl_my_bcopy
Perl_my_bzero
++$skip{PL_user_def_props_aTHX};
}
-# USE_5005THREADS symbols. Kept as reference for easier removal
-++$skip{$_} foreach qw(
- PL_sv_mutex
- PL_strtab_mutex
- PL_svref_mutex
- PL_cred_mutex
- PL_eval_mutex
- PL_fdpid_mutex
- PL_sv_lock_mutex
- PL_eval_cond
- PL_eval_owner
- PL_threads_mutex
- PL_nthreads
- PL_nthreads_cond
- PL_threadnum
- PL_threadsv_names
- PL_thrsv
- PL_vtbl_mutex
- Perl_condpair_magic
- Perl_new_struct_thread
- Perl_per_thread_magicals
- Perl_thread_create
- Perl_find_threadsv
- Perl_unlock_condpair
- Perl_magic_mutexfree
- Perl_sv_lock
- );
-
unless ($define{'USE_ITHREADS'}) {
++$skip{$_} foreach qw(
PL_keyword_plugin_mutex
PL_regex_pad
PL_regex_padav
PL_dollarzero_mutex
+ PL_env_mutex
PL_hints_mutex
PL_locale_mutex
PL_lc_numeric_mutex
);
}
-unless ($define{'PERL_NEED_APPCTX'}) {
- ++$skip{PL_appctx};
-}
-
-unless ($define{'PERL_NEED_TIMESBASE'}) {
- ++$skip{PL_timesbase};
-}
-
unless ($define{'DEBUG_LEAKING_SCALARS'}) {
++$skip{PL_sv_serial};
}
);
}
-unless ($define{'PERL_GLOBAL_STRUCT'}) {
- ++$skip{PL_global_struct_size};
-}
-
-unless ($define{'PERL_GLOBAL_STRUCT_PRIVATE'}) {
- ++$skip{$_} foreach qw(
- PL_my_cxt_keys
- PL_my_cxt_keys_size
- Perl_my_cxt_index
- );
-}
-
unless ($define{HAS_MMAP}) {
++$skip{PL_mmap_page_size};
}
++$skip{Perl_signbit};
}
-if ($define{'PERL_GLOBAL_STRUCT'}) {
- readvar('perlvars.h', \%skip);
- # This seems like the least ugly way to cope with the fact that PL_sh_path
- # is mentioned in perlvar.h and globvar.sym, and always exported.
- delete $skip{PL_sh_path};
- ++$export{Perl_GetVars};
- try_symbols(qw(PL_Vars PL_VarsPtr))
- unless $ARGS{CCTYPE} eq 'GCC' || $define{PERL_GLOBAL_STRUCT_PRIVATE};
-} else {
- ++$skip{$_} foreach qw(Perl_init_global_struct Perl_free_global_struct);
-}
-
++$skip{PL_op_exec_cnt}
unless $define{PERL_TRACE_OPS};
++$skip{Perl_quadmath_format_single};
}
+unless ($Config{d_mbrlen}) {
+ ++$skip{PL_mbrlen_ps};
+}
+
+unless ($Config{d_mbrtowc}) {
+ ++$skip{PL_mbrtowc_ps};
+}
+
+unless ($Config{d_wcrtomb}) {
+ ++$skip{PL_wcrtomb_ps};
+}
+
###############################################################################
# At this point all skip lists should be completed, as we are about to test
# variables
-if ($define{'MULTIPLICITY'} && $define{PERL_GLOBAL_STRUCT}) {
- readvar('perlvars.h', \%export, sub { "Perl_" . $_[1] . $_[2] . "_ptr" });
- # XXX AIX seems to want the perlvars.h symbols, for some reason
- if ($ARGS{PLATFORM} eq 'aix' or $ARGS{PLATFORM} eq 'os2') { # OS/2 needs PL_thr_key
- readvar('perlvars.h', \%export);
- }
-}
-else {
- unless ($define{'PERL_GLOBAL_STRUCT'}) {
- readvar('perlvars.h', \%export);
- }
- unless ($define{MULTIPLICITY}) {
- readvar('intrpvar.h', \%export);
- }
+readvar('perlvars.h', \%export);
+unless ($define{MULTIPLICITY}) {
+ readvar('intrpvar.h', \%export);
}
# Oddities from PerlIO
win32_get_childenv
win32_spawnvp
Perl_init_os_extras
- Perl_thread_create
Perl_win32_init
Perl_win32_term
RunPerl
elsif ($ARGS{PLATFORM} eq 'netware') {
try_symbols(qw(
Perl_init_os_extras
- Perl_thread_create
Perl_nw5_init
RunPerl
AllocStdPerl
print "LIBRARY $dll\n";
# The DESCRIPTION module definition file statement is not supported
# by VC7 onwards.
- if ($ARGS{CCTYPE} =~ /^(?:MSVC60|GCC)$/) {
+ if ($ARGS{CCTYPE} eq 'GCC') {
print "DESCRIPTION 'Perl interpreter'\n";
}
print "EXPORTS\n";