summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Dubois <jand@activestate.com>2009-12-17 18:28:16 -0800
committerJan Dubois <jand@activestate.com>2009-12-17 18:28:16 -0800
commit9307c420fad2f6f5bd314f9ed66dd53288703e09 (patch)
tree9a2220df2fbb1128bf0ce8698fdda2bf58861b77
parent8703a9a4fd75723318bc4ba1afc42a215806f2d1 (diff)
downloadperl-9307c420fad2f6f5bd314f9ed66dd53288703e09.tar.gz
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.
-rw-r--r--makedef.pl4
1 files changed, 4 insertions, 0 deletions
diff --git a/makedef.pl b/makedef.pl
index 858c1eb46a..b4d76ea699 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);