mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-02 16:21:42 +00:00
Improve compilation error on 32-bit (#2424)
## 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 | | ); | |__^ ```
This commit is contained in:
8
common/target_check/Cargo.toml
Normal file
8
common/target_check/Cargo.toml
Normal file
@@ -0,0 +1,8 @@
|
||||
[package]
|
||||
name = "target_check"
|
||||
version = "0.1.0"
|
||||
authors = ["Michael Sproul <michael@sigmaprime.io>"]
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
static_assertions = "1.1.0"
|
||||
11
common/target_check/src/lib.rs
Normal file
11
common/target_check/src/lib.rs
Normal file
@@ -0,0 +1,11 @@
|
||||
//! 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",
|
||||
);
|
||||
Reference in New Issue
Block a user