diff options
author | Patrick J Volkerding <volkerdi@slackware.com> | 2020-04-26 03:34:28 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2020-04-26 08:59:53 +0200 |
commit | e6a0a756a3947c4809450fd87c65d883efd3077f (patch) | |
tree | ecd483d4b74dc84a7b73a2974f53ed80ee23dee3 /source/d/rust/rust.llvm10.7a14f9ed4fa60f4d8fc042fc678c80c14a850dc0.patch | |
parent | fc0b7eb5cb49c356c545c934504f9e6b6fe37bc6 (diff) | |
download | current-e6a0a756a3947c4809450fd87c65d883efd3077f.tar.gz |
Sun Apr 26 03:34:28 UTC 202020200426033428
d/rust-1.43.0-x86_64-2.txz: Rebuilt.
Patched and recompiled with the system LLVM 10 instead of the bundled LLVM 9.
Diffstat (limited to 'source/d/rust/rust.llvm10.7a14f9ed4fa60f4d8fc042fc678c80c14a850dc0.patch')
-rw-r--r-- | source/d/rust/rust.llvm10.7a14f9ed4fa60f4d8fc042fc678c80c14a850dc0.patch | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/source/d/rust/rust.llvm10.7a14f9ed4fa60f4d8fc042fc678c80c14a850dc0.patch b/source/d/rust/rust.llvm10.7a14f9ed4fa60f4d8fc042fc678c80c14a850dc0.patch new file mode 100644 index 00000000..5394aff2 --- /dev/null +++ b/source/d/rust/rust.llvm10.7a14f9ed4fa60f4d8fc042fc678c80c14a850dc0.patch @@ -0,0 +1,100 @@ +From 7a14f9ed4fa60f4d8fc042fc678c80c14a850dc0 Mon Sep 17 00:00:00 2001 +From: Nikita Popov <nikita.ppv@gmail.com> +Date: Sat, 18 Jan 2020 23:00:30 +0100 +Subject: [PATCH] Fix LLVM version handling in compiletest + +Convert version string to integer before comparing. Otherwise +we get into trouble with double digit versions ;) +--- + src/tools/compiletest/src/header.rs | 27 ++++++++++++++++++----- + src/tools/compiletest/src/header/tests.rs | 5 ++--- + 2 files changed, 23 insertions(+), 9 deletions(-) + +diff --git a/src/tools/compiletest/src/header.rs b/src/tools/compiletest/src/header.rs +index 2a24a8c3c9485..cb648db8830ef 100644 +--- a/src/tools/compiletest/src/header.rs ++++ b/src/tools/compiletest/src/header.rs +@@ -191,6 +191,7 @@ impl EarlyProps { + return true; + } + if let Some(ref actual_version) = config.llvm_version { ++ let actual_version = version_to_int(actual_version); + if line.starts_with("min-llvm-version") { + let min_version = line + .trim_end() +@@ -199,7 +200,7 @@ impl EarlyProps { + .expect("Malformed llvm version directive"); + // Ignore if actual version is smaller the minimum required + // version +- &actual_version[..] < min_version ++ actual_version < version_to_int(min_version) + } else if line.starts_with("min-system-llvm-version") { + let min_version = line + .trim_end() +@@ -208,7 +209,7 @@ impl EarlyProps { + .expect("Malformed llvm version directive"); + // Ignore if using system LLVM and actual version + // is smaller the minimum required version +- config.system_llvm && &actual_version[..] < min_version ++ config.system_llvm && actual_version < version_to_int(min_version) + } else if line.starts_with("ignore-llvm-version") { + // Syntax is: "ignore-llvm-version <version1> [- <version2>]" + let range_components = line +@@ -219,15 +220,15 @@ impl EarlyProps { + .take(3) // 3 or more = invalid, so take at most 3. + .collect::<Vec<&str>>(); + match range_components.len() { +- 1 => &actual_version[..] == range_components[0], ++ 1 => actual_version == version_to_int(range_components[0]), + 2 => { +- let v_min = range_components[0]; +- let v_max = range_components[1]; ++ let v_min = version_to_int(range_components[0]); ++ let v_max = version_to_int(range_components[1]); + if v_max < v_min { + panic!("Malformed LLVM version range: max < min") + } + // Ignore if version lies inside of range. +- &actual_version[..] >= v_min && &actual_version[..] <= v_max ++ actual_version >= v_min && actual_version <= v_max + } + _ => panic!("Malformed LLVM version directive"), + } +@@ -238,6 +239,20 @@ impl EarlyProps { + false + } + } ++ ++ fn version_to_int(version: &str) -> u32 { ++ let version_without_suffix = version.split('-').next().unwrap(); ++ let components: Vec<u32> = version_without_suffix ++ .split('.') ++ .map(|s| s.parse().expect("Malformed version component")) ++ .collect(); ++ match components.len() { ++ 1 => components[0] * 10000, ++ 2 => components[0] * 10000 + components[1] * 100, ++ 3 => components[0] * 10000 + components[1] * 100 + components[2], ++ _ => panic!("Malformed version"), ++ } ++ } + } + } + +diff --git a/src/tools/compiletest/src/header/tests.rs b/src/tools/compiletest/src/header/tests.rs +index 6c478f7e29da4..31d991e0c2f87 100644 +--- a/src/tools/compiletest/src/header/tests.rs ++++ b/src/tools/compiletest/src/header/tests.rs +@@ -122,9 +122,8 @@ fn llvm_version() { + config.llvm_version = Some("9.3.1-rust-1.43.0-dev".to_owned()); + assert!(!parse_rs(&config, "// min-llvm-version 9.2").ignore); + +- // FIXME. +- // config.llvm_version = Some("10.0.0-rust".to_owned()); +- // assert!(!parse_rs(&config, "// min-llvm-version 9.0").ignore); ++ config.llvm_version = Some("10.0.0-rust".to_owned()); ++ assert!(!parse_rs(&config, "// min-llvm-version 9.0").ignore); + } + + #[test] + |