build: use cargo wrapper when building package

else we don't pick up the options set by the wrapper, which include generation
of debug symbols. until rustc 1.77, this was not needed because compiled
binaries always included a non-stripped libstd. now, without this change, the
binaries built with `cargo build --release` have no debug symbols at all
trigger a warning. fix this and include debug symbols when building a package,
like was originally intended for release package builds.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
This commit is contained in:
Fabian Grünbichler 2024-06-19 16:38:05 +02:00 committed by Wolfgang Bumiller
parent a92a745fdc
commit fd3f72820e
4 changed files with 16 additions and 12 deletions

View File

@ -38,9 +38,9 @@ SUBCRATES != cargo metadata --no-deps --format-version=1 \
ifeq ($(BUILD_MODE), release) ifeq ($(BUILD_MODE), release)
CARGO_BUILD_ARGS += --release CARGO_BUILD_ARGS += --release
COMPILEDIR := target/release COMPILEDIR := target/$(DEB_HOST_RUST_TYPE)/release
else else
COMPILEDIR := target/debug COMPILEDIR := target/$(DEB_HOST_RUST_TYPE)/debug
endif endif
ifeq ($(valgrind), yes) ifeq ($(valgrind), yes)

2
debian/rules vendored
View File

@ -8,7 +8,7 @@ include /usr/share/rustc/architecture.mk
export BUILD_MODE=release export BUILD_MODE=release
CARGO=/usr/share/cargo/bin/cargo export CARGO=/usr/share/cargo/bin/cargo
export CFLAGS CXXFLAGS CPPFLAGS LDFLAGS export CFLAGS CXXFLAGS CPPFLAGS LDFLAGS
export DEB_HOST_RUST_TYPE DEB_HOST_GNU_TYPE export DEB_HOST_RUST_TYPE DEB_HOST_GNU_TYPE

View File

@ -90,10 +90,10 @@ SPHINXBUILD = sphinx-build
BUILDDIR = output BUILDDIR = output
ifeq ($(BUILD_MODE), release) ifeq ($(BUILD_MODE), release)
COMPILEDIR := ../target/release COMPILEDIR := ../target/$(DEB_HOST_RUST_TYPE)/release
SPHINXOPTS += -t release SPHINXOPTS += -t release
else else
COMPILEDIR := ../target/debug COMPILEDIR := ../target/$(DEB_HOST_RUST_TYPE)/debug
SPHINXOPTS += -t devbuild SPHINXOPTS += -t devbuild
endif endif

View File

@ -7,15 +7,17 @@ fn pxar_create_and_extract() {
let src_dir = "../tests/catar_data/test_xattrs_src/"; let src_dir = "../tests/catar_data/test_xattrs_src/";
let dest_dir = "../tests/catar_data/test_xattrs_dest/"; let dest_dir = "../tests/catar_data/test_xattrs_dest/";
let target_subdir = std::env::var("DEB_HOST_RUST_TYPE").unwrap_or(String::new());
let exec_path = if cfg!(debug_assertions) { let exec_path = if cfg!(debug_assertions) {
"../target/debug/pxar" format!("../target/{target_subdir}/debug/pxar")
} else { } else {
"../target/release/pxar" format!("../target/{target_subdir}/release/pxar")
}; };
println!("run '{} create archive.pxar {}'", exec_path, src_dir); println!("run '{} create archive.pxar {}'", exec_path, src_dir);
Command::new(exec_path) Command::new(&exec_path)
.arg("create") .arg("create")
.arg("./tests/archive.pxar") .arg("./tests/archive.pxar")
.arg(src_dir) .arg(src_dir)
@ -24,7 +26,7 @@ fn pxar_create_and_extract() {
println!("run '{} extract archive.pxar {}'", exec_path, dest_dir); println!("run '{} extract archive.pxar {}'", exec_path, dest_dir);
Command::new(exec_path) Command::new(&exec_path)
.arg("extract") .arg("extract")
.arg("./tests/archive.pxar") .arg("./tests/archive.pxar")
.arg("--target") .arg("--target")
@ -81,13 +83,15 @@ fn pxar_create_and_extract() {
#[test] #[test]
fn pxar_list_with_payload_input() { fn pxar_list_with_payload_input() {
let target_subdir = std::env::var("DEB_HOST_RUST_TYPE").unwrap_or(String::new());
let exec_path = if cfg!(debug_assertions) { let exec_path = if cfg!(debug_assertions) {
"../target/debug/pxar" format!("../target/{target_subdir}/debug/pxar")
} else { } else {
"../target/release/pxar" format!("../target/{target_subdir}/release/pxar")
}; };
let output = Command::new(exec_path) let output = Command::new(&exec_path)
.args([ .args([
"list", "list",
"../tests/pxar/backup-client-pxar-expected.mpxar", "../tests/pxar/backup-client-pxar-expected.mpxar",