summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2011-08-19 12:12:16 +0200
committerNicholas Clark <nick@ccl4.org>2011-08-23 11:28:55 +0200
commit8dd15074b0ebb0005614fdc3e7a8255729b7207b (patch)
treee89167bf1a3b11ab5183351113ed9df78804486f
parent9387abf86b0530ac747550bd0db51dfe0c72f1a1 (diff)
downloadperl-8dd15074b0ebb0005614fdc3e7a8255729b7207b.tar.gz
Handle PL_sh_path better in globvar.sym and makedef.pl
PL_sh_path needs some form of special case because it is conditionally defined either in perlvar.h or perl.h, but globvar.sym mentions all symbols unconditionally, and undef -DPERL_GLOBAL_STRUCT perlvar.h is parsed as an unconditional skip list.
-rw-r--r--globvar.sym1
-rw-r--r--makedef.pl3
2 files changed, 4 insertions, 0 deletions
diff --git a/globvar.sym b/globvar.sym
index 06fe8afb59..1cbdc34f32 100644
--- a/globvar.sym
+++ b/globvar.sym
@@ -47,6 +47,7 @@ regkind
revision
runops_dbg
runops_std
+sh_path
sig_name
sig_num
simple
diff --git a/makedef.pl b/makedef.pl
index a4b5ced556..318202f8ac 100644
--- a/makedef.pl
+++ b/makedef.pl
@@ -530,6 +530,9 @@ if ($define{HAS_SIGNBIT}) {
if ($define{'PERL_GLOBAL_STRUCT'}) {
readvar($perlvars_h, \%skip);
+ # This seems like the least ugly way to cope with the fact that PL_sh_path
+ # is mentioned in perlvar.h and globvar.sym, and always exported.
+ delete $skip{PL_sh_path};
++$export{Perl_GetVars};
try_symbols(qw(PL_Vars PL_VarsPtr)) unless $ARGS{CCTYPE} eq 'GCC';
} else {