diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index fcd39ad..32bae5e 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -13,6 +13,7 @@ env: RUSTFLAGS: "-Dwarnings" jobs: + build-gnu-apt: runs-on: ubuntu-latest steps: @@ -39,24 +40,6 @@ jobs: - name: build example -- glibc debug run: cd example && make clean && make TARGET=aarch64-unknown-linux-gnu PROFILE=debug - # this _should_ have been -stable, but there is a bug when running in the container ("Invalid cross-device link") - build-musl-beta: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Update repos - run: sudo apt-get update -qq - - name: Install toolchain - run: sudo apt-get install -qy liblzma-dev gcc make pkgconf musl-dev musl-tools rustup - - name: install rust target - run: rustup default beta && rustup target add aarch64-unknown-linux-musl && rustup component add rust-src && rustup update - - - name: build example -- musl release - run: cd example && make clean && make TARGET=aarch64-unknown-linux-musl PROFILE=release MUSL=1 CARGO="rustup run beta cargo" - - name: build example -- musl debug - run: cd example && make clean && make TARGET=aarch64-unknown-linux-musl PROFILE=debug MUSL=1 CARGO="rustup run beta cargo" - build-size-gnu-unstable: runs-on: ubuntu-latest steps: @@ -71,19 +54,3 @@ jobs: - name: build example -- glibc size-optimized run: cd example && make clean && make TARGET=aarch64-unknown-linux-gnu PROFILE=size-optimized CARGO="rustup run nightly cargo" - - - build-size-musl-unstable: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Update repos - run: sudo apt-get update -qq - - name: Install toolchain - run: sudo apt-get install -qy liblzma-dev gcc make pkgconf musl-dev musl-tools rustup - - name: install rust targets - run: rustup toolchain install nightly -t aarch64-unknown-linux-musl -c rust-src --no-self-update - - - name: build example -- musl size-optimized - run: cd example && make clean && make TARGET=aarch64-unknown-linux-musl PROFILE=size-optimized MUSL=1 LTO=1 CARGO="rustup run nightly cargo" diff --git a/example/Makefile b/example/Makefile index 353e298..f7111b1 100644 --- a/example/Makefile +++ b/example/Makefile @@ -31,7 +31,6 @@ endif #endif RUST_TARGET_DIR := $(REPO_ROOT)/target/$(TARGET)/$(CFG_PROFILE) -OUT_DIR := $(realpath $(THIS_DIR)/out/) ifeq ($(CFG_PROFILE), size-optimized) CARGO_PROFILE := size-optimized @@ -92,7 +91,7 @@ all: $(_bins) clean: clean-c clean-rust clean-c: - rm -r $(OUT_DIR) || true + rm -r out || true clean-rust: rm $(SERVICEPOINT_HEADER_OUT)/servicepoint.h || true @@ -123,7 +122,7 @@ sizes: $(_bins) ls -lB out analyze-size: out/$(BIN)_unstripped - nm --print-size --size-sort --reverse-sort --radix=d --demangle $(OUT_DIR)/$(BIN)_unstripped \ + nm --print-size --size-sort --reverse-sort --radix=d --demangle out/$(BIN)_unstripped \ | awk '{size=$$2+0; print size "\t" $$4}' \ | less diff --git a/src/bitvec.rs b/src/bitvec.rs index 3cd5abb..0e7ee5e 100644 --- a/src/bitvec.rs +++ b/src/bitvec.rs @@ -1,5 +1,7 @@ use crate::{heap_drop, heap_move, heap_move_nonnull, heap_remove, ByteSlice}; -use servicepoint::{BinaryOperation, BitVecCommand, CompressionCode, DisplayBitVec, Packet}; +use servicepoint::{ + BinaryOperation, BitVecCommand, CompressionCode, DisplayBitVec, Packet, +}; use std::ptr::NonNull; /// A vector of bits diff --git a/src/lib.rs b/src/lib.rs index 47b21d5..60c42ab 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -32,10 +32,10 @@ pub use crate::byte_slice::*; pub use crate::char_grid::*; pub use crate::cp437_grid::*; pub use crate::packet::*; -pub use servicepoint::CommandCode; -use std::ptr::NonNull; pub use crate::typed_command::*; pub use crate::udp::*; +pub use servicepoint::CommandCode; +use std::ptr::NonNull; mod bitmap; mod bitvec; @@ -69,4 +69,4 @@ pub(crate) unsafe fn heap_remove(x: NonNull) -> T { } /// This is a type only used by cbindgen to have a type for pointers. -pub struct UdpSocket; \ No newline at end of file +pub struct UdpSocket; diff --git a/src/udp.rs b/src/udp.rs index bb04454..f68aa16 100644 --- a/src/udp.rs +++ b/src/udp.rs @@ -16,9 +16,7 @@ use std::ptr::NonNull; /// sp_udp_send_command(connection, sp_command_clear()); /// ``` #[no_mangle] -pub unsafe extern "C" fn sp_udp_open( - host: NonNull, -) -> *mut UdpSocket { +pub unsafe extern "C" fn sp_udp_open(host: NonNull) -> *mut UdpSocket { let host = unsafe { CStr::from_ptr(host.as_ptr()) } .to_str() .expect("Bad encoding"); @@ -109,7 +107,9 @@ pub unsafe extern "C" fn sp_udp_send_header( header, payload: vec![], }; - unsafe { udp_connection.as_ref() }.send(&Vec::from(packet)).is_ok() + unsafe { udp_connection.as_ref() } + .send(&Vec::from(packet)) + .is_ok() } /// Closes and deallocates a [UdpConnection].