Hi Ricardo and Simon, Thanks for your insight! I didn't even know about lscpu. The output for my laptop is shown below. I tried building on a virtual machine, and that works fine.
> CPU detection is a bottomless can of worms. That sounds very credible. But what can we do about this? There is obviously a trade-off between reproducibility and performance here. Can we support both, in a way that users can understand and manage? The OpenBlas package in Guix is (or at least was, back then) written for performance. Can I, as a user, ask for a reproducible version? That could either be a generic version for any x86 architecture (preferably), or one that always builds for a given sub-architecture and then fails at runtime if the CPU doesn't match. Next: can I, as a user of dependent code, ask for reproducible versions of all my dependencies? In my case, I was packaging Python code that calls OpenBlas via NumPy. Many people in that situation don't even know what OpenBlas is. I did know, but wasn't aware of the build-time CPU detection. There is of course the issue that we can never be sure if a build will be reproducible in the future. But we can at least take care of the cases where the packager is aware of non-reproducibility issues, and make them transparent and manageable. Cheers, Konrad --8<---------------cut here---------------start------------->8--- $ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian Address sizes: 39 bits physical, 48 bits virtual CPU(s): 8 On-line CPU(s) list: 0-7 Thread(s) per core: 2 Core(s) per socket: 4 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 140 Model name: 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz Stepping: 1 CPU MHz: 1800.000 CPU max MHz: 4800,0000 CPU min MHz: 400,0000 BogoMIPS: 3609.60 Virtualization: VT-x L1d cache: 192 KiB L1i cache: 128 KiB L2 cache: 5 MiB L3 cache: 12 MiB NUMA node0 CPU(s): 0-7 Vulnerability Itlb multihit: Not affected Vulnerability L1tf: Not affected Vulnerability Mds: Not affected Vulnerability Meltdown: Not affected Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via p rctl and seccomp Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user poi nter sanitization Vulnerability Spectre v2: Mitigation; Enhanced IBRS, IBPB conditional, RSB fi lling Vulnerability Srbds: Not affected Vulnerability Tsx async abort: Not affected Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pg e mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm cons tant_tsc art arch_perfmon pebs bts rep_good nopl xt opology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm 2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave av x f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l2 invpcid_single cdp_l2 ssbd ibrs ibpb st ibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdt_a avx512f avx512dq rdseed adx sma p avx512ifma clflushopt clwb intel_pt avx512cd sha_ ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves split_lock_detect dtherm ida arat pln pts hwp hwp_ notify hwp_act_window hwp_epp hwp_pkg_req avx512vbm i umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg tme avx512_vpopcntdq rdpi d movdiri movdir64b fsrm avx512_vp2intersect md_cle ar flush_l1d arch_capabilities --8<---------------cut here---------------end--------------->8---