Skip to content

Commit b09c333

Browse files
committed
Build stdlib ourselves
1 parent 858d638 commit b09c333

File tree

240 files changed

+424
-111607
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

240 files changed

+424
-111607
lines changed

src/CMakeLists.txt

+6-4
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ if(CMAKE_BUILD_TYPE STREQUAL "DEBUG")
205205
set(RUST_PROFILE "debug")
206206
else()
207207
set(RUST_PROFILE "release")
208-
set(RUST_CARGO_FLAG "--release")
208+
set(RUST_CARGO_FLAGS "--release")
209209
# For binary reproducibility, strip path prefixes that can be different depending on environment (e.g. /home/<user>, etc.).
210210
set(RUSTFLAGS "--remap-path-prefix=${CMAKE_CURRENT_SOURCE_DIR}/rust=src --remap-path-prefix=$ENV{HOME}=")
211211
endif()
@@ -231,6 +231,7 @@ if(CMAKE_CROSSCOMPILING)
231231
set(RUST_TARGET_ARCH thumbv7em-none-eabi)
232232
set(RUST_TARGET_ARCH_DIR ${RUST_TARGET_ARCH})
233233
set(RUST_TARGET_ARCH_ARG --target ${RUST_TARGET_ARCH})
234+
set(RUST_CARGO_FLAGS ${RUST_CARGO_FLAGS} -Zbuild-std=core,alloc -Zbuild-std-features=panic_immediate_abort,optimize_for_size)
234235
else()
235236
set(RUST_TARGET_ARCH_DIR .)
236237
endif()
@@ -436,7 +437,7 @@ if(NOT CMAKE_CROSSCOMPILING)
436437
CMAKE_CURRENT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}
437438
FIRMWARE_VERSION_SHORT=${FIRMWARE_VERSION}
438439
# only one test thread because of unsafe concurrent access to `SafeData`, `mock_sd()` and `mock_memory()`. Using mutexes instead leads to mutex poisoning and very messy output in case of a unit test failure.
439-
${CARGO} test $<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:-v> --all-features --target-dir ${RUST_BINARY_DIR}/all-features ${RUST_CARGO_FLAG} -- --nocapture --test-threads 1
440+
${CARGO} test $<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:-v> --all-features --target-dir ${RUST_BINARY_DIR}/all-features ${RUST_CARGO_FLAGS} -- --nocapture --test-threads 1
440441
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/rust/
441442
)
442443
add_dependencies(rust-test bitbox_merged generate-protobufs)
@@ -518,7 +519,8 @@ foreach(type ${RUST_LIBS})
518519
RUSTFLAGS=${RUSTFLAGS}
519520
FIRMWARE_VERSION_SHORT=${FIRMWARE_VERSION}
520521
$<$<BOOL:${SCCACHE_PROGRAM}>:RUSTC_WRAPPER=${SCCACHE_PROGRAM}>
521-
${CARGO} build $<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:-vv> --offline --features target-${type} --target-dir ${RUST_BINARY_DIR}/feature-${type} ${RUST_CARGO_FLAG} ${RUST_TARGET_ARCH_ARG}
522+
RUSTC_BOOTSTRAP=1
523+
${CARGO} build $<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:-vv> --offline --features target-${type} --target-dir ${RUST_BINARY_DIR}/feature-${type} ${RUST_CARGO_FLAGS} ${RUST_TARGET_ARCH_ARG}
522524
COMMAND
523525
${CMAKE_COMMAND} -E copy_if_different ${lib} ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/lib${type}_rust_c.a
524526
# DEPFILES are only supported with the Ninja build tool
@@ -544,7 +546,7 @@ if(CMAKE_CROSSCOMPILING)
544546
CMAKE_CURRENT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}
545547
SYSROOT=${CMAKE_SYSROOT}
546548
INCLUDES="${RUST_INCLUDES}"
547-
${CARGO} doc --document-private-items --target-dir ${CMAKE_BINARY_DIR}/docs-rust ${RUST_CARGO_FLAG} --target thumbv7em-none-eabi
549+
${CARGO} doc --document-private-items --target-dir ${CMAKE_BINARY_DIR}/docs-rust --target thumbv7em-none-eabi
548550
COMMAND
549551
${CMAKE_COMMAND} -E echo "See docs at file://${CMAKE_BINARY_DIR}/docs-rust/thumbv7em-none-eabi/doc/bitbox02_rust/index.html"
550552
WORKING_DIRECTORY ${LIBBITBOX02_RUST_SOURCE_DIR}

src/rust/Cargo.lock

+4-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/rust/vendor/libc-0.2.146/.cargo-checksum.json

-1
This file was deleted.

src/rust/vendor/libc-0.2.146/CONTRIBUTING.md

-93
This file was deleted.

src/rust/vendor/libc-0.2.146/Cargo.toml

-64
This file was deleted.

0 commit comments

Comments
 (0)