[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: strtod [was: M4 1.4.14 on AIX 7.1BETA]
From: |
Rainer Tammer |
Subject: |
Re: strtod [was: M4 1.4.14 on AIX 7.1BETA] |
Date: |
Thu, 29 Jul 2010 16:33:03 +0200 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.1.3) Gecko/20070326 Thunderbird/2.0.0.0 Mnenhy/0.7.5.0 |
Hello Eric,
On 29.07.2010 15:17, Eric Blake wrote:
> ... cut for clarity ...
>> /* Define to 1 if strtod is declared even after undefining macros. */
>> #define HAVE_RAW_DECL_STRTOD 1
> That's not quite what I asked. But thanks for the attachments: looking
> at config.log reveals the answers to my questions:
>
Yes,
this was only an addition to the attached logs.
> configure:24593: checking for working strtod
> configure:24634: cc -qlanglvl=extc89 -qlanglvl=extc99 -o conftest -g
> conftest.c >&5
> configure:24634: $? = 0
> configure:24634: ./conftest
> configure:24634: $? = 0
> configure:24644: result: yes
> configure:24715: checking whether strtod obeys C99
> configure:24791: cc -qlanglvl=extc89 -qlanglvl=extc99 -o conftest -g
> conftest.c >&5
> configure:24791: $? = 0
> configure:24791: ./conftest
> configure:24791: $? = 1
> configure: program exited with status 1
> ...
> REPLACE_STRTOD='1'
>
> Which means gnulib _did_ replace strtod on your system.
>
OK,
so the problem is in the replacement function.
If I compile the failing block against the AIX system libraries the
problem vanishes in thin air.
>>> Which line is it failing on?
>> FAIL: test-strtod (exit: 134)
>> =============================
>>
>> test-strtod.c:234: assertion failed
> Line 234, at the time that m4-1.4.14 was created, was:
>
> const char input[] = "1e1";
> char *ptr;
> double result;
> errno = 0;
> result = strtod (input, &ptr);
> ASSERT (result == 10.0);
>
> Weird - I've never seen that line fail before. If you have a debugger,
> can you put a breakpoint on that line and print the actual value of
> result?
I can do that.
This is from dbx:
# dbx test-strtod
Type 'help' for help.
[using memory image in core]
reading symbolic information ...
IOT/Abort trap in raise at 0xd0120f40
0xd0120f40 (raise+0x60) 80410014 lwz r2,0x14(r1)
(dbx) where
raise(??) at 0xd0120f40
abort() at 0xd016d9e4
unnamed block in main(), line 234 in "test-strtod.c"
main(), line 234 in "test-strtod.c"
(dbx) print result
10.000000000000002
> Maybe your platform has a pow() bug, since we already know it
> is using the replacement strtod which used pow()? But in the meantime,
> upstream gnulib has revamped the strtod module to not require pow().
That's possible.
> let's diagnose the current state of gnulib on AIX, rather than doing
> post-mortem on old code. It's time for me to release 1.4.15 anyways,
> since 1.4.14 doesn't build out-of-the-box on newer glibc released after
> the m4 release.
>
I am happy to test the new version.
Bye
Rainer
- Re: M4 1.4.14 on AIX 7.1BETA, Eric Blake, 2010/07/29
- Re: M4 1.4.14 on AIX 7.1BETA, Rainer Tammer, 2010/07/29
- strtod [was: M4 1.4.14 on AIX 7.1BETA], Eric Blake, 2010/07/29
- [PATCH] strtod: aid debugging, Eric Blake, 2010/07/29
- Re: strtod [was: M4 1.4.14 on AIX 7.1BETA],
Rainer Tammer <=
- Re: strtod [was: M4 1.4.14 on AIX 7.1BETA], Eric Blake, 2010/07/29
- Re: strtod [was: M4 1.4.14 on AIX 7.1BETA], Eric Blake, 2010/07/29
- Message not available
- Message not available
- Message not available
- Re: strtod [was: M4 1.4.14 on AIX 7.1BETA], Eric Blake, 2010/07/29
- Message not available
- Re: strtod [was: M4 1.4.14 on AIX 7.1BETA], Eric Blake, 2010/07/29
- [PATCH] strtod: fix replacement bug on AIX., Eric Blake, 2010/07/29
- Re: strtod [was: M4 1.4.14 on AIX 7.1BETA], Rainer Tammer, 2010/07/30
- Re: strtod [was: M4 1.4.14 on AIX 7.1BETA], Eric Blake, 2010/07/30
- Re: strtod [was: M4 1.4.14 on AIX 7.1BETA], Rainer Tammer, 2010/07/30
- Message not available
- Re: c-stack [was: M4 1.4.14 on AIX 7.1BETA], Eric Blake, 2010/07/29
- Re: c-stack [was: M4 1.4.14 on AIX 7.1BETA], Eric Blake, 2010/07/29