Fix no_std build for embedded targets #35
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The Problem
Fixes #34 -
no_stdbuilds failRoot Causes:
fusionmodule compiles inno_stdbut depends on imports only available withstdavx512_vpclmulqdq.rsusesstd::mem::transmuteandprintln!spincrate is an unconditional dep, but requires atomics unavailable on someno_stdtargets (Cortex-M0, etc.)The Solution
fusionmodule onfeature = "std"core::mem::transmuteinstead ofstd::mem::transmuteprint_hex,extract_u64s) with#[cfg(feature = "std")]spina target-conditional dependency (only included on aarch64/x86/x86_64 where it's actually used)Changes
The code already conditionally uses
spinonly on SIMD-capable architectures. This PR makes the dependency conditional to match, allowing builds on targets without atomics.Planned version bump
PATCHno_stdbuildsLinks
no_stdwith no features or alloc enabled only #34Notes
Verified builds:
x86_64-unknown-uefi(original issue target)thumbv6m-none-eabi(no atomics)