Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test_loadtxt_qp error with gfortran-7.4.0 (32-bit) on Windows #296

Closed
ghost opened this issue Jan 10, 2021 · 11 comments
Closed

test_loadtxt_qp error with gfortran-7.4.0 (32-bit) on Windows #296

ghost opened this issue Jan 10, 2021 · 11 comments

Comments

@ghost
Copy link

ghost commented Jan 10, 2021

I got an error testing test_loadtxt_qp.f90 with gfortran-7.4.0 (32-bit) on Windows.

Here are the debugging sessions.

GDB-8.2
test_loadtxt_qp-gdb-8 2

GDB-9.1
test_loadtxt_qp-gdb-9 1

@LKedward
Copy link
Member

Hi @brocolis, I believe this test is not supported on Windows (due to quad precision) and is hence ignored when running the tests with cmake ctest.

If you're running these tests with the fpm package that I recommended to you then unfortunately there is no way to ignore these tests on Windows (except for deleting them).

@ghost
Copy link
Author

ghost commented Jan 10, 2021

Hi @LKedward. After a few more testing I found that stdlib passes all tests when compiled by gfortran-9.3.0 (32 bit) or gfortran-8.4.0 (64 bit) or gfortran-10.2.0 (64 bit). When stdlib is compiled by gfortran-7.4.0 (32 bit), I have to remove tests tests\io\test_loadtxt_qp.f90, tests\io\test_savetxt_qp.f90 and tests\stats\test_var.f90 from the Makefile, then stdlib passes the test command.

Compiler Platform Build Test
gfortran 7.4.0 mingw 32-bit
gfortran 8.4.0 mingw 64-bit
gfortran 9.3.0 mingw 32-bit
gfortran 10.2.0 mingw 64-bit

Build command

make -f Makefile.manual FYPPFLAGS=-DMAXRANK=4

Test command

make -f Makefile.manual FYPPFLAGS=-DMAXRANK=4 test

@LKedward
Copy link
Member

Thanks for the comprehensive testing @brocolis, that's helpful in pinpointing this as a compiler bug.
I was testing with gfortran 8.1.0 on mingw 64-bit where the same tests build but fail to run.
So stdlib requires at least gfortran >= 8.4.0 on mingw-w64.
(See also: #58 and #61 where this bug is first mentioned.)

The quad precision tests should probably be enabled in the MSYS workflows which use gfortran 10.2.0

@jvdp1
Copy link
Member

jvdp1 commented Jan 11, 2021

There are several with GFortran 7 and stdlib (even on Linux). See e.g., #171.
It should be probably mentioned in #293.

@awvwgk
Copy link
Member

awvwgk commented Jan 11, 2021

Maybe it is worth updating to GCC 7.5, the previous minor version of GCC 7 are known to be buggy but most of those issues have been resolved in GCC 7.5.

@LKedward
Copy link
Member

Maybe it is worth updating to GCC 7.5,

See my previous comment; this issue also affects gcc 8.1.0 on mingw-64bit which is what runs in the 'plain' Windows CI. The affected tests are currently not run in the Windows CI. These test can however be enabled in the recent MSYS2-based workflows which run 10.2.0.

@awvwgk
Copy link
Member

awvwgk commented Jan 11, 2021

The latest version of the GCC 8 series is 8.4, which works nicely. We are using 8.1 because it is the latest version uploaded on chocolatey and preinstalled on the Windows image. choco is apparently not the best way to get MinGW installations given the incomplete version history, so we shouldn't rely on them for our CI.

@ghost
Copy link
Author

ghost commented Jan 13, 2021

OK, a few more tests: gfortran-7.5.0 (32 bit) and gfortran-7.5.0 (64 bit) don't work either. The error message is "At line 60 of file test_var.f90". gfortran-8.4.0 (32 bit) and gfortran-11-20210110 (experimental) (64 bit) work.

Compiler Platform Build Test
gfortran 7.5.0 mingw 32-bit
gfortran 7.5.0 mingw 64-bit
gfortran 8.4.0 mingw 32-bit
gfortran-11-20210110 (experimental) mingw 64-bit

Yes I agree I should focus efforts on the currently maintained compilers.

@awvwgk
Copy link
Member

awvwgk commented Jan 14, 2021

Thanks for testing this, it's a valuable insight. Too bad it's a GCC 7 issue you are only hitting on Windows. It also looks like GCC 7 is dropped from the supported releases at https://gcc.gnu.org/, so we probably can't expect to get fixed in future releases.

@ghost
Copy link
Author

ghost commented Jan 15, 2021

Hello. Yes, it's a bit strange that stdlib works with gfortran-7 on Linux, but not on Windows; It may be something with my setup, but I can't say for sure without knowing the root cause. I'll now close this issue.
Thank you.

@ghost ghost closed this as completed Jan 15, 2021
@ghost
Copy link
Author

ghost commented Jan 30, 2021

Hi. I discovered a version of gfortran on my machine, that was installed by GNU Octave-4.4.1. I report that stdlib also doesn't work with gfortran-7.2.0 (x64) on Windows.

octave

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants