On 27 November 2014 at 09:02, Steve Hay <stev...@googlemail.com> wrote:
> On 27 November 2014 at 03:46, <sisy...@optusnet.com.au> wrote:>>>> Steve, here's another little glitch that I've come across.>> On the 32-bit build of 5.21.6:>>>> C:\>perl -V:nvtype>> nvtype='long double';>>>> C:\>perl -V:nvsize>> nvsize='12';>>>> C:\>perl -MPOSIX -le "$x=POSIX::strtold('12345.1');">> POSIX::strtold not implemented on this architecture at -e line 1.>>>> C:\>>>>> On the 64-bit build of 5.21.6 (where nvsize is set incorrectly) it's the>> same message:>>>> C:\>perl -V:nvtype>> nvtype='long double';>>>> C:\>perl -V:nvsize>> nvsize='12';>>>> C:\>perl -MPOSIX -le "$x=POSIX::strtold('12345.1');">> POSIX::strtold not implemented on this architecture at -e line 1.>>>>>> AFAIK, POSIX::strtold() should have been implemented for these perls.>>>> I think that must be a gremlin lurking in POSIX.pm/xs. I made the> appropriate configuration changes for perl itself, which you can> confirm with:>> perl -V:d_strtold>> Assuming that prints 'define' as it should then it's just POSIX that> needs some work.
Does the attached (untested) blind stab in the dark fix it?
From cd23470b782536aa82a4f98a6ada0ff9a4cc5004 Mon Sep 17 00:00:00 2001
From: Steve Hay <stev...@googlemail.com>
Date: Thu, 27 Nov 2014 09:08:56 +0000
Subject: [PATCH] Enable POSIX::strtold() on Windows (GCC) USE_LONG_DOUBLE
builds
---
ext/POSIX/POSIX.xs | 2 ++
1 file changed, 2 insertions(+)
diff --git a/ext/POSIX/POSIX.xs b/ext/POSIX/POSIX.xs
index 9d41bf0..39b7f36 100644
--- a/ext/POSIX/POSIX.xs
+++ b/ext/POSIX/POSIX.xs
@@ -1134,7 +1134,9 @@ char *tzname[] = { "" , "" };
# define setuid(a) not_here("setuid")
# define setgid(a) not_here("setgid")
#endif /* NETWARE */
+#ifndef USE_LONG_DOUBLE
# define strtold(s1,s2) not_here("strtold")
+#endif /* USE_LONG_DOUBLE */
#else
# ifndef HAS_MKFIFO
-- 1.8.4.msysgit.0