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 e7d72e3dcc9cc1817c821615a8fc43a7b8067d68..6a31582e5a37bfb13f3a2b8edef2c37209e4f2b3 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}) {