X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=makedef.pl;h=74773fb3298ccefffbc384064655e577128fef79;hb=18aba96f40a877297fb70961dbd4be7bc6f1c199;hp=564ded0f76b8b688503fadea93d53d009630095f;hpb=3db8f154c4c6e098a5a0bdf7932e8f86fbd2c451;p=p5sagit%2Fp5-mst-13.2.git diff --git a/makedef.pl b/makedef.pl index 564ded0..74773fb 100644 --- a/makedef.pl +++ b/makedef.pl @@ -6,13 +6,20 @@ # and by MacOS Classic. # # reads global.sym, pp.sym, perlvars.h, intrpvar.h, thrdvar.h, config.h -# On OS/2 reads miniperl.map as well +# On OS/2 reads miniperl.map and the previous version of perl5.def as well my $PLATFORM; my $CCTYPE; while (@ARGV) { my $flag = shift; + if ($flag =~ s/^CC_FLAGS=/ /) { + for my $fflag ($flag =~ /(?:^|\s)-D(\S+)/g) { + $fflag .= '=1' unless $fflag =~ /^(\w+)=/; + $define{$1} = $2 if $fflag =~ /^(\w+)=(.+)$/; + } + next; + } $define{$1} = 1 if ($flag =~ /^-D(\w+)$/); $define{$1} = $2 if ($flag =~ /^-D(\w+)=(.+)$/); $CCTYPE = $1 if ($flag =~ /^CCTYPE=(\w+)$/); @@ -417,7 +424,14 @@ elsif ($PLATFORM eq 'os2') { os2error ResetWinError CroakWinError + PL_do_undump )]); + emit_symbols([qw(os2_cond_wait + pthread_join + pthread_create + pthread_detach + )]) + if $define{'USE_5005THREADS'} or $define{'USE_ITHREADS'}; } elsif ($PLATFORM eq 'MacOS') { skip_symbols [qw( @@ -560,6 +574,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 @@ -643,6 +664,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 @@ -757,6 +779,8 @@ my @layer_syms = qw( PerlIOBase_read PerlIOBase_setlinebuf PerlIOBase_unread + PerlIOBase_noop_ok + PerlIOBase_noop_fail PerlIOBuf_bufsiz PerlIOBuf_fill PerlIOBuf_flush @@ -939,7 +963,7 @@ if ($define{'MULTIPLICITY'}) { emit_symbols $glob; } # XXX AIX seems to want the perlvars.h symbols, for some reason - if ($PLATFORM eq 'aix') { + if ($PLATFORM eq 'aix' or $PLATFORM eq 'os2') { # OS/2 needs PL_thr_key my $glob = readvar($perlvars_h); emit_symbols $glob; } @@ -982,6 +1006,7 @@ if ($PLATFORM =~ /^win(?:32|ce)$/) { Perl_init_os_extras Perl_thread_create Perl_win32_init + Perl_win32_term RunPerl win32_async_check win32_errno