From f8689858fc5e2bccd808a5ee898e5f852a51466c Mon Sep 17 00:00:00 2001 From: Jake Shadle Date: Fri, 12 Feb 2021 17:22:49 +0100 Subject: [PATCH] Fixup (#18) * Fix deny * Update builtin target list to 1.50.0 * Add special case for armv5te-unknown-linux-uclibceabi Needs https://github.com/bytecodealliance/target-lexicon/pull/68 to be merged and released * Update CHANGELOG --- CHANGELOG.md | 6 +++ Cargo.toml | 2 +- deny.toml | 4 ++ src/targets/builtins.rs | 107 ++++++++++++++++------------------------ src/targets/mod.rs | 4 +- tests/eval.rs | 28 ++++++----- 6 files changed, 73 insertions(+), 78 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index aff0d5d..4e2d0e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] - ReleaseDate +### Changed +- Updated the builtin target list to Rust 1.50.0. Again, somewhat of a breaking change as many targets were removed or changed. + +### Fixed +- Update smallvec to fix an [advisory](https://rustsec.org/advisories/RUSTSEC-2021-0003) + ## [0.6.0] - 2021-01-04 ### Changed - Updated the builtin target list to Rust 1.49.0, this is somewhat of a breaking change, as rustc now considers all `android` targets to have the `gnu` environment, where previously, it was unspecified. diff --git a/Cargo.toml b/Cargo.toml index 8d62f06..2f60aaa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,7 +18,7 @@ default = [] targets = ["target-lexicon"] [dependencies] -smallvec = "1.4" +smallvec = "1.6" target-lexicon = { version = "0.11", optional = true } [dev-dependencies] diff --git a/deny.toml b/deny.toml index 5c822f3..ef18f14 100644 --- a/deny.toml +++ b/deny.toml @@ -2,6 +2,10 @@ vulnerability = "deny" unmaintained = "deny" notice = "deny" +ignore = [ + # difference is unmaintained + "RUSTSEC-2020-0095", +] [bans] multiple-versions = "deny" diff --git a/src/targets/builtins.rs b/src/targets/builtins.rs index 1756f3f..5b709a3 100644 --- a/src/targets/builtins.rs +++ b/src/targets/builtins.rs @@ -10,7 +10,7 @@ use super::*; -pub(crate) const RUSTC_VERSION: &str = "1.49.0"; +pub(crate) const RUSTC_VERSION: &str = "1.50.0"; pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ TargetInfo { @@ -33,6 +33,16 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ pointer_width: 64, endian: Endian::little, }, + TargetInfo { + triple: "aarch64-apple-ios-macabi", + os: Some(Os::ios), + arch: Arch::aarch64, + env: None, + vendor: Some(Vendor::apple), + family: Some(Family::unix), + pointer_width: 64, + endian: Endian::little, + }, TargetInfo { triple: "aarch64-apple-tvos", os: Some(Os::tvos), @@ -48,7 +58,7 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ os: Some(Os::fuchsia), arch: Arch::aarch64, env: None, - vendor: None, + vendor: Some(Vendor::unknown), family: Some(Family::unix), pointer_width: 64, endian: Endian::little, @@ -73,16 +83,6 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ pointer_width: 64, endian: Endian::little, }, - TargetInfo { - triple: "aarch64-unknown-cloudabi", - os: Some(Os::cloudabi), - arch: Arch::aarch64, - env: None, - vendor: Some(Vendor::unknown), - family: None, - pointer_width: 64, - endian: Endian::little, - }, TargetInfo { triple: "aarch64-unknown-freebsd", os: Some(Os::freebsd), @@ -138,7 +138,7 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ os: None, arch: Arch::aarch64, env: None, - vendor: None, + vendor: Some(Vendor::unknown), family: None, pointer_width: 64, endian: Endian::little, @@ -148,7 +148,7 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ os: None, arch: Arch::aarch64, env: None, - vendor: None, + vendor: Some(Vendor::unknown), family: None, pointer_width: 64, endian: Endian::little, @@ -248,7 +248,7 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ os: None, arch: Arch::arm, env: None, - vendor: None, + vendor: Some(Vendor::unknown), family: None, pointer_width: 32, endian: Endian::big, @@ -258,7 +258,7 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ os: None, arch: Arch::arm, env: None, - vendor: None, + vendor: Some(Vendor::unknown), family: None, pointer_width: 32, endian: Endian::big, @@ -293,6 +293,16 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ pointer_width: 32, endian: Endian::little, }, + TargetInfo { + triple: "armv5te-unknown-linux-uclibceabi", + os: Some(Os::linux), + arch: Arch::arm, + env: Some(Env::uclibc), + vendor: Some(Vendor::unknown), + family: Some(Family::unix), + pointer_width: 32, + endian: Endian::little, + }, TargetInfo { triple: "armv6-unknown-freebsd", os: Some(Os::freebsd), @@ -333,16 +343,6 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ pointer_width: 32, endian: Endian::little, }, - TargetInfo { - triple: "armv7-unknown-cloudabi-eabihf", - os: Some(Os::cloudabi), - arch: Arch::arm, - env: None, - vendor: Some(Vendor::unknown), - family: None, - pointer_width: 32, - endian: Endian::little, - }, TargetInfo { triple: "armv7-unknown-freebsd", os: Some(Os::freebsd), @@ -418,7 +418,7 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ os: None, arch: Arch::arm, env: None, - vendor: None, + vendor: Some(Vendor::unknown), family: None, pointer_width: 32, endian: Endian::little, @@ -428,7 +428,7 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ os: None, arch: Arch::arm, env: None, - vendor: None, + vendor: Some(Vendor::unknown), family: None, pointer_width: 32, endian: Endian::little, @@ -438,7 +438,7 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ os: None, arch: Arch::arm, env: None, - vendor: None, + vendor: Some(Vendor::unknown), family: None, pointer_width: 32, endian: Endian::little, @@ -448,7 +448,7 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ os: None, arch: Arch::arm, env: None, - vendor: None, + vendor: Some(Vendor::unknown), family: None, pointer_width: 32, endian: Endian::little, @@ -475,7 +475,7 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ }, TargetInfo { triple: "avr-unknown-gnu-atmega328", - os: Some(Os::unknown), + os: None, arch: Arch::avr, env: None, vendor: Some(Vendor::unknown), @@ -573,16 +573,6 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ pointer_width: 32, endian: Endian::little, }, - TargetInfo { - triple: "i686-unknown-cloudabi", - os: Some(Os::cloudabi), - arch: Arch::x86, - env: None, - vendor: Some(Vendor::unknown), - family: None, - pointer_width: 32, - endian: Endian::little, - }, TargetInfo { triple: "i686-unknown-freebsd", os: Some(Os::freebsd), @@ -798,7 +788,7 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ os: None, arch: Arch::mips, env: None, - vendor: None, + vendor: Some(Vendor::unknown), family: None, pointer_width: 32, endian: Endian::little, @@ -848,7 +838,7 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ os: None, arch: Arch::msp430, env: None, - vendor: None, + vendor: Some(Vendor::unknown), family: None, pointer_width: 16, endian: Endian::little, @@ -1118,7 +1108,7 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ os: None, arch: Arch::arm, env: None, - vendor: None, + vendor: Some(Vendor::unknown), family: None, pointer_width: 32, endian: Endian::little, @@ -1128,7 +1118,7 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ os: None, arch: Arch::arm, env: None, - vendor: None, + vendor: Some(Vendor::unknown), family: None, pointer_width: 32, endian: Endian::little, @@ -1158,7 +1148,7 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ os: None, arch: Arch::arm, env: None, - vendor: None, + vendor: Some(Vendor::unknown), family: None, pointer_width: 32, endian: Endian::little, @@ -1168,7 +1158,7 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ os: None, arch: Arch::arm, env: None, - vendor: None, + vendor: Some(Vendor::unknown), family: None, pointer_width: 32, endian: Endian::little, @@ -1178,7 +1168,7 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ os: None, arch: Arch::arm, env: None, - vendor: None, + vendor: Some(Vendor::unknown), family: None, pointer_width: 32, endian: Endian::little, @@ -1218,7 +1208,7 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ os: None, arch: Arch::arm, env: None, - vendor: None, + vendor: Some(Vendor::unknown), family: None, pointer_width: 32, endian: Endian::little, @@ -1228,7 +1218,7 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ os: None, arch: Arch::arm, env: None, - vendor: None, + vendor: Some(Vendor::unknown), family: None, pointer_width: 32, endian: Endian::little, @@ -1238,7 +1228,7 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ os: None, arch: Arch::arm, env: None, - vendor: None, + vendor: Some(Vendor::unknown), family: None, pointer_width: 32, endian: Endian::little, @@ -1268,7 +1258,7 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ os: Some(Os::wasi), arch: Arch::wasm32, env: None, - vendor: None, + vendor: Some(Vendor::unknown), family: None, pointer_width: 32, endian: Endian::little, @@ -1328,7 +1318,7 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ os: Some(Os::fuchsia), arch: Arch::x86_64, env: None, - vendor: None, + vendor: Some(Vendor::unknown), family: Some(Family::unix), pointer_width: 64, endian: Endian::little, @@ -1403,16 +1393,6 @@ pub const ALL_BUILTINS: &[TargetInfo<'static>] = &[ pointer_width: 64, endian: Endian::little, }, - TargetInfo { - triple: "x86_64-unknown-cloudabi", - os: Some(Os::cloudabi), - arch: Arch::x86_64, - env: None, - vendor: Some(Vendor::unknown), - family: None, - pointer_width: 64, - endian: Endian::little, - }, TargetInfo { triple: "x86_64-unknown-dragonfly", os: Some(Os::dragonfly), @@ -1621,7 +1601,6 @@ impl<'a> super::Vendor<'a> { impl<'a> super::Os<'a> { pub const android: Os<'static> = Os("android"); - pub const cloudabi: Os<'static> = Os("cloudabi"); pub const cuda: Os<'static> = Os("cuda"); pub const dragonfly: Os<'static> = Os("dragonfly"); pub const emscripten: Os<'static> = Os("emscripten"); diff --git a/src/targets/mod.rs b/src/targets/mod.rs index bffc2e0..39e5dd0 100644 --- a/src/targets/mod.rs +++ b/src/targets/mod.rs @@ -148,7 +148,7 @@ pub fn get_builtin_target_by_triple(triple: &str) -> Option<&'static TargetInfo< /// versions. /// /// ``` -/// assert_eq!("1.49.0", cfg_expr::targets::rustc_version()); +/// assert_eq!("1.50.0", cfg_expr::targets::rustc_version()); /// ``` pub fn rustc_version() -> &'static str { builtins::RUSTC_VERSION @@ -173,7 +173,7 @@ mod test { #[test] fn has_ios() { assert_eq!( - 6, + 7, super::ALL_BUILTINS .iter() .filter(|ti| ti.os == Some(super::Os::ios)) diff --git a/tests/eval.rs b/tests/eval.rs index 2f11ea2..bca2aee 100644 --- a/tests/eval.rs +++ b/tests/eval.rs @@ -21,19 +21,25 @@ impl Target { // resolved in a satisfactory manner, not really concerned about // the presence of this triple in most normal cases use target_lexicon as tl; - if s == "avr-unknown-gnu-atmega328" { - tl::Triple { + match s { + "avr-unknown-gnu-atmega328" => tl::Triple { architecture: tl::Architecture::Avr, vendor: tl::Vendor::Unknown, operating_system: tl::OperatingSystem::Unknown, environment: tl::Environment::Unknown, binary_format: tl::BinaryFormat::Unknown, - } - } else { - match s.parse() { + }, + "armv5te-unknown-linux-uclibceabi" => tl::Triple { + architecture: tl::Architecture::Arm(tl::ArmArchitecture::Armv5te), + vendor: tl::Vendor::Unknown, + operating_system: tl::OperatingSystem::Linux, + environment: tl::Environment::Uclibc, + binary_format: tl::BinaryFormat::Unknown, + }, + triple => match triple.parse() { Ok(l) => l, - Err(e) => panic!("failed to parse '{}': {:?}", s, e), - } + Err(e) => panic!("failed to parse '{}': {:?}", triple, e), + }, } }, } @@ -51,8 +57,8 @@ macro_rules! tg_match { let linfo = tg.matches(&$target.lexicon); assert_eq!( tinfo, linfo, - "{:#?} builtin didn't match lexicon {:#?}", - $target.builtin, $target.lexicon + "{:#?} builtin didn't match lexicon {:#?} for predicate {:#?}", + $target.builtin, $target.lexicon, tg, ); return linfo; @@ -75,8 +81,8 @@ macro_rules! tg_match { let linfo = tg.matches(&$target.lexicon); assert_eq!( tinfo, linfo, - "{:#?} builtin didn't match lexicon {:#?}", - $target.builtin, $target.lexicon + "{:#?} builtin didn't match lexicon {:#?} for predicate {:#?}", + $target.builtin, $target.lexicon, tg, ); return linfo;