Skip to content

Upgrade from 0.2.175 to 0.2.176 breaks s390x build #4718

@saschagrunert

Description

@saschagrunert

When upgrading libc from 0.2.175 to 0.2.176 in containers/conmon-rs#2770, then I got a build error for s390x builds:

error[E0308]: mismatched types
   --> /build/cargo-vendor-dir/nix-0.30.1/src/sys/statfs.rs:306:16
    |
306 |         FsType(self.0.f_type)
    |         ------ ^^^^^^^^^^^^^ expected `u64`, found `u32`
    |         |
    |         arguments to this struct are incorrect
    |
note: tuple struct defined here
   --> /build/cargo-vendor-dir/nix-0.30.1/src/sys/statfs.rs:94:12
    |
94  | pub struct FsType(pub fs_type_t);
    |            ^^^^^^
help: you can convert a `u32` to a `u64`
    |
306 |         FsType(self.0.f_type.into())
    |                             +++++++

error[E0308]: mismatched types
   --> /build/cargo-vendor-dir/nix-0.30.1/src/sys/statfs.rs:345:9
    |
344 |     pub fn optimal_transfer_size(&self) -> libc::c_ulong {
    |                                            ------------- expected `u64` because of return type
345 |         self.0.f_bsize
    |         ^^^^^^^^^^^^^^ expected `u64`, found `u32`
    |
help: you can convert a `u32` to a `u64`
    |
345 |         self.0.f_bsize.into()
    |                       +++++++

error[E0308]: mismatched types
   --> /build/cargo-vendor-dir/nix-0.30.1/src/sys/statfs.rs:401:9
    |
400 |     pub fn block_size(&self) -> libc::c_ulong {
    |                                 ------------- expected `u64` because of return type
401 |         self.0.f_bsize
    |         ^^^^^^^^^^^^^^ expected `u64`, found `u32`
    |
help: you can convert a `u32` to a `u64`
    |
401 |         self.0.f_bsize.into()
    |                       +++++++

error[E0308]: mismatched types
   --> /build/cargo-vendor-dir/nix-0.30.1/src/sys/statfs.rs:485:9
    |
484 |     pub fn maximum_name_length(&self) -> libc::c_ulong {
    |                                          ------------- expected `u64` because of return type
485 |         self.0.f_namelen
    |         ^^^^^^^^^^^^^^^^ expected `u64`, found `u32`
    |
help: you can convert a `u32` to a `u64`
    |
485 |         self.0.f_namelen.into()
    |                         +++++++

Could be related to #4549

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions