summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Becker <becker33@llnl.gov>2019-10-30 17:16:13 -0500
committerTodd Gamblin <tgamblin@llnl.gov>2019-11-01 03:49:16 -0700
commitb727f922a4cbe74d1d4820a9666ca43770dd3ba5 (patch)
treee8da5c850c10fb72c0fdb79a02f8ff2bd9a79c2e
parent835df4b2e4fe2d3a04dd756ddaa1b2f15f3ebb59 (diff)
downloadspack-b727f922a4cbe74d1d4820a9666ca43770dd3ba5.tar.gz
spack-b727f922a4cbe74d1d4820a9666ca43770dd3ba5.tar.bz2
spack-b727f922a4cbe74d1d4820a9666ca43770dd3ba5.tar.xz
spack-b727f922a4cbe74d1d4820a9666ca43770dd3ba5.zip
cpu: fix clang flags for generic x86_64 (#13491)
* cpu: differentiate flags used for pristine LLVM vs. Apple's version
-rw-r--r--lib/spack/llnl/util/cpu/microarchitectures.json17
-rw-r--r--lib/spack/spack/test/architecture.py7
2 files changed, 16 insertions, 8 deletions
diff --git a/lib/spack/llnl/util/cpu/microarchitectures.json b/lib/spack/llnl/util/cpu/microarchitectures.json
index 23cff4bf9a..bb3b4db21a 100644
--- a/lib/spack/llnl/util/cpu/microarchitectures.json
+++ b/lib/spack/llnl/util/cpu/microarchitectures.json
@@ -61,11 +61,18 @@
"flags": "-march={name} -mtune={name}"
}
],
- "clang": {
- "versions": ":",
- "family": "x86-64",
- "flags": "-march={family} -mcpu=generic"
- },
+ "clang": [
+ {
+ "versions": "0.0.0-apple:",
+ "family": "x86-64",
+ "flags": "-march={family}"
+ },
+ {
+ "versions": ":",
+ "family": "x86-64",
+ "flags": "-march={family} -mcpu=generic"
+ }
+ ],
"intel": {
"versions": ":",
"name": "pentium4",
diff --git a/lib/spack/spack/test/architecture.py b/lib/spack/spack/test/architecture.py
index 30aba65214..0a37ef9558 100644
--- a/lib/spack/spack/test/architecture.py
+++ b/lib/spack/spack/test/architecture.py
@@ -176,8 +176,9 @@ def test_arch_spec_container_semantic(item, architecture_str):
('gcc@4.7.2', 'ivybridge', '-march=core-avx-i -mtune=core-avx-i'),
# Check mixed toolchains
('clang@8.0.0', 'broadwell', ''),
+ ('clang@3.5', 'x86_64', '-march=x86-64 -mcpu=generic'),
# Check clang compilers with 'apple' suffix
- ('clang@9.1.0-apple', 'x86_64', '-march=x86-64 -mcpu=generic')
+ ('clang@9.1.0-apple', 'x86_64', '-march=x86-64')
])
@pytest.mark.filterwarnings("ignore:microarchitecture specific")
def test_optimization_flags(
@@ -199,9 +200,9 @@ def test_optimization_flags(
(spack.spec.CompilerSpec('gcc@4.4.0-special'), '9.2.0', 'icelake',
'-march=icelake-client -mtune=icelake-client'),
# Check that the special case for Apple's clang is treated correctly
- # i.e. it won't try to dtect the version again
+ # i.e. it won't try to detect the version again
(spack.spec.CompilerSpec('clang@9.1.0-apple'), None, 'x86_64',
- '-march=x86-64 -mcpu=generic'),
+ '-march=x86-64'),
])
def test_optimization_flags_with_custom_versions(
compiler, real_version, target_str, expected_flags, monkeypatch, config