Compare commits

..

4 commits

Author SHA1 Message Date
Vinzenz Schroeter 5ee324d8c1 remove musl builds
Some checks failed
Rust / build-size-gnu-unstable (pull_request) Has been cancelled
Rust / build-gnu-apt (pull_request) Has been cancelled
2025-05-04 12:25:07 +02:00
Vinzenz Schroeter c8674dc338 build all variations in CI to keep track of what works 2025-05-04 12:25:07 +02:00
Vinzenz Schroeter 8cfce0a390 a bunch of options for the Makefile 2025-05-04 12:25:07 +02:00
Vinzenz Schroeter 03f9fd1e51 update to released servicepoint version 2025-05-04 12:24:18 +02:00
5 changed files with 13 additions and 45 deletions

View file

@ -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"

View file

@ -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

View file

@ -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

View file

@ -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<T>(x: NonNull<T>) -> T {
}
/// This is a type only used by cbindgen to have a type for pointers.
pub struct UdpSocket;
pub struct UdpSocket;

View file

@ -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<c_char>,
) -> *mut UdpSocket {
pub unsafe extern "C" fn sp_udp_open(host: NonNull<c_char>) -> *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].