Skip to content

Commit

Permalink
Fix windows-targets semver linker path compatibility (#2870)
Browse files Browse the repository at this point in the history
  • Loading branch information
kennykerr committed Feb 22, 2024
1 parent c5511e7 commit 8fd448b
Show file tree
Hide file tree
Showing 20 changed files with 29 additions and 27 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/lib.yml
Expand Up @@ -72,7 +72,7 @@ jobs:
foreach($Test in $Tests) {
$Target = $Test.Item1
$Magic = $Test.Item2
$Output = [string](& $DumpbinPath /headers crates/targets/$Target/lib/windows.0.52.1.lib)
$Output = [string](& $DumpbinPath /headers crates/targets/$Target/lib/windows.0.52.0.lib)
if($Output -match "Machine\s*: $Magic" -ne $True) {
Write-Error "Import lib check failed for $Target ($Magic)."
Exit 1
Expand Down
16 changes: 8 additions & 8 deletions crates/libs/targets/Cargo.toml
@@ -1,7 +1,7 @@

[package]
name = "windows-targets"
version = "0.52.2"
version = "0.52.3"
authors = ["Microsoft"]
edition = "2021"
rust-version = "1.60"
Expand All @@ -14,22 +14,22 @@ readme = "readme.md"
workspace = true

[target.'cfg(all(target_arch = "x86", target_env = "msvc", not(windows_raw_dylib)))'.dependencies]
windows_i686_msvc = { path = "../../targets/i686_msvc", version = "0.52.1" }
windows_i686_msvc = { path = "../../targets/i686_msvc", version = "0.52.3" }

[target.'cfg(all(target_arch = "x86_64", target_env = "msvc", not(windows_raw_dylib)))'.dependencies]
windows_x86_64_msvc = { path = "../../targets/x86_64_msvc", version = "0.52.1" }
windows_x86_64_msvc = { path = "../../targets/x86_64_msvc", version = "0.52.3" }

[target.'cfg(all(target_arch = "aarch64", target_env = "msvc", not(windows_raw_dylib)))'.dependencies]
windows_aarch64_msvc = { path = "../../targets/aarch64_msvc", version = "0.52.1" }
windows_aarch64_msvc = { path = "../../targets/aarch64_msvc", version = "0.52.3" }

[target.'cfg(all(target_arch = "x86", target_env = "gnu", not(windows_raw_dylib)))'.dependencies]
windows_i686_gnu = { path = "../../targets/i686_gnu", version = "0.52.1" }
windows_i686_gnu = { path = "../../targets/i686_gnu", version = "0.52.3" }

[target.'cfg(all(target_arch = "x86_64", target_env = "gnu", not(target_abi = "llvm"), not(windows_raw_dylib)))'.dependencies]
windows_x86_64_gnu = { path = "../../targets/x86_64_gnu", version = "0.52.1" }
windows_x86_64_gnu = { path = "../../targets/x86_64_gnu", version = "0.52.3" }

[target.x86_64-pc-windows-gnullvm.dependencies]
windows_x86_64_gnullvm = { path = "../../targets/x86_64_gnullvm", version = "0.52.1" }
windows_x86_64_gnullvm = { path = "../../targets/x86_64_gnullvm", version = "0.52.3" }

[target.aarch64-pc-windows-gnullvm.dependencies]
windows_aarch64_gnullvm = { path = "../../targets/aarch64_gnullvm", version = "0.52.1" }
windows_aarch64_gnullvm = { path = "../../targets/aarch64_gnullvm", version = "0.52.3" }
2 changes: 1 addition & 1 deletion crates/libs/targets/src/lib.rs
Expand Up @@ -35,7 +35,7 @@ macro_rules! link {
#[macro_export]
macro_rules! link {
($library:literal $abi:literal $($link_name:literal)? $(#[$doc:meta])? fn $($function:tt)*) => (
#[link(name = "windows.0.52.1")]
#[link(name = "windows.0.52.0")]
extern $abi {
$(#[link_name=$link_name])?
pub fn $($function)*;
Expand Down
2 changes: 1 addition & 1 deletion crates/targets/aarch64_gnullvm/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "windows_aarch64_gnullvm"
version = "0.52.1"
version = "0.52.3"
authors = ["Microsoft"]
edition = "2021"
rust-version = "1.60"
Expand Down
2 changes: 1 addition & 1 deletion crates/targets/aarch64_msvc/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "windows_aarch64_msvc"
version = "0.52.1"
version = "0.52.3"
authors = ["Microsoft"]
edition = "2021"
rust-version = "1.60"
Expand Down
2 changes: 1 addition & 1 deletion crates/targets/i686_gnu/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "windows_i686_gnu"
version = "0.52.1"
version = "0.52.3"
authors = ["Microsoft"]
edition = "2021"
rust-version = "1.60"
Expand Down
2 changes: 1 addition & 1 deletion crates/targets/i686_msvc/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "windows_i686_msvc"
version = "0.52.1"
version = "0.52.3"
authors = ["Microsoft"]
edition = "2021"
rust-version = "1.60"
Expand Down
2 changes: 1 addition & 1 deletion crates/targets/x86_64_gnu/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "windows_x86_64_gnu"
version = "0.52.1"
version = "0.52.3"
authors = ["Microsoft"]
edition = "2021"
rust-version = "1.60"
Expand Down
2 changes: 1 addition & 1 deletion crates/targets/x86_64_gnullvm/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "windows_x86_64_gnullvm"
version = "0.52.1"
version = "0.52.3"
authors = ["Microsoft"]
edition = "2021"
rust-version = "1.60"
Expand Down
2 changes: 1 addition & 1 deletion crates/targets/x86_64_msvc/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "windows_x86_64_msvc"
version = "0.52.1"
version = "0.52.3"
authors = ["Microsoft"]
edition = "2021"
rust-version = "1.60"
Expand Down
18 changes: 10 additions & 8 deletions crates/tests/targets/tests/files.rs
Expand Up @@ -5,13 +5,15 @@
fn test() {
let targets = tool_lib::crates("../../targets");
assert_eq!(7, targets.len());
assert!(targets.iter().all(|(_, version)| version == "0.52.1"));
assert!(targets.iter().all(|(_, version)| version == "0.52.3"));

std::include_bytes!("../../../targets/aarch64_gnullvm/lib/libwindows.0.52.1.a");
std::include_bytes!("../../../targets/aarch64_msvc/lib/windows.0.52.1.lib");
std::include_bytes!("../../../targets/i686_gnu/lib/libwindows.0.52.1.a");
std::include_bytes!("../../../targets/i686_msvc/lib/windows.0.52.1.lib");
std::include_bytes!("../../../targets/x86_64_gnu/lib/libwindows.0.52.1.a");
std::include_bytes!("../../../targets/x86_64_gnullvm/lib/libwindows.0.52.1.a");
std::include_bytes!("../../../targets/x86_64_msvc/lib/windows.0.52.1.lib");
// The lib names can't change for minor (semver) updates as that breaks linker search.
// https://github.com/microsoft/windows-rs/issues/2869
std::include_bytes!("../../../targets/aarch64_gnullvm/lib/libwindows.0.52.0.a");
std::include_bytes!("../../../targets/aarch64_msvc/lib/windows.0.52.0.lib");
std::include_bytes!("../../../targets/i686_gnu/lib/libwindows.0.52.0.a");
std::include_bytes!("../../../targets/i686_msvc/lib/windows.0.52.0.lib");
std::include_bytes!("../../../targets/x86_64_gnu/lib/libwindows.0.52.0.a");
std::include_bytes!("../../../targets/x86_64_gnullvm/lib/libwindows.0.52.0.a");
std::include_bytes!("../../../targets/x86_64_msvc/lib/windows.0.52.0.lib");
}
2 changes: 1 addition & 1 deletion crates/tools/gnu/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "tool_gnu"
version = "0.52.1"
version = "0.52.0"
edition = "2021"
publish = false

Expand Down
2 changes: 1 addition & 1 deletion crates/tools/msvc/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "tool_msvc"
version = "0.52.1"
version = "0.52.0"
edition = "2021"
publish = false

Expand Down

0 comments on commit 8fd448b

Please sign in to comment.