Skip to content

Commit

Permalink
build_scripts: set the page size
Browse files Browse the repository at this point in the history
Otherwise lld seems to assume 0x10000 sized pages and tries to align the
output segments to 0x10000. This often causes elfs with large padding
regions before the first segment we actually want to load on the board.
  • Loading branch information
bradjc committed Aug 22, 2023
1 parent c2fef04 commit 6e1d0ca
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions build_scripts/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,11 @@ pub fn auto_layout() {
// Tell rustc which linker script to use and where to find it.
println!("cargo:rustc-link-arg=-T{}", layout_path.display());
println!("cargo:rustc-link-search={}", out_dir);

// Configure the alignment size for the linker. This prevents the linker
// from assuming very large pages (i.e. 65536 bytes) and unnecessarily
// inserting additional padding into the output ELF.
println!("cargo:rustc-link-arg=-zmax-page-size=4096");
}

// Retrieves an environment variable as a String. Returns None if the variable
Expand Down

0 comments on commit 6e1d0ca

Please sign in to comment.