[MacPorts] #34535: gcc45 @4.5.3_4 gfortran gives wrong results for log and exp functions on OSX lion
#34535: gcc45 @4.5.3_4 gfortran gives wrong results for log and exp functions on OSX lion -------------------------------+-------------------------------------------- Reporter: f.baart@… | Owner: macports-tickets@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.1.1 Keywords: | Port: -------------------------------+-------------------------------------------- The gfortran compiler generates programs that give incorrect results on OSX lion. I have tested the following program with gfortran-mp-4.5 and gfortran-mp-4.7. {{{ program test_exp write(*,*) exp(1.0), log(2.7182818284590451) end program test_exp }}} This should result in the following output: 2.71... 1.0... However on OSX Lion with gfortran it results in: 2.7699862 1.3489696 I have tested it with: gcc45 @4.5.3_4 and gcc47 @4.7.0_3 See also http://stackoverflow.com/questions/10673701/can-i-call-the- fortran-log-function-with-a-number for several related test cases. -- Ticket URL: <https://trac.macports.org/ticket/34535> MacPorts <http://www.macports.org/> Ports system for Mac OS
#34535: gcc45 @4.5.3_4 gfortran gives wrong results for log and exp functions on OSX lion -------------------------------+-------------------------------------------- Reporter: f.baart@… | Owner: mww@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.1.1 Keywords: | Port: gcc45 -------------------------------+-------------------------------------------- Changes (by ryandesign@…): * owner: macports-tickets@… => mww@… * port: => gcc45 -- Ticket URL: <https://trac.macports.org/ticket/34535#comment:1> MacPorts <http://www.macports.org/> Ports system for Mac OS
#34535: gcc45 @4.5.3_4 gfortran gives wrong results for log and exp functions on OSX lion -------------------------------+-------------------------------------------- Reporter: f.baart@… | Owner: mww@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.1.1 Keywords: | Port: gcc45 -------------------------------+-------------------------------------------- Comment(by f.baart@…): I rebuild the gfortran47 compiler using port -s gcc47, but it also gives the wrong results. -- Ticket URL: <https://trac.macports.org/ticket/34535#comment:2> MacPorts <http://www.macports.org/> Ports system for Mac OS
#34535: gcc45 @4.5.3_4 gfortran gives wrong results for log and exp functions on OSX lion -------------------------------+-------------------------------------------- Reporter: f.baart@… | Owner: mww@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.1.1 Keywords: | Port: gcc45 -------------------------------+-------------------------------------------- Comment(by f.baart@…): It seems to be related to a broken mpfr. http://llvm.org/bugs/show_bug.cgi?id=11111 When I do: port build mpfr and then run make check in the build folder I get errors like this: [tversion] MPFR tuning parameters from src/x86_64/core2/mparam.h PASS: tversion PASS: tinternals PASS: tinits PASS: tisqrt PASS: tsgn PASS: tcheck PASS: tisnan PASS: texceptions PASS: tset_exp PASS: tset PASS: mpf_compat PASS: mpfr_compat Error for mpfr_ui_pow(a, b, a) for b=1764214285 a=1.10010010000111111011010101001e1 expected1.00011111011011011011010011100e92, got 1.10000100011010001011111101100e87 FAIL: reuse PASS: tabs results differ for x=1.11001100001000101110010110101100001010000000000e-27 prec=55 rnd_mode=MPFR_RNDN got 1.100100011101111000010011110101010001100111011011001010 expected 1.100100011101111000010011111100011011011011001111000100 approx 0.11001000111011110000100111111000110110110110011110000111111001011E1 FAIL: tacos Error: mpfr_acosh (1) FAIL: tacosh PASS: tadd PASS: tadd1sp PASS: tadd_d PASS: tadd_ui results differ for x=1.111111000111011100011011111101110100101101000001011110101000010110001000111000011010101001100000100111011100111100010111000000110000010111010010001111110101001101001101101101111110101110100000110e-1 u=1.100000111110010000111001000100100000011110010110000111001111000101010100001011010111100011011011011001100100100100000111111100101101110001000010110111100111001111101001010101111010111110010011110e-2 prec=222 rnd_mode=MPFR_RNDU got 1.01001100010110111001000011110110001011111100000110100110111010010000010100101111111001111001110101010001011100010110000001100000101100011111011110110111111111000100000011000000010111110010010110010100101111000001011101100e-1 expected 1.01001100010110111001000011110110001011111100000110100110111010010000010100101111111001111001110101010001011100010110000001100000101100011111011110110111111111000100000011000000010111110010010110010101110011110101010110001e-1 approx 0.1010011000101101110010000111101100010111111000001101001101110100100000101001011111110011110011101010100010111000101100000011000001011000111110111101101111111110001000000110000000101111100100101100101011100111101010101100001110001000E0 FAIL: tagm This appears to be related to http://trac.macports.org/ticket/33361. -- Ticket URL: <https://trac.macports.org/ticket/34535#comment:4> MacPorts <http://www.macports.org/> Ports system for Mac OS
#34535: gcc45 @4.5.3_4 gfortran gives wrong results for log and exp functions on OSX lion -------------------------------+-------------------------------------------- Reporter: f.baart@… | Owner: mww@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.1.1 Keywords: | Port: gcc45 -------------------------------+-------------------------------------------- Comment(by f.baart@…): I managed to solve this by changing the compiler in gmp from clang to macports-gcc-4.5. After that the test cases in mpfr all passed and also my fortran test. -- Ticket URL: <https://trac.macports.org/ticket/34535#comment:5> MacPorts <http://www.macports.org/> Ports system for Mac OS
#34535: gcc45 @4.5.3_4 gfortran gives wrong results for log and exp functions on OSX lion -------------------------------+-------------------------------------------- Reporter: f.baart@… | Owner: mww@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.1.1 Keywords: | Port: gcc45 -------------------------------+-------------------------------------------- Comment(by takeshi@…): Has the update of gmp in r94119 fixed the problem? I didn't encounter the problem (maybe because I 'm using Xcode 4.3), I can't tell. BTW, the changes in r94119 is to remove the use of clang when llvm-gcc-4.2 is specified. The default is clang on Lion so I'm not sure if the changes fixed the gfortran problem. -- Ticket URL: <https://trac.macports.org/ticket/34535#comment:6> MacPorts <http://www.macports.org/> Ports system for Mac OS
#34535: gcc45 @4.5.3_4 gfortran gives wrong results for log and exp functions on OSX lion --------------------------------+------------------------------------------- Reporter: f.baart@… | Owner: mww@… Type: defect | Status: closed Priority: Normal | Milestone: Component: ports | Version: 2.1.1 Resolution: fixed | Keywords: Port: gcc45 | --------------------------------+------------------------------------------- Changes (by ryandesign@…): * status: new => closed * resolution: => fixed Comment: r94119 should have fixed it. Assuming it did, since there was no response to the above question. -- Ticket URL: <https://trac.macports.org/ticket/34535#comment:7> MacPorts <http://www.macports.org/> Ports system for Mac OS
#34535: gcc45 @4.5.3_4 gfortran gives wrong results for log and exp functions on OSX lion --------------------------------+------------------------------------------- Reporter: f.baart@… | Owner: mww@… Type: defect | Status: closed Priority: Normal | Milestone: Component: ports | Version: 2.1.1 Resolution: fixed | Keywords: Port: gcc45 | --------------------------------+------------------------------------------- Comment(by f.baart@…): Thanks that fixed it. The output of my test program is now: {{{ 2.7182817 0.99999994 }}} -- Ticket URL: <https://trac.macports.org/ticket/34535#comment:8> MacPorts <http://www.macports.org/> Ports system for Mac OS
participants (1)
-
MacPorts