## Issue Addressed Closes #1661 ## Proposed Changes Add a dummy package called `target_check` which gets compiled early in the build and fails if the target is 32-bit ## Additional Info You can test the efficacy of this check with: ``` cross build --release --manifest-path lighthouse/Cargo.toml --target i686-unknown-linux-gnu ``` In which case this compilation error is shown: ``` error: Lighthouse requires a 64-bit CPU and operating system --> common/target_check/src/lib.rs:8:1 | 8 | / assert_cfg!( 9 | | target_pointer_width = "64", 10 | | "Lighthouse requires a 64-bit CPU and operating system", 11 | | ); | |__^ ```
12 lines
522 B
Rust
12 lines
522 B
Rust
//! This crate checks properties of the target architecture to ensure that it's compatible with
|
|
//! Lighthouse.
|
|
use static_assertions::assert_cfg;
|
|
|
|
// In many places we assume `usize` and `u64` have the same in-memory representation.
|
|
// We also use memory-mapped files extensively which are only really viable with 64-bit addressing.
|
|
// It's unlikely we will want to support 128-bit architectures any time soon.
|
|
assert_cfg!(
|
|
target_pointer_width = "64",
|
|
"Lighthouse requires a 64-bit CPU and operating system",
|
|
);
|