X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=makedef.pl;h=7da0575b7fa71cb55fd55daaeb1473cb5b336bdf;hb=c597ea9d1c1012b41c344b95f9168d25caff8204;hp=3db62ab7ebae41ec5555d70960b4b26364029f41;hpb=59ad941d06909cf9027c5fb10edca7d68fc7149b;p=p5sagit%2Fp5-mst-13.2.git diff --git a/makedef.pl b/makedef.pl index 3db62ab..7da0575 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 () { @@ -400,6 +408,10 @@ elsif ($PLATFORM eq 'os2') { nthreads_cond os2_cond_wait os2_stat + os2_execname + async_mssleep + msCounter + InfoTable pthread_join pthread_create pthread_detach @@ -629,6 +641,12 @@ else { )]; } +if ($define{'PERL_MALLOC_WRAP'}) { + emit_symbols [qw( + PL_memory_wrap + )]; +} + unless ($define{'USE_ITHREADS'}) { skip_symbols [qw( PL_thr_key @@ -1028,6 +1046,7 @@ if ($PLATFORM =~ /^win(?:32|ce)$/) { win32_pclose win32_rename win32_setmode + win32_chsize win32_lseek win32_tell win32_dup @@ -1334,6 +1353,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. @@ -1344,6 +1372,10 @@ foreach my $symbol (sort keys %export) { if ($PLATFORM eq 'os2') { print <