Compare commits
2 commits
e659b84025
...
5ee324d8c1
Author | SHA1 | Date | |
---|---|---|---|
![]() |
5ee324d8c1 | ||
![]() |
c8674dc338 |
36
.github/workflows/rust.yml
vendored
36
.github/workflows/rust.yml
vendored
|
@ -13,32 +13,44 @@ env:
|
||||||
RUSTFLAGS: "-Dwarnings"
|
RUSTFLAGS: "-Dwarnings"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
|
||||||
|
|
||||||
|
build-gnu-apt:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Update repos
|
- name: Update repos
|
||||||
run: sudo apt-get update -qq
|
run: sudo apt-get update -qq
|
||||||
- name: Install rust toolchain
|
- name: Install toolchain
|
||||||
run: sudo apt-get install -qy cargo rust-clippy
|
run: sudo apt-get install -qy cargo rust-clippy liblzma-dev gcc make pkgconf
|
||||||
- name: install lzma
|
|
||||||
run: sudo apt-get install -qy liblzma-dev
|
|
||||||
- name: install gcc
|
|
||||||
run: sudo apt-get install -qy gcc make
|
|
||||||
|
|
||||||
- name: Run Clippy
|
- name: Run Clippy
|
||||||
run: cargo clippy
|
run: cargo clippy
|
||||||
|
|
||||||
|
- name: build
|
||||||
|
run: cargo build
|
||||||
|
|
||||||
- name: generate bindings
|
- name: generate bindings
|
||||||
run: ./generate-binding.sh
|
run: ./generate-binding.sh
|
||||||
- name: check that generated files did not change
|
- name: check that generated files did not change
|
||||||
run: output=$(git status --porcelain) && [ -z "$output" ]
|
run: output=$(git status --porcelain) && [ -z "$output" ]
|
||||||
|
|
||||||
- name: build
|
- name: build example -- glibc release
|
||||||
run: cargo build
|
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
|
||||||
|
|
||||||
- name: build example
|
build-size-gnu-unstable:
|
||||||
run: cd example && make
|
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"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
CARGO ?= cargo
|
CARGO ?= cargo
|
||||||
STRIP ?= strip
|
STRIP ?= strip
|
||||||
|
|
||||||
FEATURES :=
|
FEATURES := ""
|
||||||
|
|
||||||
THIS_DIR := $(dir $(realpath $(lastword $(MAKEFILE_LIST))))
|
THIS_DIR := $(dir $(realpath $(lastword $(MAKEFILE_LIST))))
|
||||||
REPO_ROOT := $(realpath $(THIS_DIR)/..)
|
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_MUSL := $(if $(CFG_MUSL),$(CFG_MUSL),$(if $(MUSL),$(MUSL),0))
|
||||||
override CFG_PROFILE := $(if $(CFG_PROFILE),$(CFG_PROFILE),$(if $(PROFILE),$(PROFILE),release))
|
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
|
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
|
TARGET ?= x86_64-unknown-linux-musl
|
||||||
CC ?= musl-gcc
|
CC ?= musl-gcc
|
||||||
CCFLAGS += -static -lservicepoint_binding_c
|
CCFLAGS += -static -lservicepoint_binding_c
|
||||||
RUSTFLAGS += --crate-type=staticlib
|
RUSTFLAGS += --crate-type=staticlib -Ctarget-feature=-crt-static
|
||||||
else
|
else
|
||||||
TARGET ?= x86_64-unknown-linux-gnu
|
TARGET ?= x86_64-unknown-linux-gnu
|
||||||
CC ?= gcc
|
CC ?= gcc
|
||||||
|
@ -31,7 +31,6 @@ endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
RUST_TARGET_DIR := $(REPO_ROOT)/target/$(TARGET)/$(CFG_PROFILE)
|
RUST_TARGET_DIR := $(REPO_ROOT)/target/$(TARGET)/$(CFG_PROFILE)
|
||||||
OUT_DIR := $(realpath $(THIS_DIR)/out/)
|
|
||||||
|
|
||||||
ifeq ($(CFG_PROFILE), size-optimized)
|
ifeq ($(CFG_PROFILE), size-optimized)
|
||||||
CARGO_PROFILE := size-optimized
|
CARGO_PROFILE := size-optimized
|
||||||
|
@ -92,7 +91,7 @@ all: $(_bins)
|
||||||
clean: clean-c clean-rust
|
clean: clean-c clean-rust
|
||||||
|
|
||||||
clean-c:
|
clean-c:
|
||||||
rm -r $(OUT_DIR) || true
|
rm -r out || true
|
||||||
|
|
||||||
clean-rust:
|
clean-rust:
|
||||||
rm $(SERVICEPOINT_HEADER_OUT)/servicepoint.h || true
|
rm $(SERVICEPOINT_HEADER_OUT)/servicepoint.h || true
|
||||||
|
@ -123,7 +122,7 @@ sizes: $(_bins)
|
||||||
ls -lB out
|
ls -lB out
|
||||||
|
|
||||||
analyze-size: out/$(BIN)_unstripped
|
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}' \
|
| awk '{size=$$2+0; print size "\t" $$4}' \
|
||||||
| less
|
| less
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue