Closed nico-abram closed 2 years ago
Actually, maybe it's because I'm in a workspace and the target folder is ..\target
? I was sure it'd be windows haha
Are you using windows? Can you run cargo clean
followed by cargo asm --test subcrates -vvvv
?
You can try running from workspace root and specifying crate with -p crossbeam-utils
.
Yes, I'm on windows, using the x64 msvc target (default)
Running in the workspace root did not help.
Here's the cargo asm -p crossbeam-utils --lib -vvvv > out.log 2>&1
output:
These 2 .s files are present in target /deps:
PS D:\dev\crossbeam> Get-ChildItem .\target\release\deps | rg "\.s"
-a--- 2022-04-20 1:38 AM 1037 crossbeam-ad7d7e9f6bffb819.s
-a--- 2022-04-20 1:41 AM 4009011 subcrates-4f3b76c9b3ef9dd2.s
I cloned the repo and added some dbg! statements to check the glob path:
[src/main.rs:123] format!("{root}{}{}{}-*.s", std :: path :: MAIN_SEPARATOR, correction, &
comp.root_crate_names [0]) = ".\\\\target\\release\\deps\\crossbeam-*.s"
This diff seems to fix the issue for me:
- root = format!(".\\{}", &full[cur.len()..]);
+ root = format!(".{}", &full[cur.len()..]);
EDIT: More complete state of the issue:
[src/main.rs:115] output.canonicalize()?.display().to_string() = "\\\\?\\D:\\dev\\crossbeam\\target\\release\\deps"
[src/main.rs:116] std::env::current_dir()?.canonicalize()?.display().to_string() = "\\\\?\\D:\\dev\\crossbeam"
[src/main.rs:120] cur.len() = 20
[src/main.rs:120] &full[dbg!(cur.len())..] = "\\target\\release\\deps"
[src/main.rs:123] format!("{root}{}{}{}-*.s", std :: path :: MAIN_SEPARATOR, correction, &
comp.root_crate_names [0]) = ".\\target\\release\\deps\\crossbeam-*.s"
That was fast :) My windows-fu is somewhat limited. This was a workaround for glob crate refusing to work with "\?\D:.cargo\bin" style paths. If new code works and paths make sense for you - I can pick the change and publish it.
I tried replacing the question mark with glob's escape ("[?]" from what I understand) but that also did not work.
Sent https://github.com/pacak/cargo-show-asm/pull/2 which just checks if the slash is needed or not
Thank you. Published a new version.
Trying to run on crossbeam's crossbeam-utils crate on windows gave me these errors:
I'm not sure if there's some dependency I'm missing or something, I just installed via
cargo install cargo-show-asm