Skip to content

fix(deps): update rust crate bootloader to 0.11 #64

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Nov 14, 2024

This PR contains the following updates:

Package Type Update Change
bootloader dependencies minor 0.9 -> 0.11

Release Notes

rust-osdev/bootloader (bootloader)

v0.11.11

Compare Source

This release is compatible with Rust nightlies starting with nightly-2025-07-24.

Full Changelog: rust-osdev/bootloader@v0.11.10...v0.11.11

v0.11.10

Compare Source

This release is compatible with Rust nightlies starting with nightly-2025-07-24.

Full Changelog: rust-osdev/bootloader@v0.11.10...v0.11.11

v0.11.9

Compare Source

Full Changelog: rust-osdev/bootloader@v0.11.9...v0.11.10

v0.11.8

Compare Source

This release is compatible with Rust nightlies starting with nightly-2024-11-23.

Full Changelog: rust-osdev/bootloader@v0.11.8...v0.11.9

v0.11.7

Compare Source

Full Changelog: rust-osdev/bootloader@v0.11.7...v0.11.8

v0.11.6

Compare Source

Full Changelog: rust-osdev/bootloader@v0.11.6...v0.11.7

v0.11.5

Compare Source

Full Changelog: rust-osdev/bootloader@v0.11.5...v0.11.6

v0.11.4

Compare Source

Full Changelog: rust-osdev/bootloader@v0.11.4...v0.11.5

v0.11.3

Compare Source

v0.11.2

Compare Source

  • Fix internal error in Cargo.toml setup that prevented publishing 0.11.1

v0.11.0

Compare Source

Major rewrite of the bootloader crate with various breaking changes:

  • Separate API crate: The bootloader is now split into two parts: An API crate to make kernels loadable by the bootloader and the actual bootloader implementation. This makes the build process for kernels much easier and faster.
  • New config system: Instead of configuring the bootloader via a special table in the Cargo.toml, the configuration now happens through a normal Rust struct, which is part of the entry_point! macro. The macro then serializes the config struct at compile time and places it in a special ELF output section. The compile time serialization happens through a manually implemented const fn of the config struct.
  • Load the kernel at runtime: The bootloader is now able to load files from FAT partitions at runtime. Thus, we don't need to link the kernel into the bootloader executable anymore. As a result, we don't need to recompile the bootloader on kernel changes anymore. We also load the config at runtime from the kernel's ELF section, which eliminates the second reason for recompiling the bootloader as well.
  • Split into sub-crates: Since the bootloader build process does not need access to the kernel executable or its Cargo.toml anymore, we can build the different parts of the bootloader independently. For example, the BIOS boot sector is now a separate crate, and the UEFI bootloader is too.
  • Library to create disk images: To create an abstraction the complex build steps of the different bootloader executables, we compile them inside cargo build scripts. At the top level, we provide a bootloader library crate, which compiles everything as part of its build script. This library includes functions for creating BIOS and UEFI disk images for a given kernel. These functions can be used e.g. from a builder crate or a build script of the downstream operating system.

See our migration guides for details.

v0.10.13

Compare Source

  • Add dynamic range configuration (#​229)
  • Fix boot for machines that report memory regions at high physical addresses (see #​259)
    • Limit BIOS bootloader's max_phys_addr to 4 GiB (#​260)
    • fix get_free_address for large sizes (0.10) (#​263)
    • Only perform a single TLB flush after identity mapping (#​265)
  • Correct typos in src/binary/level_4_entries.rs (#​228)

v0.10.12

Compare Source

  • Add support for position independent executables (#​206)
  • Add optional ASLR (#​221)
  • Logger: nicer font rendering into framebuffer (#​213)
  • Fix warnings on latest nightly (maybe_uninit_extra is no longer feature-gated) (#​222)
  • Rework UsedLevel4Entries (#​219)
  • Add small doc-comment to entry_point! macro (#​220)

v0.10.11

Compare Source

  • Remove feature flag for lang_items, asm and global_asm (#​210)
  • Use set_reg method of CS, DS, ES and SS segment structs (#​211)

v0.10.10

Compare Source

  • Fix asm imports on latest nightly (#​209)

v0.10.9

Compare Source

  • Add support for framebuffer configuration (#​179)

v0.10.8

Compare Source

  • Pad UEFI FAT file length (#​180)
  • Also check cfg gated target field for bootloader dependency (#​182

v0.10.7

Compare Source

  • Fix relocation-model field name in the target spec json (#​186)
    • This effectively changes the relocation-model from pic to static. Please report if you encounter any issues because of this.
    • This fixes the compilation warnings on the latest nightlies.

v0.10.6

Compare Source

  • Identity-map GDT into kernel address space to fix iretq (#​175)
  • Uefi: Look for an ACPI2 RSDP first (#​174)
  • Don't check target architecture for builder crate to support cross-compiling (#​176)

v0.10.5

Compare Source

  • Fix build on latest Rust nightlies by updating uefi-rs dependency (#​170)
    • Also: Fix warnings about .intel_syntax attribute in assembly code

v0.10.4

Compare Source

  • Fix build on latest Rust nightly by updating to uefi v0.9.0 (#​162)
  • Fix higher half kernels by identity mapping context switch fn earlier (#​161)
    • Also: improve reporting of mapping errors

v0.10.3

Compare Source

  • Change register used in setting SS in stage_4 (#​156)

v0.10.2

Compare Source

  • Use new asm! syntax instead of deprecated llvm_asm! (#​154)
  • Reduce the number of used unstable features of x86_64 crate (#​155)

v0.10.1

  • Add dynamic range configuration (#​229)
  • Fix boot for machines that report memory regions at high physical addresses (see #​259)
    • Limit BIOS bootloader's max_phys_addr to 4 GiB (#​260)
    • fix get_free_address for large sizes (0.10) (#​263)
    • Only perform a single TLB flush after identity mapping (#​265)
  • Correct typos in src/binary/level_4_entries.rs (#​228)

v0.10.0

  • Rewrite for UEFI support (#​130)
    • Includes a new build process that no longer uses the bootimage crate. See the Readme for details.

v0.9.30

Compare Source


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Copy link
Contributor Author

renovate bot commented Nov 14, 2024

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path Cargo.toml --workspace
    Updating crates.io index
error: failed to select a version for `bootloader`.
    ... required by package `orust_os v0.1.0 (/tmp/renovate/repos/github/orust-org/orust-OS)`
versions that meet the requirements `^0.11` are: 0.11.11, 0.11.10, 0.11.9, 0.11.8, 0.11.7, 0.11.6, 0.11.5, 0.11.4, 0.11.3, 0.11.2, 0.11.0

package `orust_os` depends on `bootloader` with feature `map_physical_memory` but `bootloader` does not have that feature.


failed to select a version for `bootloader` which could resolve this conflict

@renovate renovate bot force-pushed the renovate/bootloader-0.x branch from c9b2cf1 to 7e37dd6 Compare August 1, 2025 14:03
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

Successfully merging this pull request may close these issues.

0 participants