summaryrefslogtreecommitdiff
path: root/win32/config_sh.PL
diff options
context:
space:
mode:
authorSteve Hay <steve.m.hay@googlemail.com>2014-11-21 18:39:04 +0000
committerSteve Hay <steve.m.hay@googlemail.com>2014-11-21 18:39:55 +0000
commit82319b0c184e49177f2be3288041b36adddca71a (patch)
tree842f314c8aa6e10a5492b969fa5412d61f65533c /win32/config_sh.PL
parente2ce0950e5e4b86c6fcbc488c37dd61d082b3e0d (diff)
downloadperl-82319b0c184e49177f2be3288041b36adddca71a.tar.gz
Fix longdblsize and nvsize for 64-bit USE_LONG_DOUBLE builds on Windows
This fixes many test failures in op/pack.t, although two (13177 and 13180) still remain. The same two also fail with 32-bit USE_LONG_DOUBLE builds. Thanks to sisyphus1@optusnet.com.au for spotting the failures and the likely cause of them.
Diffstat (limited to 'win32/config_sh.PL')
-rw-r--r--win32/config_sh.PL10
1 files changed, 9 insertions, 1 deletions
diff --git a/win32/config_sh.PL b/win32/config_sh.PL
index 035f03fe49..60fb4eded7 100644
--- a/win32/config_sh.PL
+++ b/win32/config_sh.PL
@@ -214,7 +214,14 @@ if ($opt{uselongdouble} eq 'define') {
$opt{d_PRIfldbl} = 'define';
$opt{d_PRIgldbl} = 'define';
$opt{d_SCNfldbl} = 'define';
- $opt{nvsize} = 12;
+ if ($opt{WIN64} eq 'define') {
+ $opt{longdblsize} = 16;
+ $opt{nvsize} = 16;
+ }
+ else {
+ $opt{longdblsize} = 12;
+ $opt{nvsize} = 12;
+ }
$opt{nvtype} = 'long double';
$opt{nv_overflows_integers_at} = '256.0*256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0*2.0*2.0*2.0';
$opt{nvEUformat} = '"LE"';
@@ -239,6 +246,7 @@ else {
$opt{d_PRIfldbl} = 'undef';
$opt{d_PRIgldbl} = 'undef';
$opt{d_SCNfldbl} = 'undef';
+ $opt{longdblsize} = 8;
$opt{nvsize} = 8;
$opt{nvtype} = 'double';
$opt{nv_overflows_integers_at} = '256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0';