Skip Menu |

Preferred bug tracker

Please visit the preferred bug tracker to report your issue.

This queue is for tickets about the Devel-PPPort CPAN distribution.

Report information
The Basics
Id: 21239
Status: resolved
Priority: 0/
Queue: Devel-PPPort

People
Owner: Nobody in particular
Requestors: jdhedden [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in:
  • 3.06_03
  • 3.06_04
  • 3.07
  • 3.08
  • 3.08_01
  • 3.08_02
  • 3.08_03
  • 3.08_04
  • 3.08_05
  • 3.08_07
  • 3.09
  • 3.09_01
  • 3.09_02
  • 3.10
Fixed in: 3.10_01



Subject: Signals safe in Perl 5.8.0
For Perl 5.8.0 and earlier, PERL_SIGNALS_UNSAFE_FLAG is not defined. When PERL_SIGNALS_UNSAFE_FLAG is not defined, PL_signals is set to 1 so that signals are flagged as unsafe. However, in Perl 5.8.0, signals are safe. Therefore, for Perl 5.8.0, PL_signals should be set to 0. This can be fixed with the following patch: diff -urN Devel-PPPort-3.10/PPPort.pm Devel-PPPort-Patched/PPPort.pm --- Devel-PPPort-3.10/PPPort.pm 2006-08-14 15:27:16.000000000 -0400 +++ Devel-PPPort-Patched/PPPort.pm 2006-08-30 10:07:06.000000000 -0400 @@ -4705,8 +4705,11 @@ #endif #ifndef PERL_SIGNALS_UNSAFE_FLAG - -#define PERL_SIGNALS_UNSAFE_FLAG 0x0001 +#if ((PERL_REVISION == 5) && (PERL_VERSION == 8) && (PERL_SUBVERSION == 0)) +# define PERL_SIGNALS_UNSAFE_FLAG 0 +#else +# define PERL_SIGNALS_UNSAFE_FLAG 0x0001 +#endif #if defined(NEED_PL_signals) static U32 DPPP_(my_PL_signals) = PERL_SIGNALS_UNSAFE_FLAG;
Hi Jerry, I agree with you that this should be fixed. However, while your patch would undoubtedly work [*], I'd prefer not changing the definition of PERL_SIGNALS_UNSAFE_FLAG. I've applied the following change to my repository. It will be part of the next release. ========================================================================== /parts/inc/variables[/Devel-PPPort/Current(4)] < > parts/inc/variables --- variables[/Devel-PPPort/Current(4)] +++ variables (local file) @@ -27,5 +27,11 @@ #define PERL_SIGNALS_UNSAFE_FLAG 0x0001 -__NEED_VAR__ U32 PL_signals = PERL_SIGNALS_UNSAFE_FLAG; +#if { VERSION < 5.8.0 } +# define D_PPP_PL_SIGNALS_INIT PERL_SIGNALS_UNSAFE_FLAG +#else +# define D_PPP_PL_SIGNALS_INIT 0 +#endif + +__NEED_VAR__ U32 PL_signals = D_PPP_PL_SIGNALS_INIT; #endif ========================================================================== Let me know if this is urgent for you. Thanks, Marcus [*] Except for the fact that F<PPPort.pm> clearly states: # !!!!! Do NOT edit this file directly! -- Edit PPPort_pm.PL instead. !!!!! In the next release, F<PPPort.pm> will also contain a pointer to F<HACKERS>, which contains information about the internals of Devel::PPPort and how to add/change stuff.
Fixed in Devel-PPPort 3.11.