From: Jan Dubois Date: Fri, 18 Dec 2009 02:28:16 +0000 (-0800) Subject: Export PL_curinterp symbol for MULTIPLICITY without USE_ITHREADS X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=9307c420fad2f6f5bd314f9ed66dd53288703e09;p=p5sagit%2Fp5-mst-13.2.git Export PL_curinterp symbol for MULTIPLICITY without USE_ITHREADS This is necessary for XS extensions that define PERL_CORE. In that situation PERL_GET_CONTEXT will resolve to PL_curinterp, which is normally not exported (extensions call Perl_Gcurinterp_ptr() to get a pointer to PL_curinterp instead). With USE_ITHREADS defined PERL_GET_CONTEXT will expand to Perl_get_context() even inside the core because the context needs to be fetched from threadlocal storage. --- diff --git a/makedef.pl b/makedef.pl index 858c1eb..b4d76ea 100644 --- a/makedef.pl +++ b/makedef.pl @@ -1223,6 +1223,10 @@ if ($define{'MULTIPLICITY'}) { my $glob = readvar($f, sub { "Perl_" . $_[1] . $_[2] . "_ptr" }); emit_symbols $glob; } + unless ($define{'USE_ITHREADS'}) { + # XXX needed for XS extensions that define PERL_CORE + emit_symbol("PL_curinterp"); + } # XXX AIX seems to want the perlvars.h symbols, for some reason if ($PLATFORM eq 'aix' or $PLATFORM eq 'os2') { # OS/2 needs PL_thr_key my $glob = readvar($perlvars_h);