-
Notifications
You must be signed in to change notification settings - Fork 52
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
i386: fix the major problems at least #513
Conversation
@@ -51,6 +51,7 @@ class SATClause | |||
void setInference(SATInference* val); | |||
|
|||
void* operator new(size_t,unsigned length); | |||
void operator delete(void *); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is weird; 32-bit Clang and GCC complains that this function doesn't exist for generating exception-cleanup code, but never actually calls it and I don't see why it would be needed. If we ever actually need an implementation, it should just call DEALLOC_KNOWN(this, length)
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Complains in a sense of warnings or errors? I did not have any compile-time errors besides failing static asserts. (But produced binary was broken.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Errors, surprisingly: https://godbolt.org/z/9sb819xT8 - try with/without -m32
.
Generally, |
@MichaelRawson Building from 3c2909c fails for me with:
|
@barracuda156 - a question I should already have asked - is your PowerPC machine 32- or 64- bit? I don't get these compilation errors, but it looks like changing casts of this form from |
@MichaelRawson Machine in a sense of a hardware (G5 / ppc970) supports both, but 10.6 only supports |
P. S. Please allow me until tomorrow, I am away from the fast PowerMac now. Will update with results once back to it. |
You must be new here. ;-) No hurry! |
@MichaelRawson Rebuilt from your branch, replacing
|
Two issues to have in mind for |
Moved conversation about PowerPC back to the original issue. This PR should nonetheless fix 32-bit Intel. |
I will try to test it on i386 in a few days. Could we also fix those type mismatches, as per your suggestion? As long as that works across other archs, it is desirable: while it is not enough for ppc, it is needed at least to fix the compilation. |
Thanks - I can actually test this locally on a 64-bit machine, but if you have actually 32-bit silicon that'd be great.
Good point. I'll update this. |
Approved. Modulo the question about the removed static assert... |
Thank you! And I will try with |
We are alerted in #512 that Vampire is broken on 32-bit platforms, which we knew, but weren't aware that anyone cared. We currently reject 32-bit systems at compile-time in
Lib/Portability.hpp
.However, it doesn't actually seem that hard to get Vampire running on 32-bit systems. The biggest problem is that
sizeof(size_t)
is now 32, and we assumesizeof(TermList) == sizeof(size_t)
to be at least 64 to get the bits we want into it - but this can be fixed by saying thatTermList
should be exactly 64 bits instead ofsizeof(size_t)
.This patch produces a 32-bit Vampire that runs plausibly on my system. Since we have users who want 32-bit support, I propose that we relax our 64-bit-only policy until we end up in a situation where we really can't support 32-bit systems any more.
@barracuda156 - you might want to test on this branch. I don't guarantee this fixes PowerPC, or even that we don't have serious bugs even on i386, but it should be much less crashy.