make 'struct jmpenv' size independent of DEBUGGING
authorDavid Mitchell <davem@iabyn.com>
Wed, 23 Aug 2017 09:18:53 +0000 (10:18 +0100)
committerDavid Mitchell <davem@iabyn.com>
Wed, 23 Aug 2017 09:18:53 +0000 (10:18 +0100)
commitd2dccc05447801502a45b7e823dbd02a4e6070b0
treeb4ef1e9fe42335ed70c5bdb2917fe217454c9dc3
parentf749af30fc853206f2c6a94557bbfe7498adb961
make 'struct jmpenv' size independent of DEBUGGING

RT #131942

My commit v5.27.1-114-g9449f0d added a field je_old_stack_hwm to
the jmpenv structure on debugging builds.

However, one field in the interpreter structure is a JMPENV (rather than
JMPENV*), so this can make the interpreter structure size vary on
debugging and non-debugging builds.

This is usually a no-no, since it breaks re.pm, which recompiles
the various re functions with DEBUGGING enabled, even on non-debugging
fields.

This was supposed to be handled by the extra '!defined DEBUGGING_RE_ONLY'
condition, and indeed all core XS modules including re.xs work ok.

However, it seems to have broken several CPAN modules. I still don't
understand why, but the easiest fix is to just always include the
debugging je_old_stack_hwm field in all builds.
cop.h