Comments (10)
Get back from my holiday and start working on this now!
from cargo.
Thanks for the report!
<homedir>\projects\other\cxx\target\debug\build\cxx-test-suite-2dda1da2c847afa7\out\cxxbridge\crate\tests\ffi
is a symlink pointing to a directory. According to Win32 API doc, symlinks created by CreateSymbolicLinkA
should be removed by RemoveDirectory
not DeleteFile
.
The fix seems to be straightforward: here whenever we delete a file, on Windows we additionally check if it is a symlink to a directory. If yes then call remove_dir
instead on the symlink.
from cargo.
When submitting a pull request, the first commit should be a test demonstrating the current “bad behavior”, followed by other commits fixing the bug and tests, so that we know we're fixing an issue that really exists.
from cargo.
@rustbot claim
I will take a look.
from cargo.
@moizzd #13910 Could you please help test this patch? I had some issues when I tried to test on my virtual machine.
- You need to clone my repo or clone the Cargo repo and apply my patch.
- Build Cargo with my patch.
- Try `some-path/cargo/target/debug/cargo clean
from cargo.
from cargo.
@moizzd Have you tested it? Did it work?
from cargo.
@hi-rustin No, I haven't had a chance unfortunately. Work related urgency intervened. I will do it today.
from cargo.
I built the cargo repo with your patch. I then ran the build on the cxx demo directory and then ran clean:
Z:\Projects\other\demo>..\cargo\target\debug\cargo build
Compiling windows_x86_64_msvc v0.52.5
Compiling proc-macro2 v1.0.83
Compiling cc v1.0.98
Compiling unicode-ident v1.0.12
Compiling scratch v1.0.7
Compiling windows-targets v0.52.5
Compiling windows-sys v0.52.0
Compiling cxxbridge-flags v1.0.122
Compiling quote v1.0.36
Compiling winapi-util v0.1.8
Compiling syn v2.0.65
Compiling termcolor v1.4.1
Compiling unicode-width v0.1.12
Compiling link-cplusplus v1.0.9
Compiling codespan-reporting v0.11.1
Compiling cxx v1.0.122
Compiling once_cell v1.19.0
Compiling cxx-build v1.0.122
Compiling cxxbridge-macro v1.0.122
Compiling demo v0.0.0 (Z:\Projects\other\demo)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 19.34s
Z:\Projects\other\demo>..\cargo\target\debug\cargo clean
Removed 319 files, 106.3MiB total
Z:\Projects\other\demo>dir
Volume in drive Z is Shared Folders
Volume Serial Number is 0000-0064
Directory of Z:\Projects\other\demo
05/22/2024 09:35 PM <DIR> .
05/22/2024 09:35 PM <DIR> ..
03/26/2024 09:10 PM 686 BUCK
03/26/2024 06:36 PM 726 BUILD
03/26/2024 09:10 PM 323 build.rs
05/22/2024 09:33 PM 6,119 Cargo.lock
03/26/2024 06:36 PM 345 Cargo.toml
05/22/2024 09:08 PM <DIR> include
05/22/2024 09:08 PM <DIR> src
5 File(s) 8,199 bytes
4 Dir(s) 339,151,474,688 bytes free
``
So, it seems to have worked.
from cargo.
with the unpatched ( installed cargo):
Z:\projects\other\demo>cargo clean
error: failed to remove file C:\Users\<user>\projects\other\demo\target\debug\build\demo-5950ef69aeb759a3\out\cxxbridge\crate\demo
Caused by:
Access is denied. (os error 5)
from cargo.
Related Issues (20)
- `cargo build --release` SIGKILL:ed on OSX HOT 4
- `cargo fmt --all` from excluded sub-directory still checks parent workspace HOT 5
- Improve the diagnostics in virual workspaces HOT 3
- 0.79.1 release with updated `gix` dependency HOT 2
- Incorrect formatting for git fetch HOT 2
- Deduplicate fingerprint logic and `check-cfg` lint config
- Exports symbols of cdylib dependencies HOT 2
- No way to specify linker arguments via rustflags for dependency build scripts with `--target` HOT 4
- called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" } HOT 3
- cargo new: Confusing error message about adding to a workspace HOT 4
- cargo publish should refuse an out-of-date lockfile HOT 4
- Non determinist vendoring of git dependencies HOT 10
- `cargo update --config net.git-fetch-with-cli=true` fetches using git2 HOT 1
- "Cargo install" should provide download binaries only from crate.io if availibale rather than build these binaries every time when calling cargo install HOT 3
- cargo install [--git?] ignores .cargo/config.toml, making packages publishable-but-unbuildable, allthewhile they work when built normally HOT 8
- add: Use single quotes for target headers
- Combining `[patch]` and `-Zbuild-std` logs that patches are unused even when they are
- cargo publish refuses path= dependencies, even though it probably oughtn't HOT 3
- Cargo Tree: New format string parameter HOT 3
- 2024 implicit feature migration deletes dependency features HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cargo.