Currently darktable ebuild requires sse3 cpu flag enabled. But it seems like it's not mandatory. I've successfully install Darktable on CPU without SSE3 instruction set support: model name : AMD Phenom(tm) II X4 810 Processor flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt hw_pstate npt lbrv svm_lock nrip_save vmmcall CFLAGS="-march=amdfam10 -O2 -pipe" CHOST="x86_64-pc-linux-gnu"
The ebuild also need not die() in pkg_pretend(). The common way of doing this is by setting REQUIRED_USE.
Yes, it installs absolutely fine without USE=cpu_flags_x86_sse3. Why is that even in there?
(In reply to Jeroen Roovers from comment #2) > Yes, it installs absolutely fine without USE=cpu_flags_x86_sse3. Why is that > even in there? See bug #377209 or the relevant code from src/common/darktable.c.(In reply to Mike Limansky from comment #0) > Currently darktable ebuild requires sse3 cpu flag enabled. > > But it seems like it's not mandatory. I've successfully install Darktable on > CPU without SSE3 instruction set support: > > model name : AMD Phenom(tm) II X4 810 Processor Searching around that processor does have SSE3 support which makes sense if you're able to build darktable correctly otherwise it should fail like bug #377209.
(In reply to Mike Limansky from comment #0) > model name : AMD Phenom(tm) II X4 810 Processor > flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat > pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp > lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid pni > monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a > misalignsse 3dnowprefetch osvw ibs skinit wdt hw_pstate npt lbrv svm_lock > nrip_save vmmcall I should also note that "pni" in your cpu info is what sse3 is (see the use flag description for sse3).
(In reply to Jeroen Roovers from comment #1) > The ebuild also need not die() in pkg_pretend(). The common way of doing > this is by setting REQUIRED_USE. Really it would probably be nicer to keep it in pkg_pretend and make it do a compiler check similar to tc-has-openmp (since this really isn't a place for use flags when a feature is forced to be enabled), but I'll move it to REQUIRED_USE for now.
Anyway, closing as invalid since upstream really requires SSE3 support and you should set the proper set for CPU_FLAGS_X86 that your processor supports. Use something like app-portage/cpuinfo2cpuflags if you need help translating the cpuinfo to use flags since it's not a direct mapping as seen by pni -> sse3 support.
Tim, thanks a lot for clarification.