Skip to content

FFI does not build on windows #5311

@frederikja163

Description

@frederikja163

Describe the bug

error[E0433]: failed to resolve: could not find `unix` in `os`
  --> vortex-io\src\file\object_store.rs:5:14
   |
5  | use std::os::unix::fs::FileExt;
   |              ^^^^ could not find `unix` in `os`
   |
note: found an item that was configured out
  --> C:\Users\fjapl\.rustup\toolchains\1.89-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\std\src\os\mod.rs:36:9
   |
36 | pub mod unix {}
   |         ^^^^
note: the item is gated here
  --> C:\Users\fjapl\.rustup\toolchains\1.89-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\std\src\os\mod.rs:28:1
   |
28 | / #[cfg(all(
29 | |     doc,
30 | |     any(
31 | |         all(target_arch = "wasm32", not(target_os = "wasi")),
...  |
34 | | ))]
   | |___^
note: found an item that was configured out
  --> C:\Users\fjapl\.rustup\toolchains\1.89-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\std\src\os\mod.rs:85:9
   |
85 | pub mod unix;
   |         ^^^^
note: the item is gated here
  --> C:\Users\fjapl\.rustup\toolchains\1.89-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\std\src\os\mod.rs:84:1
   |
84 | #[cfg(all(not(target_os = "hermit"), any(unix, doc)))]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0433]: failed to resolve: could not find `unix` in `os`
  --> vortex-io\src\file\std_file.rs:5:14
   |
5  | use std::os::unix::fs::FileExt;
   |              ^^^^ could not find `unix` in `os`
   |
note: found an item that was configured out
  --> C:\Users\fjapl\.rustup\toolchains\1.89-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\std\src\os\mod.rs:36:9
   |
36 | pub mod unix {}
   |         ^^^^
note: the item is gated here
  --> C:\Users\fjapl\.rustup\toolchains\1.89-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\std\src\os\mod.rs:28:1
   |
28 | / #[cfg(all(
29 | |     doc,
30 | |     any(
31 | |         all(target_arch = "wasm32", not(target_os = "wasi")),
...  |
34 | | ))]
   | |___^
note: found an item that was configured out
  --> C:\Users\fjapl\.rustup\toolchains\1.89-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\std\src\os\mod.rs:85:9
   |
85 | pub mod unix;
   |         ^^^^
note: the item is gated here
  --> C:\Users\fjapl\.rustup\toolchains\1.89-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\std\src\os\mod.rs:84:1
   |
84 | #[cfg(all(not(target_os = "hermit"), any(unix, doc)))]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0599]: no method named `read_exact_at` found for struct `std::fs::File` in the current scope
    --> vortex-io\src\file\object_store.rs:134:42
     |
134  | ...                   file.read_exact_at(&mut buffer, range.start)?;
     |                            ^^^^^^^^^^^^^
     |
help: there is a method `read_exact` with a similar name, but with different arguments
    --> C:\Users\fjapl\.rustup\toolchains\1.89-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\std\src\io\mod.rs:1044:5
     |
1044 |     fn read_exact(&mut self, buf: &mut [u8]) -> Result<()> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0599]: no method named `read_exact_at` found for struct `Arc<std::fs::File>` in the current scope
    --> vortex-io\src\file\std_file.rs:85:48
     |
85   |                         req.resolve(match file.read_exact_at(&mut buffer, offset) {
     |                                                ^^^^^^^^^^^^^
     |
help: there is a method `read_exact` with a similar name, but with different arguments
    --> C:\Users\fjapl\.rustup\toolchains\1.89-x86_64-pc-windows-msvc\lib/rustlib/src/rust\library\std\src\io\mod.rs:1044:5
     |
1044 |     fn read_exact(&mut self, buf: &mut [u8]) -> Result<()> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Some errors have detailed explanations: E0433, E0599.
For more information about an error, try `rustc --explain E0433`.
error: could not compile `vortex-io` (lib) due to 4 previous errors
warning: build failed, waiting for other jobs to finish...

I think some system calls require linux

To Reproduce

Running command cargo build --release -p vortex-ffi

Expected behavior

Builds and gives me a .dll file i can use

Additional context

On windows 10.

This works on linux Arch and i get a .so file. But i cant get it to work on windows.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions