Conversation
|
r? @JohnTitor rustbot has assigned @JohnTitor. Use |
|
I am re-submitting here, since my comments on #3758 don't seem to be getting answers. |
|
This hasn't been discussed yet, but I am inclined to just merge this to unstick things. Do you have a link to the relevant C headers? |
tgross35
left a comment
There was a problem hiding this comment.
Thanks, let's get this in.
Currently struct stat and struct stat64 are not coherent: struct stat is using st_dev, and struct stat64 is using st_fsid. st_dev is the more commonly-known name, already used by e.g. ~45 rust software in Debian, so better fix st_fsid into st_dev, rather than having to uselessly spend time hand-patching all these software.
Currently struct stat and struct stat64 are not coherent: struct stat is using st_dev, and struct stat64 is using st_fsid. st_dev is the more commonly-known name, already used by e.g. ~45 rust software in Debian, so better fix st_fsid into st_dev, rather than having to uselessly spend time hand-patching all these software. (backport <rust-lang#3785>) (cherry picked from commit 043043f)
|
Looks like this PR breaks the std, see Nix CI log: |
|
Can you just disable that test in nix for now? Some breakage was expected here (it's tier3 and this PR is authored by the Hurd target maintainer), |
I will send a patch to the std |
fix: hurd build, stat64.st_fsid was renamed to st_dev On hurd, `stat64.st_fsid` was renamed to `st_dev` in rust-lang/libc#3785, so if you have a new libc with this patch included, and you build std from source, you get this error: ```sh error[E0609]: no field `st_fsid` on type `&stat64` --> /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/os/hurd/fs.rs:301:36 | 301 | self.as_inner().as_inner().st_fsid as u64 | ^^^^^^^ unknown field | help: a field with a similar name exists | 301 | self.as_inner().as_inner().st_uid as u64 | ~~~~~~ ``` Full CI log: https://github.com/nix-rust/nix/actions/runs/12033180710/job/33546728266?pr=2544
Rollup merge of rust-lang#133515 - SteveLauC:fix/hurd, r=ChrisDenton fix: hurd build, stat64.st_fsid was renamed to st_dev On hurd, `stat64.st_fsid` was renamed to `st_dev` in rust-lang/libc#3785, so if you have a new libc with this patch included, and you build std from source, you get this error: ```sh error[E0609]: no field `st_fsid` on type `&stat64` --> /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/os/hurd/fs.rs:301:36 | 301 | self.as_inner().as_inner().st_fsid as u64 | ^^^^^^^ unknown field | help: a field with a similar name exists | 301 | self.as_inner().as_inner().st_uid as u64 | ~~~~~~ ``` Full CI log: https://github.com/nix-rust/nix/actions/runs/12033180710/job/33546728266?pr=2544
fix: hurd build, stat64.st_fsid was renamed to st_dev On hurd, `stat64.st_fsid` was renamed to `st_dev` in rust-lang/libc#3785, so if you have a new libc with this patch included, and you build std from source, you get this error: ```sh error[E0609]: no field `st_fsid` on type `&stat64` --> /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/os/hurd/fs.rs:301:36 | 301 | self.as_inner().as_inner().st_fsid as u64 | ^^^^^^^ unknown field | help: a field with a similar name exists | 301 | self.as_inner().as_inner().st_uid as u64 | ~~~~~~ ``` Full CI log: https://github.com/nix-rust/nix/actions/runs/12033180710/job/33546728266?pr=2544
Currently struct stat and struct stat64 are not coherent: struct stat is using st_dev, and struct stat64 is using st_fsid.
st_dev is the more commonly-known name, already used by e.g. ~45 rust software in Debian, so better fix st_fsid into st_dev, rather than having to uselessly spend time hand-patching all these software.