Skip to content

Commit 7032200

Browse files
committed
add support for gcc cross-build for linux targets
[UNTESTED]
1 parent e5e5808 commit 7032200

File tree

2 files changed

+19
-5
lines changed

2 files changed

+19
-5
lines changed

_build.sh

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -572,11 +572,17 @@ build_single_target() {
572572
# Include CRT type in Linux triplets, to make it visible in
573573
# the curl version banner.
574574
_TRIPLET="${_machine}-pc-linux-${_CRT}"
575+
# Short triplet used on the filesystem
576+
_TRIPLETSH="${_machine}-linux-gnu"
575577

576578
if [ "${unamem}" != "${_machine}" ] && [ "${_CC}" = 'gcc' ]; then
577-
# TODO: Implement cross-builds with gcc
578-
echo "! WARNING: Linux cross-buils require llvm/clang. Skipping."
579-
return
579+
# https://packages.debian.org/testing/arm64/gcc-x86-64-linux-gnu/filelist
580+
# https://packages.debian.org/testing/arm64/binutils-x86-64-linux-gnu/filelist
581+
# /usr/bin/x86_64-linux-gnu-gcc
582+
# https://packages.debian.org/testing/amd64/gcc-aarch64-linux-gnu/filelist
583+
# https://packages.debian.org/testing/amd64/binutils-aarch64-linux-gnu/filelist
584+
# /usr/bin/aarch64-linux-gnu-gcc
585+
_CCPREFIX="${_TRIPLETSH}-"
580586
fi
581587

582588
_RUN_BIN='echo'

_ci-linux-debian.sh

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,17 @@ if [[ "${CW_CONFIG:-}" = *'linux'* ]]; then
2121
extra="${extra} linux-headers" # for openssl 'secure-memory' feature
2222
fi
2323
if [ "$(uname -m)" = 'aarch64' ]; then
24-
extra="${extra} libgcc-13-dev-amd64-cross libstdc++-13-dev-amd64-cross"
24+
if [[ "${CW_CONFIG:-}" = *'gcc'* ]]; then
25+
extra="${extra} gcc${CW_CCSUFFIX}-x86-64-linux-gnu"
26+
else
27+
extra="${extra} libgcc-13-dev-amd64-cross libstdc++-13-dev-amd64-cross"
28+
fi
2529
else
26-
extra="${extra} libgcc-13-dev-arm64-cross libstdc++-13-dev-arm64-cross"
30+
if [[ "${CW_CONFIG:-}" = *'gcc'* ]]; then
31+
extra="${extra} gcc${CW_CCSUFFIX}-aarch64-linux-gnu"
32+
else
33+
extra="${extra} libgcc-13-dev-arm64-cross libstdc++-13-dev-arm64-cross"
34+
fi
2735
fi
2836
fi
2937

0 commit comments

Comments
 (0)