my $pp_sym = "pp.sym";
my $globvar_sym = "globvar.sym";
my $perlio_sym = "perlio.sym";
+my $static_ext = "";
if ($PLATFORM eq 'aix') {
# Nothing for now.
}
close(CFG);
}
+if ($PLATFORM eq 'win32' || $PLATFORM eq 'wince') {
+ open(CFG,"<..\\$config_sh") || die "Cannot open ..\\$config_sh: $!\n";
+ if ((join '', <CFG>) =~ /^static_ext='(.*)'$/m) {
+ $static_ext = $1;
+ }
+ close(CFG);
+}
open(CFG,$config_h) || die "Cannot open $config_h: $!\n";
while (<CFG>) {
dlsym
dlerror
dlclose
+ dup2
+ dup
my_tmpfile
my_tmpnam
my_flock
nthreads_cond
os2_cond_wait
os2_stat
+ os2_execname
+ async_mssleep
+ msCounter
+ InfoTable
pthread_join
pthread_create
pthread_detach
)];
}
-unless ($define{'PERL_FLEXIBLE_EXCEPTIONS'}) {
- skip_symbols [qw(
- PL_protect
- Perl_default_protect
- Perl_vdefault_protect
- )];
-}
-
unless ($define{'USE_REENTRANT_API'}) {
skip_symbols [qw(
PL_reentrant_buffer
)];
}
+if ($define{'PERL_MALLOC_WRAP'}) {
+ emit_symbols [qw(
+ PL_memory_wrap
+ )];
+}
+
unless ($define{'USE_ITHREADS'}) {
skip_symbols [qw(
PL_thr_key
Perl_mg_dup
Perl_re_dup
Perl_sv_dup
+ Perl_rvpv_dup
Perl_sys_intern_dup
Perl_ptr_table_clear
Perl_ptr_table_fetch
PL_OpPtr
PL_OpSlab
PL_OpSpace
+ Perl_Slab_Alloc
+ Perl_Slab_Free
)];
}
win32_pclose
win32_rename
win32_setmode
+ win32_chsize
win32_lseek
win32_tell
win32_dup
}
}
+# records of type boot_module for statically linked modules (except Dynaloader)
+$static_ext =~ s/\//__/g;
+$static_ext =~ s/\bDynaLoader\b//;
+my @stat_mods = map {"boot_$_"} grep {/\S/} split /\s+/, $static_ext;
+foreach my $symbol (@stat_mods)
+ {
+ try_symbol($symbol);
+ }
+
# Now all symbols should be defined because
# next we are going to output them.
}
if ($PLATFORM eq 'os2') {
- print "; LAST_ORDINAL=$sym_ord\n";
+ print <<EOP;
+ dll_perlmain=main
+ fill_extLibpath
+ dir_subst
+ Perl_OS2_handler_install
+
+; LAST_ORDINAL=$sym_ord
+EOP
}
sub emit_symbol {