Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to compile bootloader v0.11.8 #477

Closed
kevstewa opened this issue Nov 24, 2024 · 2 comments
Closed

Unable to compile bootloader v0.11.8 #477

kevstewa opened this issue Nov 24, 2024 · 2 comments

Comments

@kevstewa
Copy link

I am attempting to follow the edition-3 instructions. I am currently on the Using the DiskImageBuilder step. Once I add the bootloader dependency I get the compiler error shown below.

I've attempted to pin the bootloader and bootloader_api crate versions to those specified in the docs, with errors resolved in later versions (proc_macro). My version of Rust is 1.85.0-nightly.

   Compiling bootloader v0.11.8
error: failed to run custom build command for `bootloader v0.11.8`

Caused by:
  process didn't exit successfully: `/home/kstewart/Nextcloud/Projects/Rust/os2/target/debug/build/bootloader-0fce06f805b868ea/build-script-build` (exit status: 101)
  --- stderr
      Blocking waiting for file lock on package cache
      Blocking waiting for file lock on package cache
      Updating crates.io index
       Ignored package `bootloader-x86_64-bios-boot-sector v0.11.8` is already installed, use --force to override
  warning: be sure to add `/home/kstewart/Nextcloud/Projects/Rust/os2/target/debug/build/bootloader-f7327baa02045b49/out/bin` to your PATH to be able to run the installed binaries
       Ignored package `bootloader-x86_64-bios-stage-2 v0.11.8` is already installed, use --force to override
  warning: be sure to add `/home/kstewart/Nextcloud/Projects/Rust/os2/target/debug/build/bootloader-f7327baa02045b49/out/bin` to your PATH to be able to run the installed binaries
       Ignored package `bootloader-x86_64-bios-stage-3 v0.11.8` is already installed, use --force to override
  warning: be sure to add `/home/kstewart/Nextcloud/Projects/Rust/os2/target/debug/build/bootloader-f7327baa02045b49/out/bin` to your PATH to be able to run the installed binaries
      Blocking waiting for file lock on package cache
      Updating crates.io index
    Installing bootloader-x86_64-uefi v0.11.8
      Blocking waiting for file lock on package cache
      Updating crates.io index
    Installing bootloader-x86_64-bios-stage-4 v0.11.8
      Blocking waiting for file lock on package cache
      Blocking waiting for file lock on package cache
      Updating crates.io index
      Blocking waiting for file lock on package cache
  warning: package `atomic-polyfill v0.1.11` in Cargo.lock is yanked in registry `crates-io`, consider running without --locked
  warning: package `critical-section v1.1.1` in Cargo.lock is yanked in registry `crates-io`, consider running without --locked
      Blocking waiting for file lock on package cache
  warning: package `atomic-polyfill v0.1.11` in Cargo.lock is yanked in registry `crates-io`, consider running without --locked
  warning: package `critical-section v1.1.1` in Cargo.lock is yanked in registry `crates-io`, consider running without --locked
      Updating crates.io index
      Blocking waiting for file lock on package cache
      Blocking waiting for file lock on package cache
      Updating crates.io index
      Blocking waiting for file lock on package cache
      Blocking waiting for file lock on package cache
      Blocking waiting for file lock on package cache
     Compiling compiler_builtins v0.1.138
     Compiling core v0.0.0 (/home/kstewart/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core)
     Compiling proc-macro2 v1.0.63
     Compiling quote v1.0.29
     Compiling unicode-ident v1.0.10
     Compiling autocfg v1.1.0
     Compiling semver v1.0.17
     Compiling syn v1.0.109
     Compiling compiler_builtins v0.1.138
     Compiling serde v1.0.166
     Compiling rustversion v1.0.13
     Compiling bootloader_api v0.11.8
     Compiling core v0.0.0 (/home/kstewart/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core)
     Compiling rustc_version v0.4.0
     Compiling lock_api v0.4.10
     Compiling proc-macro2 v1.0.63
     Compiling unicode-ident v1.0.10
     Compiling autocfg v1.1.0
     Compiling quote v1.0.29
     Compiling syn v2.0.23
     Compiling semver v1.0.17
     Compiling heapless v0.7.16
     Compiling serde v1.0.166
     Compiling lock_api v0.4.10
     Compiling rustversion v1.0.13
     Compiling bootloader_api v0.11.8
     Compiling rustc_version v0.4.0
     Compiling syn v2.0.23
     Compiling bootloader-x86_64-bios-stage-4 v0.11.8
     Compiling heapless v0.7.16
     Compiling serde_derive v1.0.166
     Compiling serde_derive v1.0.166
     Compiling ptr_meta_derive v0.2.0
     Compiling uefi-macros v0.11.0
     Compiling rustc-std-workspace-core v1.99.0 (/home/kstewart/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/rustc-std-workspace-core)
     Compiling rustc-std-workspace-core v1.99.0 (/home/kstewart/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/rustc-std-workspace-core)
     Compiling scopeguard v1.1.0
     Compiling bit_field v0.10.2
     Compiling bitflags v1.3.2
     Compiling volatile v0.4.6
     Compiling rand_core v0.6.4
     Compiling byteorder v1.4.3
     Compiling spin v0.9.8
     Compiling x86_64 v0.14.10
     Compiling zero v0.1.3
     Compiling hash32 v0.2.1
     Compiling stable_deref_trait v1.2.0
     Compiling conquer-util v0.3.0
     Compiling log v0.4.19
     Compiling conquer-once v0.3.2
  error[E0053]: method `steps_between` has an incompatible type for trait
     --> /home/kstewart/.cargo/registry/src/index.crates.io-6f17d22bba15001f/x86_64-0.14.10/src/addr.rs:348:51
      |
  348 |     fn steps_between(start: &Self, end: &Self) -> Option<usize> {
      |                                                   ^^^^^^^^^^^^^ expected `(usize, Option<usize>)`, found `Option<usize>`
      |
      = note: expected signature `fn(&addr::VirtAddr, &addr::VirtAddr) -> (usize, Option<usize>)`
                 found signature `fn(&addr::VirtAddr, &addr::VirtAddr) -> Option<usize>`
  help: change the output type to match the trait
      |
  348 |     fn steps_between(start: &Self, end: &Self) -> (usize, Option<usize>) {
      |                                                   ~~~~~~~~~~~~~~~~~~~~~~

  error[E0053]: method `steps_between` has an incompatible type for trait
     --> /home/kstewart/.cargo/registry/src/index.crates.io-6f17d22bba15001f/x86_64-0.14.10/src/structures/paging/page.rs:272:51
      |
  272 |     fn steps_between(start: &Self, end: &Self) -> Option<usize> {
      |                                                   ^^^^^^^^^^^^^ expected `(usize, Option<usize>)`, found `Option<usize>`
      |
      = note: expected signature `fn(&Page<_>, &Page<_>) -> (usize, Option<usize>)`
                 found signature `fn(&Page<_>, &Page<_>) -> Option<usize>`
  help: change the output type to match the trait
      |
  272 |     fn steps_between(start: &Self, end: &Self) -> (usize, Option<usize>) {
      |                                                   ~~~~~~~~~~~~~~~~~~~~~~

     Compiling xmas-elf v0.8.0
     Compiling rand v0.8.5
  error[E0599]: `(usize, Option<usize>)` is not an iterator
     --> /home/kstewart/.cargo/registry/src/index.crates.io-6f17d22bba15001f/x86_64-0.14.10/src/structures/paging/page.rs:274:14
      |
  273 | /         Step::steps_between(&start.start_address, &end.start_address)
  274 | |             .map(|steps| steps / S::SIZE as usize)
      | |             -^^^ `(usize, Option<usize>)` is not an iterator
      | |_____________|
      |
      |
      = note: the following trait bounds were not satisfied:
              `(usize, Option<usize>): Iterator`
              which is required by `&mut (usize, Option<usize>): Iterator`

  Some errors have detailed explanations: E0053, E0599.
  For more information about an error, try `rustc --explain E0053`.
  error: could not compile `x86_64` (lib) due to 3 previous errors
  warning: build failed, waiting for other jobs to finish...
     Compiling scopeguard v1.1.0
     Compiling bitflags v1.3.2
     Compiling rand_core v0.6.4
     Compiling bit_field v0.10.2
     Compiling volatile v0.4.6
     Compiling byteorder v1.4.3
     Compiling spin v0.9.8
     Compiling x86_64 v0.14.10
     Compiling stable_deref_trait v1.2.0
     Compiling hash32 v0.2.1
     Compiling log v0.4.19
     Compiling conquer-util v0.3.0
  error[E0053]: method `steps_between` has an incompatible type for trait
     --> /home/kstewart/.cargo/registry/src/index.crates.io-6f17d22bba15001f/x86_64-0.14.10/src/addr.rs:348:51
      |
  348 |     fn steps_between(start: &Self, end: &Self) -> Option<usize> {
      |                                                   ^^^^^^^^^^^^^ expected `(usize, Option<usize>)`, found `Option<usize>`
      |
      = note: expected signature `fn(&addr::VirtAddr, &addr::VirtAddr) -> (usize, Option<usize>)`
                 found signature `fn(&addr::VirtAddr, &addr::VirtAddr) -> Option<usize>`
  help: change the output type to match the trait
      |
  348 |     fn steps_between(start: &Self, end: &Self) -> (usize, Option<usize>) {
      |                                                   ~~~~~~~~~~~~~~~~~~~~~~

     Compiling zero v0.1.3
  error[E0053]: method `steps_between` has an incompatible type for trait
     --> /home/kstewart/.cargo/registry/src/index.crates.io-6f17d22bba15001f/x86_64-0.14.10/src/structures/paging/page.rs:272:51
      |
  272 |     fn steps_between(start: &Self, end: &Self) -> Option<usize> {
      |                                                   ^^^^^^^^^^^^^ expected `(usize, Option<usize>)`, found `Option<usize>`
      |
      = note: expected signature `fn(&Page<_>, &Page<_>) -> (usize, Option<usize>)`
                 found signature `fn(&Page<_>, &Page<_>) -> Option<usize>`
  help: change the output type to match the trait
      |
  272 |     fn steps_between(start: &Self, end: &Self) -> (usize, Option<usize>) {
      |                                                   ~~~~~~~~~~~~~~~~~~~~~~

     Compiling xmas-elf v0.8.0
     Compiling conquer-once v0.3.2
     Compiling rand v0.8.5
  error: failed to compile `bootloader-x86_64-uefi v0.11.8`, intermediate artifacts can be found at `/tmp/cargo-installzpbiaY`.
  To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path.
  error[E0599]: `(usize, Option<usize>)` is not an iterator
     --> /home/kstewart/.cargo/registry/src/index.crates.io-6f17d22bba15001f/x86_64-0.14.10/src/structures/paging/page.rs:274:14
      |
  273 | /         Step::steps_between(&start.start_address, &end.start_address)
  274 | |             .map(|steps| steps / S::SIZE as usize)
      | |             -^^^ `(usize, Option<usize>)` is not an iterator
      | |_____________|
      |
      |
      = note: the following trait bounds were not satisfied:
              `(usize, Option<usize>): Iterator`
              which is required by `&mut (usize, Option<usize>): Iterator`

  thread 'main' panicked at /home/kstewart/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bootloader-0.11.8/build.rs:95:9:
  failed to build uefi bootloader
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
     Compiling rand_hc v0.3.2
     Compiling raw-cpuid v10.7.0
  Some errors have detailed explanations: E0053, E0599.
  For more information about an error, try `rustc --explain E0053`.
     Compiling spinning_top v0.2.5
  error: could not compile `x86_64` (lib) due to 3 previous errors
  warning: build failed, waiting for other jobs to finish...
  error: failed to compile `bootloader-x86_64-bios-stage-4 v0.11.8`, intermediate artifacts can be found at `/tmp/cargo-installEC0LSG`.
  To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path.
@bjorn3
Copy link
Contributor

bjorn3 commented Nov 24, 2024

This is caused by rust-osdev/x86_64#512, which will be fixed by rust-osdev/x86_64#513.

@kevstewa
Copy link
Author

Thanks, @bjorn3 -- closing this ticket.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants