On Nov 18, 2008, at 10:12 AM, Tim Fenn wrote:
On Tue, 18 Nov 2008 10:21:29 +0000 Kevin Cowtan
<[EMAIL PROTECTED]> wrote:
And I would give exactly the opposite advice, unless you are or have
a guru who can devote time to fixing all the little things which
still don't work under 64 bit OSs.
(Does anyone else have any clues on why 64-bit compiled coot can't
calculate a map? I need to look into it, but have a huge backlog of
work at the moment.)
Try -fno-strict-aliasing, or dropping the optimization to -O0 or -O1.
Fixed the exact same problem for me. I also noticed several of the m4
macros coot uses (mmdb/ssm/guile-gtk) are broken such that 32 and 64
bit libraries can get mixed up, so you may not be using a 64 bit
binary.
Should you decide to actually go fix the code, one of the flags that I
use religiously for 64-bit code is -Wshorten-64-to-32. It flags
implicit conversions from 64- to 32-bit types. This catches two types
of problems:
Inadvertent truncation of 64-bit types (pointers, size_t, etc.)
cause various correctness/crashing issues
random intermixing of single and double precision operations:
e.g. float x, y = x + 1.0; // 1.0 is double precision, and will
force x to be up converted to double, a double precision add is then
done, then downconverted to float
these are a performance problem if you use XMM to do single and
double precision arithmetic (as MacOS X does).
Also, at least on my system, -fstrict-aliasing will cause a warning to
be emitted when you have an aliasing violation. Hopefully that should
help you find these things and clean up the code.
Is the author of coot still working on the project?
Ian