I think I've found a somekind a bug in CPU detection.
I've found some old PC with AMD Athlon 64 X2 6000+
After some fails to compile with
-march=native,
-march=k8-sse3 and
-march=nocona I finally had a successful compile with
-march=core2.
Starting the binary reports the cpu like this:
********** cpuminer-opt 3.4.6 ***********
A CPU miner with multi algo support and optimized for CPUs
with AES_NI and AVX extensions.
BTC donation address: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT
Forked from TPruvot's cpuminer-multi with credits
to Lucas Jones, elmad, palmd, djm34, pooler, ig0tik3d,
Wolf0, Jeff Garzik and Optiminer.
CPU: c@
CPU features: SSE2
SW built on Sep 10 2016 with GCC 4.8.4
SW features: SSE2
Algo features: SSE2 AES AVX AVX2
Start mining with SSE2
cpu-detect reports correct CPU string:
urban@mystique:~$ ~/cpu-detect/cpu-detect
Vendor: AuthenticAMD
Brand: AMD Athlon(tm) 64 X2 Dual Core Processor 6000+
CPU features:
MMX SSE SSE2 SSE3
It's probably because the brand string is not implemented on that CPU. There is a test to confirm it is supported but not
implemented correctly. There isn't much to be gained by testing for support, if the brand string isn't available the only
thing that can be done is to tell the users it's unavailable.
cpu_detect seems to have worked around the lack of brand string support, but it's not worth the effort for cpuminer.
As far as AMD compiling goes, I'm thinking it might be easier to just use the Intel architecture compile that matches
the feature set on AMD, unless someone can show a proper AMD compile performs better.