-
Notifications
You must be signed in to change notification settings - Fork 21
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
recint seems to abuse 32 bits asm instructions #130
Comments
Note that the compilation failure is reproducible by typing make in /builds/sage on the 32 bit ubuntu ci.inria slave. |
@ClementPernet Interesting, I'm going to check that. |
@ClementPernet We used Looking for it, I think that, for me, the On the 32 bit machine, however, I don't really know. |
For the record, I have identified the bug: this is because in sage, givaro's reclonglong.h yields for flint's longlong.h which does not include the NO_ASM section. |
The workaround used in https://trac.sagemath.org/ticket/26932 consists in avoiding name conflicts between givaro's reclonglong.h and flint's longlong.h. I ended up adding a |
We also hit this issue in Debian now. From our side it would be welcome if you apply the patch. |
The problem arose here:
https://trac.sagemath.org/ticket/26932#comment:56
I could reproduce by building sage on this branch on the i386 machine on ci.inria.
From what I understand, recint hard codes
limb
to beint64_t
. However inrecint/rudiv.h
line 222, it callsumul_ppmm
with 4 arguments oflimb
type. And accordind toreclonglong.h
line 866, the implementation ofumul_ppmm
on intel 32 bits (i386) is an asm call tomull
which expects 32 bits ints.I don't know why this bug only shows up in the sage build and not in givaro's test-suite on this machine.
The text was updated successfully, but these errors were encountered: