diff --git a/.cargo/config.toml b/.cargo/config.toml new file mode 100644 index 00000000..4f1e843e --- /dev/null +++ b/.cargo/config.toml @@ -0,0 +1,34 @@ +[build] +# Use safer optimization flags to avoid Rust compiler SIGSEGV +# The default Debian build flags are too aggressive and cause crashes + +[target.'cfg(all())'] +# Override aggressive optimization flags that cause SIGSEGV +rustflags = [ + "-C", "opt-level=2", # Use safer optimization level (was 3) + "-C", "codegen-units=16", # Use multiple codegen units (was 1) + # Remove linker-plugin-lto which causes SIGSEGV with regex-automata + "-C", "lto=false", # Disable LTO to avoid crashes +] + +[profile.release] +# Use safer release profile settings +opt-level = 2 # Safer optimization level +codegen-units = 16 # Multiple codegen units for stability +lto = false # Disable LTO to avoid crashes +panic = "abort" # Abort on panic for release builds +strip = true # Strip debug symbols +debug = false # No debug info in release builds + +[profile.dev] +# Development profile settings +opt-level = 0 # No optimization for faster compilation +debug = true # Include debug info +codegen-units = 16 # Multiple codegen units +lto = false # Disable LTO + +# Environment-specific overrides +[env] +# Set environment variables for safer builds +RUSTFLAGS = "--cfg debug_assertions" +CARGO_INCREMENTAL = "1" diff --git a/debian/rules b/debian/rules index be1f2780..4073ad35 100755 --- a/debian/rules +++ b/debian/rules @@ -17,8 +17,12 @@ DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH) # Rust target for cross-compilation (simplified) RUST_TARGET := $(DEB_HOST_ARCH) -# Build flags -CARGO_FLAGS := --release +# Build flags - Use safer flags to avoid Rust compiler SIGSEGV +CARGO_FLAGS := --release --config .cargo/config.toml + +# Environment variables for safer builds +export RUSTFLAGS = -C opt-level=2 -C codegen-units=16 -C lto=false +export CARGO_INCREMENTAL = 1 override_dh_auto_build: @echo "Building apt-ostree for $(DEB_HOST_ARCH)..."