Compare commits

...

2 commits

Author SHA1 Message Date
Vinzenz Schroeter e659b84025 remove musl builds
All checks were successful
Rust / build-gnu-apt (pull_request) Successful in 4m15s
Rust / build-size-gnu-unstable (pull_request) Successful in 1m11s
2025-05-04 12:27:49 +02:00
Vinzenz Schroeter 091b79887c build variations in CI to keep track of what works 2025-05-04 12:27:40 +02:00
2 changed files with 30 additions and 19 deletions

View file

@ -13,32 +13,44 @@ env:
RUSTFLAGS: "-Dwarnings"
jobs:
build:
build-gnu-apt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Update repos
run: sudo apt-get update -qq
- name: Install rust toolchain
run: sudo apt-get install -qy cargo rust-clippy
- name: install lzma
run: sudo apt-get install -qy liblzma-dev
- name: install gcc
run: sudo apt-get install -qy gcc make
- name: Install toolchain
run: sudo apt-get install -qy cargo rust-clippy liblzma-dev gcc make pkgconf
- name: Run Clippy
run: cargo clippy
- name: build
run: cargo build
- name: generate bindings
run: ./generate-binding.sh
- name: check that generated files did not change
run: output=$(git status --porcelain) && [ -z "$output" ]
- name: build
run: cargo build
- name: build example
run: cd example && make
- name: build example -- glibc release
run: cd example && make clean && make TARGET=aarch64-unknown-linux-gnu PROFILE=release
- name: build example -- glibc debug
run: cd example && make clean && make TARGET=aarch64-unknown-linux-gnu PROFILE=debug
build-size-gnu-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 rustup
- name: install rust targets
run: rustup toolchain install nightly -t aarch64-unknown-linux-gnu -c rust-src --no-self-update
- 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" LTO=1

View file

@ -1,7 +1,7 @@
CARGO ?= cargo
STRIP ?= strip
FEATURES :=
FEATURES := ""
THIS_DIR := $(dir $(realpath $(lastword $(MAKEFILE_LIST))))
REPO_ROOT := $(realpath $(THIS_DIR)/..)
@ -10,7 +10,7 @@ export SERVICEPOINT_HEADER_OUT := $(REPO_ROOT)/include
override CFG_MUSL := $(if $(CFG_MUSL),$(CFG_MUSL),$(if $(MUSL),$(MUSL),0))
override CFG_PROFILE := $(if $(CFG_PROFILE),$(CFG_PROFILE),$(if $(PROFILE),$(PROFILE),release))
CCFLAGS += -Wall -fwhole-program
CCFLAGS += -Wall -fwhole-program -fPIE -pie
STRIPFLAGS := -s --strip-unneeded -R .comment -R .gnu.version -R .note -R .note.gnu.build-id -R .note.ABI-tag
@ -18,7 +18,7 @@ ifeq ($(CFG_MUSL), 1)
TARGET ?= x86_64-unknown-linux-musl
CC ?= musl-gcc
CCFLAGS += -static -lservicepoint_binding_c
RUSTFLAGS += --crate-type=staticlib
RUSTFLAGS += --crate-type=staticlib -Ctarget-feature=-crt-static
else
TARGET ?= x86_64-unknown-linux-gnu
CC ?= gcc
@ -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