summaryrefslogtreecommitdiff
path: root/makedef.pl
diff options
context:
space:
mode:
authorCraig A. Berry <craigberry@mac.com>2012-10-20 17:27:01 -0500
committerCraig A. Berry <craigberry@mac.com>2012-10-20 17:27:01 -0500
commitdc2a396bba8663b0124f0368814efac7cc73496e (patch)
tree649ad8452dcd79d2c4a09f9fb46648f90640a625 /makedef.pl
parente2a80cb510d52963a6daffd5dec140417f3b625e (diff)
downloadperl-dc2a396bba8663b0124f0368814efac7cc73496e.tar.gz
Exclude signal-related symbols on VMS without home-grown signalling.
config.h defines KILL_BY_SIGPRC when we are using our own signal handling functions based on the sys$sigprc system service. But when *not* doing that, and since using makedef.pl to define our exportable symbols, we have not properly excluded the symbols involved in the home-grown implementation. It's not a common configuration, but since it's configurable, it should work, and now it will.
Diffstat (limited to 'makedef.pl')
-rw-r--r--makedef.pl11
1 files changed, 11 insertions, 0 deletions
diff --git a/makedef.pl b/makedef.pl
index 0923f40117..9550042f2d 100644
--- a/makedef.pl
+++ b/makedef.pl
@@ -105,6 +105,7 @@ open(CFG, '<', 'config.h') || die "Cannot open config.h: $!\n";
while (<CFG>) {
$define{$1} = 1 if /^\s*\#\s*define\s+(MYMALLOC|MULTIPLICITY
|SPRINTF_RETURNS_STRLEN
+ |KILL_BY_SIGPRC
|(?:PERL|USE|HAS)_\w+)\b/x;
}
close(CFG);
@@ -471,9 +472,19 @@ if ($define{HAS_SIGACTION}) {
if ($ARGS{PLATFORM} eq 'vms') {
# FAKE_PERSISTENT_SIGNAL_HANDLERS defined as !defined(HAS_SIGACTION)
++$skip{PL_sig_ignoring};
+ ++$skip{PL_sig_handlers_initted} unless $define{KILL_BY_SIGPRC};
}
}
+if ($ARGS{PLATFORM} eq 'vms' && !$define{KILL_BY_SIGPRC}) {
+ # FAKE_DEFAULT_SIGNAL_HANDLERS defined as KILL_BY_SIGPRC
+ ++$skip{Perl_csighandler_init};
+ ++$skip{Perl_my_kill};
+ ++$skip{Perl_sig_to_vmscondition};
+ ++$skip{PL_sig_defaulting};
+ ++$skip{PL_sig_handlers_initted} unless !$define{HAS_SIGACTION};
+}
+
unless ($define{USE_LOCALE_COLLATE}) {
++$skip{$_} foreach qw(
PL_collation_ix