Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 538700 - media-gfx/darktable shouldn't require SSE3
Summary: media-gfx/darktable shouldn't require SSE3
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Tim Harder
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-02-03 20:00 UTC by Mike Limansky
Modified: 2015-02-04 17:44 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mike Limansky 2015-02-03 20:00:19 UTC
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"
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2015-02-04 09:00:29 UTC
The ebuild also need not die() in pkg_pretend(). The common way of doing this is by setting REQUIRED_USE.
Comment 2 Jeroen Roovers (RETIRED) gentoo-dev 2015-02-04 09:50:03 UTC
Yes, it installs absolutely fine without USE=cpu_flags_x86_sse3. Why is that even in there?
Comment 3 Tim Harder gentoo-dev 2015-02-04 15:00:09 UTC
(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.
Comment 4 Tim Harder gentoo-dev 2015-02-04 15:54:03 UTC
(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).
Comment 5 Tim Harder gentoo-dev 2015-02-04 16:00:54 UTC
(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.
Comment 6 Tim Harder gentoo-dev 2015-02-04 16:07:22 UTC
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.
Comment 7 Mike Limansky 2015-02-04 17:44:39 UTC
Tim, thanks a lot for clarification.