|
1 | 1 | [target.aarch64-unknown-linux-gnu] |
2 | 2 | image = "ghcr.io/cross-rs/aarch64-unknown-linux-gnu@sha256:1e2a0291f92a4372cbc22d8994e735473045383f1ce7fa44a16c234ba00187f4" |
3 | 3 | pre-build = [ |
| 4 | + # Add multiarch support |
4 | 5 | "dpkg --add-architecture arm64", |
5 | 6 | "apt-get update", |
6 | | - "apt-get install -y pkg-config:arm64 zlib1g-dev:arm64 libssl-dev:arm64 libsasl2-dev:arm64 libzstd-dev:arm64 liblz4-dev:arm64", |
7 | | - "echo '=== DEBUG: zlib installation paths ==='", |
8 | | - "dpkg -l | grep zlib || true", |
9 | | - "find /usr -name 'zlib.h' 2>/dev/null || true", |
10 | | - "find /usr -name 'libz.so*' 2>/dev/null || true", |
11 | | - "pkg-config --cflags --libs zlib || echo 'pkg-config zlib failed'", |
12 | | - "echo '=== DEBUG: aarch64-linux-gnu paths ==='", |
13 | | - "ls -la /usr/include/aarch64-linux-gnu 2>/dev/null || echo 'No /usr/include/aarch64-linux-gnu'", |
14 | | - "ls -la /usr/lib/aarch64-linux-gnu 2>/dev/null || echo 'No /usr/lib/aarch64-linux-gnu'", |
| 7 | + |
| 8 | + # Install base dev packages FIRST (creates pkgconfig dir structure) |
| 9 | + "apt-get install -y pkg-config:arm64 libc6-dev:arm64", |
| 10 | + |
| 11 | + # Install zlib and other deps |
| 12 | + "apt-get install -y zlib1g-dev:arm64 libssl-dev:arm64 libsasl2-dev:arm64 libzstd-dev:arm64 liblz4-dev:arm64", |
| 13 | + |
| 14 | + # Verify pkg-config finds zlib |
| 15 | + "pkg-config --cflags --libs --exists zlib || (echo 'ZLIB PC FAILED'; exit 1)", |
| 16 | + |
| 17 | + # Fix library paths (ensure symlinks) |
| 18 | + "ln -sf /usr/lib/aarch64-linux-gnu/libz.so.1 /usr/lib/aarch64-linux-gnu/libz.so", |
| 19 | + "ln -sf /usr/lib/aarch64-linux-gnu/libssl.so.1.1 /usr/lib/aarch64-linux-gnu/libssl.so", |
| 20 | + "ln -sf /usr/lib/aarch64-linux-gnu/libcrypto.so.1.1 /usr/lib/aarch64-linux-gnu/libcrypto.so", |
| 21 | + |
| 22 | + # Debug verification |
| 23 | + "echo '=== ZLIB DEBUG ==='", |
| 24 | + "dpkg -l '*zlib*' | grep '^ii'", |
| 25 | + "find /usr -name 'zlib.pc' 2>/dev/null || echo 'NO zlib.pc'", |
| 26 | + "pkg-config --cflags --libs zlib", |
| 27 | + "ls -la /usr/lib/aarch64-linux-gnu/libz*", |
| 28 | + "echo '=== PATHS ==='", |
| 29 | + "ls -la /usr/lib/aarch64-linux-gnu/pkgconfig/ 2>/dev/null || echo 'NO PKGCONFIG DIR'", |
15 | 30 | ] |
16 | 31 |
|
17 | 32 | [target.aarch64-unknown-linux-gnu.env] |
18 | | -passthrough = [ |
19 | | - "LIBRDKAFKA_SSL_VENDORED", |
20 | | - "PKG_CONFIG_ALLOW_CROSS", |
21 | | - "CROSS_NO_WARNINGS", |
22 | | - "RUST_BACKTRACE", |
23 | | - "ZLIB_INCLUDE_DIR", |
24 | | - "ZLIB_LIBRARY", |
25 | | - "OPENSSL_ROOT_DIR", |
26 | | - "OPENSSL_INCLUDE_DIR", |
27 | | - "OPENSSL_CRYPTO_LIBRARY", |
28 | | - "OPENSSL_SSL_LIBRARY", |
29 | | - "PKG_CONFIG_PATH", |
30 | | -] |
31 | | -# REMOVED: broken volumes causing cross to crash |
| 33 | +# Force pkg-config to cross paths |
| 34 | +PKG_CONFIG_PATH = "/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/share/pkgconfig" |
| 35 | +PKG_CONFIG_ALLOW_CROSS = "1" |
| 36 | +LIBRDKAFKA_SSL_VENDORED = "1" |
| 37 | + |
| 38 | +# Explicit zlib paths for cmake |
| 39 | +ZLIB_INCLUDE_DIR = "/usr/include" |
| 40 | +ZLIB_LIBRARY = "/usr/lib/aarch64-linux-gnu/libz.so" |
| 41 | + |
| 42 | +# Explicit openssl paths |
| 43 | +OPENSSL_ROOT_DIR = "/usr" |
| 44 | +OPENSSL_INCLUDE_DIR = "/usr/include" |
| 45 | +OPENSSL_CRYPTO_LIBRARY = "/usr/lib/aarch64-linux-gnu/libcrypto.so" |
| 46 | +OPENSSL_SSL_LIBRARY = "/usr/lib/aarch64-linux-gnu/libssl.so" |
32 | 47 |
|
33 | | -[target.x86_64-unknown-linux-gnu] |
34 | | -image = "ghcr.io/cross-rs/x86_64-unknown-linux-gnu@sha256:bf05360bb9d6d4947eed60532ac7a0d7e8fae8f214e9abb801d5941c8fe4918d" |
| 48 | +# Debug |
| 49 | +RUST_BACKTRACE = "1" |
| 50 | +CROSS_NO_WARNINGS = "0" |
0 commit comments