X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=makedef.pl;h=7da0575b7fa71cb55fd55daaeb1473cb5b336bdf;hb=c597ea9d1c1012b41c344b95f9168d25caff8204;hp=4ea12b3b546a453c737a5994334190b9f0baf442;hpb=75d0c946f01ada3e3b50d0e861dacec3faddf7d5;p=p5sagit%2Fp5-mst-13.2.git diff --git a/makedef.pl b/makedef.pl index 4ea12b3..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 () { @@ -100,7 +108,9 @@ close(CFG); # perl.h logic duplication begins -$define{PL_OP_SLAB_ALLOC} = 1; +if ($define{PERL_IMPLICIT_SYS}) { + $define{PL_OP_SLAB_ALLOC} = 1; +} if ($define{USE_ITHREADS}) { if (!$define{MULTIPLICITY}) { @@ -375,6 +385,8 @@ elsif ($PLATFORM eq 'os2') { dlsym dlerror dlclose + dup2 + dup my_tmpfile my_tmpnam my_flock @@ -396,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 @@ -625,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 @@ -734,6 +756,8 @@ unless ($define{'PL_OP_SLAB_ALLOC'}) { PL_OpPtr PL_OpSlab PL_OpSpace + Perl_Slab_Alloc + Perl_Slab_Free )]; } @@ -1022,6 +1046,7 @@ if ($PLATFORM =~ /^win(?:32|ce)$/) { win32_pclose win32_rename win32_setmode + win32_chsize win32_lseek win32_tell win32_dup @@ -1328,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. @@ -1336,7 +1370,14 @@ foreach my $symbol (sort keys %export) { } if ($PLATFORM eq 'os2') { - print "; LAST_ORDINAL=$sym_ord\n"; + print <