X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=makedef.pl;h=ef84c187960f893e03ec7b263dc06ff874165046;hb=bc4938c65d770a20856c44a0d21026bcc6f41d7b;hp=e09f2bcc06a5342646fafe13be8daa9278cda2dd;hpb=b54a2e1e86bb17fbd0ad24268345864a9fcd8dc6;p=p5sagit%2Fp5-mst-13.2.git diff --git a/makedef.pl b/makedef.pl index e09f2bc..ef84c18 100644 --- a/makedef.pl +++ b/makedef.pl @@ -29,6 +29,16 @@ my %PLATFORM; defined $PLATFORM || die "PLATFORM undefined, must be one of: @PLATFORM\n"; exists $PLATFORM{$PLATFORM} || die "PLATFORM must be one of: @PLATFORM\n"; +my %exportperlmalloc = + ( + Perl_malloc => "malloc", + Perl_mfree => "free", + Perl_realloc => "realloc", + Perl_calloc => "calloc", + ); + +my $exportperlmalloc = $PLATFORM eq 'os2'; + my $config_sh = "config.sh"; my $config_h = "config.h"; my $thrdvar_h = "thrdvar.h"; @@ -95,7 +105,6 @@ if ($define{USE_ITHREADS}) { $define{PERL_IMPLICIT_CONTEXT} ||= $define{USE_ITHREADS} || - $define{USE_5005THREADS} || $define{MULTIPLICITY} ; if ($define{USE_ITHREADS} && $PLATFORM ne 'win32' && $^O ne 'darwin') { @@ -108,7 +117,7 @@ my $sym_ord = 0; if ($PLATFORM =~ /^win(?:32|ce)$/) { warn join(' ',keys %define)."\n"; - ($dll = ($define{PERL_DLL} || "perl58")) =~ s/\.dll$//i; + ($dll = ($define{PERL_DLL} || "perl59")) =~ s/\.dll$//i; print "LIBRARY $dll\n"; print "DESCRIPTION 'Perl interpreter'\n"; print "EXPORTS\n"; @@ -126,7 +135,7 @@ elsif ($PLATFORM eq 'os2') { last if /^\s*EXPORTS\b/; } while (<$fh>) { - $ordinal{$1} = $2 if /^\s*"(\w+)"\s*\@(\d+)\s*$/; + $ordinal{$1} = $2 if /^\s*"(\w+)"\s*(?:=\s*"\w+"\s*)?\@(\d+)\s*$/; # This allows skipping ordinals which were used in older versions $sym_ord = $1 if /^\s*;\s*LAST_ORDINAL\s*=\s*(\d+)\s*$/; } @@ -160,7 +169,7 @@ elsif ($PLATFORM eq 'aix') { } elsif ($PLATFORM eq 'netware') { if ($FILETYPE eq 'def') { - print "LIBRARY perl58\n"; + print "LIBRARY perl59\n"; print "DESCRIPTION 'Perl interpreter for NetWare'\n"; print "EXPORTS\n"; } @@ -244,7 +253,14 @@ if ($PLATFORM eq 'win32') { Perl_my_popen )]; } -elsif ($PLATFORM eq 'wince') { +else { + skip_symbols [qw( + Perl_do_spawn + Perl_do_spawn_nowait + Perl_do_aspawn + )]; +} +if ($PLATFORM eq 'wince') { skip_symbols [qw( PL_statusvalue_vms PL_archpat_auto @@ -544,6 +560,13 @@ else { )]; } +unless ($define{'PERL_COPY_ON_WRITE'}) { + skip_symbols [qw( + Perl_sv_setsv_cow + Perl_sv_release_IVX + )]; +} + unless ($define{'PERL_FLEXIBLE_EXCEPTIONS'}) { skip_symbols [qw( PL_protect @@ -565,7 +588,7 @@ if ($define{'MYMALLOC'}) { Perl_strdup Perl_putenv )]; - if ($define{'USE_5005THREADS'} || $define{'USE_ITHREADS'}) { + if ($define{'USE_ITHREADS'}) { emit_symbols [qw( PL_malloc_mutex )]; @@ -585,13 +608,13 @@ else { )]; } -unless ($define{'USE_5005THREADS'} || $define{'USE_ITHREADS'}) { +unless ($define{'USE_ITHREADS'}) { skip_symbols [qw( PL_thr_key )]; } -unless ($define{'USE_5005THREADS'}) { +# USE_5005THREADS symbols. Kept as reference for easier removal skip_symbols [qw( PL_sv_mutex PL_strtab_mutex @@ -618,7 +641,6 @@ unless ($define{'USE_5005THREADS'}) { Perl_magic_mutexfree Perl_sv_lock )]; -} unless ($define{'USE_ITHREADS'}) { skip_symbols [qw( @@ -628,6 +650,7 @@ unless ($define{'USE_ITHREADS'}) { PL_regex_padav PL_sharedsv_space PL_sharedsv_space_mutex + PL_dollarzero_mutex Perl_dirp_dup Perl_cx_dup Perl_si_dup @@ -697,6 +720,10 @@ unless ($define{'PL_OP_SLAB_ALLOC'}) { )]; } +unless ($define{'THREADS_HAVE_PIDS'}) { + skip_symbols [qw(PL_ppid)]; +} + sub readvar { my $file = shift; my $proc = shift || sub { "PL_$_[2]" }; @@ -711,11 +738,6 @@ sub readvar { return \@syms; } -if ($define{'USE_5005THREADS'}) { - my $thrd = readvar($thrdvar_h); - skip_symbols $thrd; -} - if ($define{'PERL_GLOBAL_STRUCT'}) { my $global = readvar($perlvars_h); skip_symbols $global; @@ -738,16 +760,20 @@ my @layer_syms = qw( PerlIOBase_error PerlIOBase_fileno PerlIOBase_pushed + PerlIOBase_binmode + PerlIOBase_popped PerlIOBase_read PerlIOBase_setlinebuf PerlIOBase_unread PerlIOBuf_bufsiz PerlIOBuf_fill PerlIOBuf_flush + PerlIOBuf_get_base PerlIOBuf_get_cnt PerlIOBuf_get_ptr PerlIOBuf_open PerlIOBuf_pushed + PerlIOBuf_popped PerlIOBuf_read PerlIOBuf_seek PerlIOBuf_set_ptrcnt @@ -767,6 +793,7 @@ my @layer_syms = qw( PerlIO_apply_layera PerlIO_pending PerlIO_push + PerlIO_pop PerlIO_sv_dup PerlIO_perlio @@ -876,6 +903,9 @@ if ($define{'USE_PERLIO'}) { Perl_PerlIO_tell Perl_PerlIO_unread Perl_PerlIO_write + PL_def_layerlist + PL_known_layers + PL_perlio )]; } else { @@ -931,7 +961,7 @@ else { my $glob = readvar($intrpvar_h); emit_symbols $glob; } - unless ($define{'MULTIPLICITY'} || $define{'USE_5005THREADS'}) { + unless ($define{'MULTIPLICITY'}) { my $glob = readvar($thrdvar_h); emit_symbols $glob; } @@ -1049,6 +1079,7 @@ if ($PLATFORM =~ /^win(?:32|ce)$/) { win32_link win32_unlink win32_utime + win32_gettimeofday win32_uname win32_wait win32_waitpid @@ -1122,6 +1153,7 @@ elsif ($PLATFORM eq 'os2') { @missing = grep { !exists $mapped{$_} } keys %export; + @missing = grep { !exists $exportperlmalloc{$_} } @missing; delete $export{$_} foreach @missing; } elsif ($PLATFORM eq 'MacOS') { @@ -1268,6 +1300,8 @@ foreach my $symbol (qw( Perl_sv_catsv Perl_sv_catpvn Perl_sv_2pv + nw_freeenviron + Remove_Thread_Ctx )) { try_symbol($symbol); @@ -1321,6 +1355,10 @@ sub output_symbol { elsif ($PLATFORM eq 'os2') { printf qq( %-31s \@%s\n), qq("$symbol"), $ordinal{$symbol} || ++$sym_ord; + printf qq( %-31s \@%s\n), + qq("$exportperlmalloc{$symbol}" = "$symbol"), + $ordinal{$exportperlmalloc{$symbol}} || ++$sym_ord + if $exportperlmalloc and exists $exportperlmalloc{$symbol}; } elsif ($PLATFORM eq 'aix' || $PLATFORM eq 'MacOS') { print "$symbol\n"; @@ -1343,7 +1381,7 @@ perl_destruct perl_free perl_parse perl_run -# Oddities from PerlIO +# Oddities from PerlIO PerlIO_binmode PerlIO_getpos PerlIO_init