Add the correct PL_sig_ignoring skip for VMS in makedef.pl.
authorCraig A. Berry <craigberry@mac.com>
Wed, 3 Aug 2011 00:06:41 +0000 (19:06 -0500)
committerCraig A. Berry <craigberry@mac.com>
Wed, 3 Aug 2011 00:06:41 +0000 (19:06 -0500)
This only exists when FAKE_PERSISTENT_SIGNAL_HANDLERS is defined,
and that's only defined when HAS_SIGACTION is false.

The problem was exposed by ed76ea85d1, which fixed a typo introduced
in aadb217dbe, but that typo introduced code that was a noop on all
platforms, including VMS, where $^O is 'VMS', not 'vms'.

TODO: The existence of PL_sig_defaulting and PL_sig_handlers_initted
depends on the definedness of FAKE_DEFAULT_SIGNAL_HANDLERS, which
depends on KILL_BY_SIGPRC, which is written directly to config.h
without being recorded in config.sh and is thus not visible in Config.
So there's no good way to know when these symbols should be skipped.

KILL_BY_SIGPRC currently gets defined on all VMS versions and platforms,
so it's a breakage-in-waiting but does not actually fall down (yet).

makedef.pl

index e7d72e3..6a31582 100644 (file)
@@ -487,6 +487,11 @@ unless ($define{HAS_MMAP}) {
 
 if ($define{HAS_SIGACTION}) {
     ++$skip{PL_sig_trapped};
+
+    if ($ARGS{PLATFORM} eq 'vms') {
+        # FAKE_PERSISTENT_SIGNAL_HANDLERS defined as !defined(HAS_SIGACTION)
+        ++$skip{PL_sig_ignoring};
+    }
 }
 
 unless ($define{USE_LOCALE_COLLATE}) {