-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 12/15/2013 07:20 PM, Andreas K. Huettel wrote: > Am Montag, 16. Dezember 2013, 00:34:13 schrieb Matt Turner: >> 3dnow: Use the 3DNow! instruction set >> 3dnowext: Use the Enhanced 3DNow! instruction set >> mmx: Use the MMX instruction set >> mmxext: Use the Extended MMX instruction set (intersection of Enhanced >> 3DNow! and SSE instruction sets) (3dnowext or sse in cpuinfo) >> sse: Use the SSE instruction set >> sse2: Use the SSE2 instruction set >> sse3: Use the SSE3 instruction set (pni in cpuinfo) >> ssse3: Use the SSSE3 instruction set >> sse4_1: Use the SSE 4.1 instruction set >> avx: Use the AVX instruction set >> avx2: Use the AVX2 instruction set > > What's the point of these flags? > (or to be more precise, are they really justified whenever they are used?) > > Usually the set of cpu instructions should be controlled by your CFLAGS, and > I've been actively patching packages (that do not do manually coded assembly) > to make such flags unnecessary. > I think this is a great time to point out three things:
TL;DR Some packages are sensitive, easier for binpkgs in certain cases, broken build systems may require it. 1.) Some packages have really sensitive cflags (mostly these packages offer USE=custom-cflags). Packages such as app-crypt/johntheripper offer a bunch of cflag options for optimization of supported cpu features while not actually using the user's full cflags which would yield poor optimization or broken code. I can't say I'm in love with this situation, but facts are facts, and turning on USE=custom-cflags seems to inevitably yield significantly slower benchmarks in the case of jtr while the use flags work well. 2.) Gentoo supports binary packages. In the case of apps like johntheripper (and a few other crackers who wish to remain nameless) these use flags are really helpful for the users as portage can automatically know it should rebuild the package for higher optimization or w/e. 3.) Broken build systems. Forgive me for the term, but packages like libpng seem to require arcane configure flags like "--enable-arm-neon=$(usex neon on off)" to enable my neon fpu despite passing -mfpu=neon. Retarded? Probably. Fact? Definitely. Thanks, Zero -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQIcBAEBAgAGBQJSr4e+AAoJEKXdFCfdEflK9TkQAJ0AnIQMcvDKwo/WWLmsoZHh B5WD1WrXwTl2xkwBs64lRBw4tFl1zU14zHvFmC3T4rPd6aEA2J7DNiYAnztGGTNu RWeUWYL3Qs+RJ4jASssJrMQmc3aEHEEzqMBE/yFL+x3ioeTilrROq+P1UlwoyUBh 6wJtkFiuTE7/DeqxhSaE81JvPVxRVt/i0nJoTvN6Kd4WLOzHZejekANErXaDF9FA MFXLI9OpQ4lY5QrZMJ7msSZJA0DnGt9Hi16QHtaaDQ0MPlJmtoVJlulsc14QgCCk a73+ndo20apOqAUOTy1cxXGxbrnU4TcDB16e/Sfc4eqAWiDEugXT6NTH+hnTegQ5 qE3N6genNGvRTTchVmNemnSs90UPTFhKhC5fqOo7hyqokpK3mvbU+tKL4NoOKjIQ LyoaghSRfzFcQhpRaEGhviGnm+Mvs9wSglBonob4PShrlcB2mpoZicA7oPuaE6Wi UC52KoryvsXtVxe5djziwd/1kgaC60wF1LnJ9s0BzxSoWMyibuD7wv5+hI5G9sQf 0zg/uzGlFVrMKjwCFz0Vr4STDRVAIULeKlbfMACzOE1jUGw5TXLjdWq+yMCTN0eH jqYo15IkPEC/a9+P+3fMVOL+7ZvQj5neoqSn1d0dEqo3y5d8Z1lZIw/ZYosWWObd qr08PGwWw+fElOa5BnSj =hhoR -----END PGP SIGNATURE-----