@@ -8,6 +8,8 @@ SHELL := /usr/bin/env bash
88NATIVE_ARCH := $(shell uname -m)
99ifeq ($(NATIVE_ARCH ) ,x86_64)
1010NATIVE_ARCH := amd64
11+ # Building a static Rust binary require explicit target https://github.com/rust-lang/rust/issues/78210
12+ INT_TEST_CARGO_BUILD_TARGET := x86_64-unknown-linux-musl
1113else ifneq (,$(filter $(NATIVE_ARCH),aarch64 arm64))
1214NATIVE_ARCH := arm64
1315else
@@ -21,7 +23,12 @@ ifeq ($(NATIVE_ARCH),$(TARGET_ARCH))
2123ARCH_PREFIX :=
2224else ifeq ($(TARGET_ARCH),arm64)
2325ARCH_PREFIX := aarch64-linux-gnu-
26+ INT_TEST_CARGO_BUILD_TARGET := aarch64-unknown-linux-gnu
27+ # Fixes -m64 command line errors: https://stackoverflow.com/questions/58244095/gcc-7-error-unrecognized-command-line-option-m64
28+ export CC_aarch64_unknown_linux_gnu = aarch64-linux-gnu-gcc
29+ export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER = aarch64-linux-gnu-gcc
2430else ifeq ($(TARGET_ARCH),amd64)
31+ export CARGO_BUILD_TARGET = x86_64-unknown-linux-musl
2532ARCH_PREFIX := x86_64-linux-gnu-
2633else
2734$(error Unsupported architecture : $(TARGET_ARCH ) )
@@ -111,9 +118,11 @@ test-deps:
111118 ($( MAKE) -C " $( testdata_dir) " ) || exit ; \
112119 )
113120
114- TEST_INTEGRATION_BINARY_DIRS := tracer processmanager/ebpf support go_labels
121+ TEST_INTEGRATION_BINARY_DIRS := tracer processmanager/ebpf support go_labels customlabelstest
115122
116123integration-test-binaries : generate ebpf
124+ RUSTFLAGS=" -Ctarget-feature=+crt-static" CC= cargo build --target $(INT_TEST_CARGO_BUILD_TARGET ) --release --bin custom-labels-example
125+ cp -f target/$(INT_TEST_CARGO_BUILD_TARGET ) /release/custom-labels-example ./support/custom_labels_example.test
117126# Call it a ".test" even though it isn't to get included into bluebox initramfs
118127 go build -o ./support/go_labels_canary.test ./go_labels
119128 $(foreach test_name, $(TEST_INTEGRATION_BINARY_DIRS), \
0 commit comments