Bug 1152001 - volk does compile-time CPU detection
Summary: volk does compile-time CPU detection
Status: NEW
Alias: None
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Other (show other bugs)
Version: Current
Hardware: Other openSUSE Factory
: P5 - None : Normal (vote)
Target Milestone: ---
Assignee: Stefan Brüns
QA Contact: E-mail List
URL: https://github.com/gnuradio/volk/issu...
Whiteboard:
Keywords:
Depends on:
Blocks: 1100677
  Show dependency treegraph
 
Reported: 2019-09-25 13:18 UTC by Bernhard Wiedemann
Modified: 2020-03-26 21:30 UTC (History)
0 users

See Also:
Found By: Development
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Bernhard Wiedemann 2019-09-25 13:18:28 UTC
While working on reproducible builds for openSUSE, I found that
our volk package is compiled with avx instructions when available on a build machine.

Detection happens in lib/CMakeLists.txt


Here is a partial diff between -cpu host and -cpu kvm64 builds
on a avx2 capable host

  -- Performing Test have_mavx512f - Success
  -- Performing Test have_mavx512cd
  -- Performing Test have_mavx512cd - Success
- -- CPU missing xgetbv, Overruled arch avx
- -- Available architectures: generic;64;3dnow;abm;popcount;mmx;fma;sse;sse2;orc;norc;sse3;ssse3;sse4_a;sse4_1;sse4_2;avx2;avx512f;avx512cd
+ -- Available architectures: generic;64;3dnow;abm;popcount;mmx;fma;sse;sse2;orc;norc;sse3;ssse3;sse4_a;sse4_1;sse4_2;avx;avx2;avx512f;avx512cd
+ -- Available machines: generic_orc;sse2_64_mmx_orc;sse3_64_mmx_orc;ssse3_64_mmx_orc;sse4_a_64_mmx_orc;sse4_1_64_mmx_orc;sse4_2_64_mmx_orc;avx_64_mmx_orc;avx2_64_mmx_orc;avx512f_64_mmx_orc;avx512cd_64_mmx_orc
+ -- BUILD INFO ::: avx_64_mmx_orc ::: GNU ::: -O2 -g -DNDEBUG -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -DNDEBUG -Wall -m64 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mpopcnt -mavx