X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/c69033f2a629160559f680da8e4e5a7e3c4c3a0c..c2b4a044213bea86e9e2d063d8cade83f2b9aa8b:/makedef.pl diff --git a/makedef.pl b/makedef.pl index bc47833..60cc79b 100644 --- a/makedef.pl +++ b/makedef.pl @@ -36,6 +36,25 @@ my %PLATFORM; defined $PLATFORM || die "PLATFORM undefined, must be one of: @PLATFORM\n"; exists $PLATFORM{$PLATFORM} || die "PLATFORM must be one of: @PLATFORM\n"; +if ($PLATFORM eq 'win32' or $PLATFORM eq 'wince' or $PLATFORM eq "aix") { + # Add the compile-time options that miniperl was built with to %define. + # On Win32 these are not the same options as perl itself will be built + # with since miniperl is built with a canned config (one of the win32/ + # config_H.*) and none of the BUILDOPT's that are set in the makefiles, + # but they do include some #define's that are hard-coded in various + # source files and header files and don't include any BUILDOPT's that + # the user might have chosen to disable because the canned configs are + # minimal configs that don't include any of those options. + my $opts = ($PLATFORM eq 'wince' ? '-MCross' : ''); # for wince need Cross.pm to get Config.pm + my $config = `$^X $opts -Ilib -V`; + my($options) = $config =~ /^ Compile-time options: (.*?)\n^ \S/ms; + $options =~ s/\s+/ /g; + print STDERR "Options: ($options)\n"; + foreach (split /\s+/, $options) { + $define{$_} = 1; + } +} + my %exportperlmalloc = ( Perl_malloc => "malloc", @@ -133,8 +152,9 @@ if ($define{USE_ITHREADS} && $PLATFORM ne 'win32' && $^O ne 'darwin') { my $sym_ord = 0; +print STDERR "Defines: (" . join(' ', sort keys %define) . ")\n"; + if ($PLATFORM =~ /^win(?:32|ce)$/) { - warn join(' ',keys %define)."\n"; ($dll = ($define{PERL_DLL} || "perl59")) =~ s/\.dll$//i; print "LIBRARY $dll\n"; print "DESCRIPTION 'Perl interpreter'\n"; @@ -231,7 +251,6 @@ if ($PLATFORM eq 'win32') { PL_linestart PL_modcount PL_pending_ident - PL_sortcxix PL_sublex_info PL_timesbuf main @@ -269,6 +288,7 @@ if ($PLATFORM eq 'win32') { Perl_getenv_len Perl_my_pclose Perl_my_popen + Perl_my_sprintf )]; } else { @@ -289,7 +309,6 @@ if ($PLATFORM eq 'wince') { PL_linestart PL_modcount PL_pending_ident - PL_sortcxix PL_sublex_info PL_timesbuf PL_collation_ix @@ -346,6 +365,7 @@ if ($PLATFORM eq 'wince') { Perl_getenv_len Perl_my_pclose Perl_my_popen + Perl_my_sprintf )]; } elsif ($PLATFORM eq 'aix') { @@ -490,7 +510,6 @@ elsif ($PLATFORM eq 'netware') { PL_linestart PL_modcount PL_pending_ident - PL_sortcxix PL_sublex_info PL_timesbuf main @@ -564,6 +583,7 @@ unless ($define{'DEBUGGING'}) { Perl_debprofdump Perl_debstack Perl_debstackptrs + Perl_pad_sv Perl_sv_peek PL_block_type PL_watchaddr @@ -643,10 +663,10 @@ else { )]; } -unless ($define{'PERL_MALLOC_WRAP'}) { +if ($define{'PERL_USE_SAFE_PUTENV'}) { skip_symbols [qw( - PL_memory_wrap - )]; + PL_use_safe_putenv + )]; } unless ($define{'USE_ITHREADS'}) { @@ -731,6 +751,10 @@ unless ($define{'USE_ITHREADS'}) { unless ($define{'PERL_IMPLICIT_CONTEXT'}) { skip_symbols [qw( + PL_my_ctx_mutex + PL_my_cxt_index + PL_my_cxt_list + PL_my_cxt_size Perl_croak_nocontext Perl_die_nocontext Perl_deb_nocontext @@ -744,6 +768,7 @@ unless ($define{'PERL_IMPLICIT_CONTEXT'}) { Perl_sv_setpvf_nocontext Perl_sv_catpvf_mg_nocontext Perl_sv_setpvf_mg_nocontext + Perl_my_cxt_init )]; } @@ -794,6 +819,23 @@ unless ($define{'PERL_DONT_CREATE_GVSV'}) { Perl_gv_SVadd )]; } +if ($define{'SPRINTF_RETURNS_STRLEN'}) { + skip_symbols [qw( + Perl_my_sprintf + )]; +} +unless ($define{'PERL_USES_PL_PIDSTATUS'}) { + skip_symbols [qw( + Perl_pidgone + PL_pidstatus + )]; +} + +unless ($define{'PERL_TRACK_MEMPOOL'}) { + skip_symbols [qw( + PL_memory_debug_header + )]; +} unless ($define{'d_mmap'}) { skip_symbols [qw(