Bug#712956: 0ad: seems to use CPU features not available everywhere

Kurt Roeckx kurt at roeckx.be
Mon Jun 24 19:36:04 UTC 2013


On Fri, Jun 21, 2013 at 10:46:58AM +0200, Ansgar Burchardt wrote:
> Source: 0ad
> Version: 0.0.13-2
> Severity: important
> 
> 0ad (or one of the libraries it uses) seems to use CPU features that are
> not available everywhere as it failed to build for amd64 on
> barber.d.o[1] with "Illegal instruction" when running a test program.

/proc/cpuinfo on barber shows:
vendor_id       : GenuineIntel
cpu family      : 15
model           : 4
model name      : Intel(R) Xeon(TM) CPU 3.80GHz
stepping        : 3
microcode       : 0x5
cpu MHz         : 2800.000
cache size      : 2048 KB
physical id     : 3
siblings        : 2
core id         : 0
cpu cores       : 1
apicid          : 7
initial apicid  : 7
fpu             : yes
fpu_exception   : yes
cpuid level     : 5
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc pebs bts nopl pni dtes64 monitor ds_cpl est tm2 cid cx16 xtpr
bogomips        : 7600.38
clflush size    : 64
cache_alignment : 128
address sizes   : 36 bits physical, 48 bits virtual

> On i386, -msse -march=i686 is passed to gcc[2]. This might make 0ad use
> instructions not available everywhere.

Using -march is almost always the wrong thing to do in Debian.  This really
should only be used if there is an other way to not i686 specific code.

Please note that the function they say they need are now marked as legacy, see
http://gcc.gnu.org/wiki/Atomic/GCCMM/AtomicSync
http://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html
http://gcc.gnu.org/onlinedocs/gcc/_005f_005fsync-Builtins.html


Kurt



More information about the Pkg-games-devel mailing list