GNOME Bugzilla – Bug 760292
gegl operations give "Illegal instruction" errors
Last modified: 2016-01-08 15:53:28 UTC
When building gegl, my build dies with: 30926 Illegal instruction GEGL_SWAP=RAM GEGL_PATH=../operations ../tools/introspect > class-hierarchy.html I can get past the gegl build error with --disable-docs, but the operations still generate Illegal operation and gimp can't build. Reverting BABL_0_1_14 fixes the problem. OS: Debian sid, 32 bit. Hardware: Lenovo X201, Intel i5 CPU. Longer log or gdb info on request.
Possibly not related to running 32bit it also happens on x86_64 with a: model name : Intel(R) Celeron(R) CPU N3050 @ 1.60GHz CPU gdb on gimp on startup gives: Program received signal SIGILL, Illegal instruction. 0x00007fffeb63d909 in conv_y8_yF (samples=512, dst=0xd6aee0, src=0xd6ba50 "\030\354\300\305\366\255h\032\203\\\033\364\266; @\367c\257\263\220\374\220{\226\062̢\276#9\327\020\370\235\a\246\006!*a<\037\030w?Yo\242\b\"3\005\262\256\233\344z>\244\235w|\255p\031\264\030\037\325B\200\022a\231\211\240\361\370C\372\034u") at sse4-int8.c:46 46 while (n >= 4) the first time it crashes is during the build of babl docs, with: UTF8: BablFishPath.txt/bin/bash: line 1: 10738 Illegal instruction ../tests/babl_fish_path_fitness > BablFishPath.txt Fail
Adding possibly relevant parts of /proc/cpuinfo for where I am seeing it running 64bit linux kernel and user space cpuid level : 11 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 rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch ida arat epb dtherm tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms
Mine: cpuid level : 11 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 nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt aes lahf_lm ida arat dtherm tpr_shadow vnmi flexpriority ept vpid
This should hopefully be fixed now. commit d8f9a0d48cea1857550aa2b9f030bc1b7d768790 Author: Daniel Sabo <DanielSabo@gmail.com> Date: Thu Jan 7 18:05:44 2016 -0800 Fix AVX instructions being generated in SSE4.1 code (bug #760292) The half-float flag got accidentally added to the SSE4.1 flags, causing GCC to auto-enable AVX. configure.ac | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
Fix confirmed in Gentoo using i7, GCC-5.3.0.
Confirmed on sid too. Thanks!