From 19bd836db7ebda76f2ecb28491c55bf48cea9ca7 Mon Sep 17 00:00:00 2001 From: Jake Shadle Date: Fri, 29 May 2026 09:45:04 +0200 Subject: [PATCH 1/3] Rebase --- Cargo.lock | 4 +- Cargo.toml | 2 +- README.md | 8 +- src/targets/builtins.rs | 184 +++++++++++++++++++++++++++++++++++++++- update/src/main.rs | 2 + 5 files changed, 192 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fc69156..71b736b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -141,9 +141,9 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.13.3" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df7f62577c25e07834649fc3b39fafdc597c0a3527dc1c60129201ccfcbaa50c" +checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca" [[package]] name = "unicode-ident" diff --git a/Cargo.toml b/Cargo.toml index fb0b0b0..bfde52d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,7 +24,7 @@ targets = ["target-lexicon"] [dependencies] smallvec = "1.15" -target-lexicon = { version = "=0.13.3", optional = true } +target-lexicon = { version = "=0.13.5", optional = true } [dev-dependencies] similar-asserts = "1.7" diff --git a/README.md b/README.md index e0e7f7e..9f89132 100644 --- a/README.md +++ b/README.md @@ -4,13 +4,13 @@ # `⚙️ cfg-expr` -**A parser and evaluator for Rust `cfg()` expressions. Builtin targets as of [1.94.0] are supported.** +**A parser and evaluator for Rust `cfg()` expressions. Builtin targets as of [1.96.0] are supported.** [![Build Status](https://github.com/EmbarkStudios/cfg-expr/actions/workflows/ci.yml/badge.svg)](https://github.com/EmbarkStudios/cfg-expr/actions) [![crates.io](https://img.shields.io/crates/v/cfg-expr.svg)](https://crates.io/crates/cfg-expr) [![Docs](https://docs.rs/cfg-expr/badge.svg)](https://docs.rs/cfg-expr) [![Minimum Supported Rust Version](https://img.shields.io/badge/Rust%20MSRV-1.85.0-blue?color=fc8d62&logo=rust)](https://blog.rust-lang.org/2025/02/20/Rust-1.85.0/) -[![Rust Targets](https://img.shields.io/badge/Rust%20Targets-1.94.0-blue.svg)](https://doc.rust-lang.org/rustc/platform-support.html) +[![Rust Targets](https://img.shields.io/badge/Rust%20Targets-1.96.0-blue.svg)](https://doc.rust-lang.org/rustc/platform-support.html) [![Contributor Covenant](https://img.shields.io/badge/contributor%20covenant-v2.0%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md) [![Embark](https://img.shields.io/badge/embark-open%20source-blueviolet.svg)](https://embark.dev/) @@ -24,7 +24,7 @@ `cfg-expr` is a crate that can be used to parse and evaluate Rust `cfg()` expressions, both as declarable in Rust code itself, as well in Cargo manifests' `[target.'cfg()'.dependencies]` sections. -It contains a list of all builtin targets known to rustc as of [1.94.0] that can be used to determine if a particular cfg expression is satisfiable. +It contains a list of all builtin targets known to rustc as of [1.96.0] that can be used to determine if a particular cfg expression is satisfiable. ```rust use cfg_expr::{targets::get_builtin_target_by_triple, Expression, Predicate}; @@ -100,4 +100,4 @@ at your option. Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions. -[1.94.0]: (https://doc.rust-lang.org/rustc/platform-support.html) +[1.96.0]: (https://doc.rust-lang.org/rustc/platform-support.html) diff --git a/src/targets/builtins.rs b/src/targets/builtins.rs index d972d72..1d150e0 100644 --- a/src/targets/builtins.rs +++ b/src/targets/builtins.rs @@ -10,7 +10,7 @@ use super::*; -pub(crate) const RUSTC_VERSION: &str = "1.94.0"; +pub(crate) const RUSTC_VERSION: &str = "1.96.0"; pub const ALL_BUILTINS: &[TargetInfo] = &[ TargetInfo { @@ -611,6 +611,32 @@ pub const ALL_BUILTINS: &[TargetInfo] = &[ has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr, panic: Panic::abort, }, + TargetInfo { + triple: Triple::new_const("aarch64v8r-unknown-none"), + os: None, + abi: None, + arch: Arch::aarch64, + env: None, + vendor: Some(Vendor::unknown), + families: Families::new_const(&[]), + pointer_width: 64, + endian: Endian::little, + has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr, + panic: Panic::abort, + }, + TargetInfo { + triple: Triple::new_const("aarch64v8r-unknown-none-softfloat"), + os: None, + abi: Some(Abi::softfloat), + arch: Arch::aarch64, + env: None, + vendor: Some(Vendor::unknown), + families: Families::new_const(&[]), + pointer_width: 64, + endian: Endian::little, + has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr, + panic: Panic::abort, + }, TargetInfo { triple: Triple::new_const("amdgcn-amd-amdhsa"), os: Some(Os::amdhsa), @@ -871,6 +897,32 @@ pub const ALL_BUILTINS: &[TargetInfo] = &[ has_atomics: HasAtomics::atomic_8_16_32_ptr, panic: Panic::unwind, }, + TargetInfo { + triple: Triple::new_const("armv6-none-eabi"), + os: None, + abi: Some(Abi::eabi), + arch: Arch::arm, + env: None, + vendor: Some(Vendor::unknown), + families: Families::new_const(&[]), + pointer_width: 32, + endian: Endian::little, + has_atomics: HasAtomics::atomic_8_16_32_64_ptr, + panic: Panic::abort, + }, + TargetInfo { + triple: Triple::new_const("armv6-none-eabihf"), + os: None, + abi: Some(Abi::eabihf), + arch: Arch::arm, + env: None, + vendor: Some(Vendor::unknown), + families: Families::new_const(&[]), + pointer_width: 32, + endian: Endian::little, + has_atomics: HasAtomics::atomic_8_16_32_64_ptr, + panic: Panic::abort, + }, TargetInfo { triple: Triple::new_const("armv6-unknown-freebsd"), os: Some(Os::freebsd), @@ -2847,6 +2899,19 @@ pub const ALL_BUILTINS: &[TargetInfo] = &[ has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr, panic: Panic::unwind, }, + TargetInfo { + triple: Triple::new_const("s390x-unknown-none-softfloat"), + os: None, + abi: Some(Abi::softfloat), + arch: Arch::s390x, + env: None, + vendor: Some(Vendor::unknown), + families: Families::new_const(&[]), + pointer_width: 64, + endian: Endian::big, + has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr, + panic: Panic::abort, + }, TargetInfo { triple: Triple::new_const("sparc-unknown-linux-gnu"), os: Some(Os::linux), @@ -2964,6 +3029,19 @@ pub const ALL_BUILTINS: &[TargetInfo] = &[ has_atomics: HasAtomics::new_const(&[]), panic: Panic::abort, }, + TargetInfo { + triple: Triple::new_const("thumbv6-none-eabi"), + os: None, + abi: Some(Abi::eabi), + arch: Arch::arm, + env: None, + vendor: Some(Vendor::unknown), + families: Families::new_const(&[]), + pointer_width: 32, + endian: Endian::little, + has_atomics: HasAtomics::atomic_8_16_32_ptr, + panic: Panic::abort, + }, TargetInfo { triple: Triple::new_const("thumbv6m-none-eabi"), os: None, @@ -2990,6 +3068,32 @@ pub const ALL_BUILTINS: &[TargetInfo] = &[ has_atomics: HasAtomics::atomic_8_16_32_ptr, panic: Panic::abort, }, + TargetInfo { + triple: Triple::new_const("thumbv7a-none-eabi"), + os: None, + abi: Some(Abi::eabi), + arch: Arch::arm, + env: None, + vendor: Some(Vendor::unknown), + families: Families::new_const(&[]), + pointer_width: 32, + endian: Endian::little, + has_atomics: HasAtomics::atomic_8_16_32_64_ptr, + panic: Panic::abort, + }, + TargetInfo { + triple: Triple::new_const("thumbv7a-none-eabihf"), + os: None, + abi: Some(Abi::eabihf), + arch: Arch::arm, + env: None, + vendor: Some(Vendor::unknown), + families: Families::new_const(&[]), + pointer_width: 32, + endian: Endian::little, + has_atomics: HasAtomics::atomic_8_16_32_64_ptr, + panic: Panic::abort, + }, TargetInfo { triple: Triple::new_const("thumbv7a-nuttx-eabi"), os: Some(Os::nuttx), @@ -3159,6 +3263,32 @@ pub const ALL_BUILTINS: &[TargetInfo] = &[ has_atomics: HasAtomics::atomic_8_16_32_64_ptr, panic: Panic::unwind, }, + TargetInfo { + triple: Triple::new_const("thumbv7r-none-eabi"), + os: None, + abi: Some(Abi::eabi), + arch: Arch::arm, + env: None, + vendor: Some(Vendor::unknown), + families: Families::new_const(&[]), + pointer_width: 32, + endian: Endian::little, + has_atomics: HasAtomics::atomic_8_16_32_64_ptr, + panic: Panic::abort, + }, + TargetInfo { + triple: Triple::new_const("thumbv7r-none-eabihf"), + os: None, + abi: Some(Abi::eabihf), + arch: Arch::arm, + env: None, + vendor: Some(Vendor::unknown), + families: Families::new_const(&[]), + pointer_width: 32, + endian: Endian::little, + has_atomics: HasAtomics::atomic_8_16_32_64_ptr, + panic: Panic::abort, + }, TargetInfo { triple: Triple::new_const("thumbv8m.base-none-eabi"), os: None, @@ -3237,6 +3367,19 @@ pub const ALL_BUILTINS: &[TargetInfo] = &[ has_atomics: HasAtomics::atomic_8_16_32_ptr, panic: Panic::abort, }, + TargetInfo { + triple: Triple::new_const("thumbv8r-none-eabihf"), + os: None, + abi: Some(Abi::eabihf), + arch: Arch::arm, + env: None, + vendor: Some(Vendor::unknown), + families: Families::new_const(&[]), + pointer_width: 32, + endian: Endian::little, + has_atomics: HasAtomics::atomic_8_16_32_64_ptr, + panic: Panic::abort, + }, TargetInfo { triple: Triple::new_const("wasm32-unknown-emscripten"), os: Some(Os::emscripten), @@ -3705,6 +3848,45 @@ pub const ALL_BUILTINS: &[TargetInfo] = &[ has_atomics: HasAtomics::atomic_8_16_32_64_ptr, panic: Panic::unwind, }, + TargetInfo { + triple: Triple::new_const("x86_64-unknown-linux-gnuasan"), + os: Some(Os::linux), + abi: None, + arch: Arch::x86_64, + env: Some(Env::gnu), + vendor: Some(Vendor::unknown), + families: Families::unix, + pointer_width: 64, + endian: Endian::little, + has_atomics: HasAtomics::atomic_8_16_32_64_ptr, + panic: Panic::unwind, + }, + TargetInfo { + triple: Triple::new_const("x86_64-unknown-linux-gnumsan"), + os: Some(Os::linux), + abi: None, + arch: Arch::x86_64, + env: Some(Env::gnu), + vendor: Some(Vendor::unknown), + families: Families::unix, + pointer_width: 64, + endian: Endian::little, + has_atomics: HasAtomics::atomic_8_16_32_64_ptr, + panic: Panic::unwind, + }, + TargetInfo { + triple: Triple::new_const("x86_64-unknown-linux-gnutsan"), + os: Some(Os::linux), + abi: None, + arch: Arch::x86_64, + env: Some(Env::gnu), + vendor: Some(Vendor::unknown), + families: Families::unix, + pointer_width: 64, + endian: Endian::little, + has_atomics: HasAtomics::atomic_8_16_32_64_ptr, + panic: Panic::unwind, + }, TargetInfo { triple: Triple::new_const("x86_64-unknown-linux-gnux32"), os: Some(Os::linux), diff --git a/update/src/main.rs b/update/src/main.rs index 166b84c..b321a1e 100644 --- a/update/src/main.rs +++ b/update/src/main.rs @@ -170,6 +170,8 @@ fn assemble(version: &str, rustc: String) -> Result { "relocation_model" | "target_has_atomic_equal_alignment" | "target_has_atomic_load_store" + | "target_has_atomic_primitive_alignment" + | "target_object_format" | "fmt_debug" => { //relocation_model = Some(val), } From 3c06a96bcb649eb6bced538892733e5d7491c985 Mon Sep 17 00:00:00 2001 From: Jake Shadle Date: Fri, 29 May 2026 09:46:31 +0200 Subject: [PATCH 2/3] Remove stupid warnings --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7499cd6..531315b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,7 @@ jobs: name: Lint runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - uses: dtolnay/rust-toolchain@stable with: components: "clippy, rustfmt" @@ -35,7 +35,7 @@ jobs: toolchain: [1.85.0, stable] runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.toolchain }} @@ -53,14 +53,14 @@ jobs: name: cargo-deny runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - uses: EmbarkStudios/cargo-deny-action@v2 publish-check: name: Publish Check runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - uses: dtolnay/rust-toolchain@stable - run: cargo fetch - name: cargo publish check From bb3bbaddd94bf6e3661f961ae9f26d157fbde98c Mon Sep 17 00:00:00 2001 From: Jake Shadle Date: Fri, 29 May 2026 09:48:19 +0200 Subject: [PATCH 3/3] Update CHANGELOG --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b8fcbf..fa5f91f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] - ReleaseDate +### Changed +- [PR#89](https://github.com/EmbarkStudios/cfg-expr/pull/89) updated the builtin target list to 1.96.0, 1.95.0 was skipped as it had zero changes to the target list. + ## [0.20.7] - 2026-03-06 ### Changed - [PR#87](https://github.com/EmbarkStudios/cfg-expr/pull/87) updated the builtin target list to 1.94.0.