Open GoogleCodeExporter opened 8 years ago
There are various issues here:
1) On some 32-bit virtualized systems (linode in particular), it seems that the
packages are compiled with for i486. 486 did not have the 64-bit atomics, and
it will be necessary to compile with -march=pentium, and possibly delete
-mfpmath=sse -msse2
2) If GCC is compiled for / detects an even more generic system (i386), even
more of the atomic instructions will be unavailable (in particular XADD and
CMPXCHG) which will result in the error above.
I somehow doubt anyone would try to run GraphLab on a 386/486 system anymore.
It will be nice to force -march=pentium or higher if GCC detects 386/486.
Solutions:
- Introduce a CMake script which will test the compilation of a few atomic instructions and determine if -march=pentium is necessary.
- I am not sure if there is an easy way to probe for existence of SSE and SSE2.
Do we in fact need -mfpmath=sse -msse2 ? Can we assume the compiler has sane defaults?
Yucheng
Original comment by yucheng...@gmail.com
on 17 Jun 2011 at 6:39
Original issue reported on code.google.com by
akyrola...@gmail.com
on 14 Mar 2011 at 3:51