[PATCH v4 0/6] perf: build: Fix cross compilation

From: Leo Yan
Date: Mon Jul 15 2024 - 10:30:01 EST


This patch series fixes cross compilation issues.

The first patch sets the package path if the package configuration path
is not specified. This helps the compiler to find the architecture's
package in a Multiarch system.

The patch 02 sets the Python configuration path and renames the .so to

The patches 03, 04 and 05 fix the static build failures.

The patch 06 adds document for how to cross compile.

This patch series is tested for building perf on x86_64 host for Arm64
target, with verified on Debian two distros (buster and bookworm).

Changes from v3:
- Added more completed comments and logs for PKG_CONFIG_SYSROOT_DIR.
(Namhyung)
- Didn't include the patch 07 for "perf docs: Remove the Android cross
building document" in this version, which will be sent out separately.
(Namhyung/James)

Changes from v2:
- Reordered lib paths for PKG_CONFIG_LIBDIR. (Namhyung)
- Verified the Android NDK and based on the testing result to remove the
file android.txt. (Ian)

Changes from v1:
- Kept the cross-compile-pkg-config if it is available. (Namhyung)
- Removed the patch 02 for fixing pkg-config path for libtraceevent, as
this will be resolved in Guilherme Amadio's patch "perf build: Use
pkg-config for feature check for libtrace{event,fs}".
- Added patch 06 for document.


Leo Yan (6):
perf: build: Setup PKG_CONFIG_LIBDIR for cross compilation
perf: build: Set Python configuration for cross compilation
perf: build: Only link libebl.a for old libdw
perf: build: Link lib 'lzma' for static build
perf: build: Link lib 'zstd' for static build
perf docs: Document cross compilation

tools/build/feature/Makefile | 53 ++++++++++++++++++++++++------
tools/perf/Documentation/Build.txt | 37 +++++++++++++++++++++
tools/perf/Makefile.config | 20 ++++++++++-
tools/perf/Makefile.perf | 27 ++++++++++++++-
4 files changed, 125 insertions(+), 12 deletions(-)

--
2.34.1