-
Notifications
You must be signed in to change notification settings - Fork 226
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
ppc64le failing tests with IEEE128 #682
Comments
At the moment no. But...
This is a good time to look into (or try to solve) this since we are actually working on the general area of I do not know how to get that compiler. Any suggestions? |
@ckormanyos The issue can be reproduced with a GCC built from latest source with the proper flags to make ieee128 the default long double format. But you will likely need a ppc64le machine to run the tests.
|
That's one I have not done in a while. I would (if i get a chance) build on Linux host for that Thanks @mscastanho for the source and flags. |
The effort stalled, but I did start investigating testing under QEMO for some of these platforms, it may be time to restart that.... the basic problem is that everything takes so looooong under emulation. |
Would something like this be acceptable?
|
That's almost certainly the right fix. I've restarted trying to get the tests running on s390x / QEMO which also has a true 128-bit long double, most of the failures are related to the tests rather than the headers, but there are a few more substantive issues cropping up. First run so we can see where we are is here: https://github.com/boostorg/math/pull/683/checks?check_run_id=3483182111 |
I've been testing boost Math compiled with GCC 12 (dev) using IEEE long double on ppc64le (instead of IBM long double format, the default). There are quite a few tests failing because the maximum error is higher than the tolerance used, most cases are just slightly off, others have errors a few orders of magnitude larger than the tolerance. I'd be happy to provide more info if needed.
Besides these, there is one test that is failing at the compilation step:
cstdfloat_cmath_incl_test
On ppc64le, when GCC is compiled with
--with-long-double-128 --with-long-double-format=ieee
,__float128
becomes an alias tolong double
. As a consequence, libstdc++ does not define_GLIBCXX_USE_FLOAT128
anymore (see gcc-mirror/gcc@7c1e7eed891a7) , and so neitherBOOST_HAS_FLOAT128
norBOOST_MATH_USE_FLOAT128
are defined. For this reason,nanq
is not being defined incstdfloat_cmath.hpp
.Do you have any pointers on how I could solve these issues? I'm still trying to find my way around the codebase.
The text was updated successfully, but these errors were encountered: