X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=makedef.pl;h=256eddd0b32d38755b89981f1b3632ea6daa917f;hb=aebd1ac7983c6d00ee0b79f7eb3bc5904d3b2bdf;hp=5f7c82234f4c268af7d45402ab9f13f0b338d005;hpb=57185c71ec028665c77b9bdf20d9fb51d8458287;p=p5sagit%2Fp5-mst-13.2.git diff --git a/makedef.pl b/makedef.pl index 5f7c822..256eddd 100644 --- a/makedef.pl +++ b/makedef.pl @@ -55,6 +55,7 @@ my $global_sym = "global.sym"; 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. @@ -88,6 +89,13 @@ unless ($PLATFORM eq 'win32' || $PLATFORM eq 'wince' || $PLATFORM eq 'MacOS' || } close(CFG); } +if ($PLATFORM eq 'win32' || $PLATFORM eq 'wince') { + open(CFG,"<..\\$config_sh") || die "Cannot open ..\\$config_sh: $!\n"; + if ((join '', ) =~ /^static_ext='(.*)'$/m) { + $static_ext = $1; + } + close(CFG); +} open(CFG,$config_h) || die "Cannot open $config_h: $!\n"; while () { @@ -588,14 +596,6 @@ unless ($define{'PERL_COPY_ON_WRITE'}) { )]; } -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 @@ -633,10 +633,10 @@ else { )]; } -unless ($define{'NO_PERL_MALLOC_WRAP'}) { +if ($define{'PERL_MALLOC_WRAP'}) { emit_symbols [qw( PL_memory_wrap - );] + )]; } unless ($define{'USE_ITHREADS'}) { @@ -1038,6 +1038,7 @@ if ($PLATFORM =~ /^win(?:32|ce)$/) { win32_pclose win32_rename win32_setmode + win32_chsize win32_lseek win32_tell win32_dup @@ -1344,6 +1345,15 @@ foreach my $symbol (qw( } } +# 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.