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
GMP-ECM using obsolete asm syntax on mips architecture #17749
Comments
comment:1
This should be reported upstream... |
comment:3
It turns out GMP-ECM is not the only package with issues:
is it worth reporting these upstream or should just give up on having sage running on a ci20? |
comment:4
Replying to @Etn40ff:
If you care enough: of course. For Tachyon, you should check first that the statement "your platform isn't supported by Tachyon" is actually true. |
comment:5
as for GMP-ECM, line 90 of I've looked at GMP 6.0.0: longlong.h contains a different umul_ppmm code for GCC >= 4.4. A workaround would be to replace the longlong.h file in GMP-ECM by the one from GMP 6.0.0. Paul |
comment:6
the longlong.h from GMP 6.0.0 does not work as is. It needed a few changes. I've done them in the GMP-ECM svn repository. Please try this version. You might also discuss my changes. Paul |
comment:8
I am glad to see this moving in the right direction. Unfortunately I am not able to take part to the effort because my mips machine is out of commission. |
comment:9
see also Debian bug #793012. Fixed upstream in revision 2735. Paul Zimmermann |
comment:10
this issue should be fixed by updating to GMP-ECM 7.0 (see #20385). |
comment:11
Outdated, should be closed |
Reviewer: Dima Pasechnik |
According to GCC 4.4 release notes:
"""
The MIPS port no longer recognizes the h asm constraint. It was necessary to remove this constraint in order to avoid generating unpredictable code sequences.
One of the main uses of the h constraint was to extract the high part of a multiplication on 64-bit targets. For example:
You can now achieve the same effect using 128-bit types:
The second sequence is better in many ways. For example, if x and y are constants, the compiler can perform the multiplication at compile time. If x and y are not constants, the compiler can schedule the runtime multiplication better than it can schedule an asm statement.
"""
Unfortunately the latest version of GMP-ECM still uses this construction making it impossible to build on mips:
CC: @zimmermann6 @dimpase
Component: packages: standard
Keywords: GMP-ECM
Reviewer: Dima Pasechnik
Issue created by migration from https://trac.sagemath.org/ticket/17749
The text was updated successfully, but these errors were encountered: