On Monday 28 April 2008, Christian Koch wrote:
I tried replacing the rand() function in that line,
but afterwards I got
a core file at another line. Still with SIGILL.
But I think I've found a solution: In "Makefile.defs", for i386 with gcc
3.x I removed the following line (line 592):
-march=$(CPU_TYPE)
CPU_TYPE would be set to "prescott" in that case, but the manpage of gcc
states prescott is "Improved version of Intel Pentium4 CPU...". My
machine is a Pentium III, so it doesn't understand the P4 code generated
by gcc. I recompiled openser without "-march" and it seems everything
works fine now.
I think the Makefile still needs to be fixed for the other architectures
and gcc versions.
Hi Christian,
i think the correct statement for (a recent) 3.X gcc would be
either 'mcpu=prescott' or 'mtune=prescott'. I don't know why march is
used in
this case, for the x86_64 case its correct. Then the compiler will only
optimize for this special processor, but the code will nevertheless run on
i386 machines too.
The 'prescott' type is unfortunally not available on older gcc, so i
used 'pentium4' instead. I'll make a fix on svn, could you perhaps test this?
Thank you,
Henning