diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 49c0613188..fa566959db 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -150,6 +150,11 @@ jobs: - name: Install MiniGW if: matrix.os == 'windows' run: apt-get update && apt-get install mingw-w64 -y + # TODO: these packages will be included in dev v48 + - name: Install cross compilation toolchain + if: matrix.arch == 'arm64' + run: apt-get update && apt-get install --no-install-recommends -y \ + binutils-aarch64-linux-gnu - name: Configure git run: git config --global --add safe.directory "$PWD" # actions/runner#2033 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 diff --git a/Dockerfile b/Dockerfile index fb9b8a9a55..cfc246a619 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,11 +14,16 @@ FROM $LINKERD2_IMAGE as linkerd2 FROM --platform=$BUILDPLATFORM $RUST_IMAGE as fetch ARG PROXY_FEATURES="" +ARG TARGETARCH="amd64" RUN apt-get update && \ apt-get install -y time && \ if [[ "$PROXY_FEATURES" =~ .*meshtls-boring.* ]] ; then \ apt-get install -y golang ; \ fi && \ + case "$TARGETARCH" in \ + amd64) true ;; \ + arm64) apt-get install --no-install-recommends -y binutils-aarch64-linux-gnu ;; \ + esac && \ rm -rf /var/lib/apt/lists/* ENV CARGO_NET_RETRY=10 @@ -33,7 +38,6 @@ RUN --mount=type=cache,id=cargo,target=/usr/local/cargo/registry \ FROM fetch as build ENV CARGO_INCREMENTAL=0 ENV RUSTFLAGS="-D warnings -A deprecated --cfg tokio_unstable" -ARG TARGETARCH="amd64" ARG PROFILE="release" ARG LINKERD2_PROXY_VERSION="" ARG LINKERD2_PROXY_VENDOR="" diff --git a/justfile b/justfile index 1781b24438..24015333ec 100644 --- a/justfile +++ b/justfile @@ -18,6 +18,10 @@ features := "" export LINKERD2_PROXY_VERSION := env_var_or_default("LINKERD2_PROXY_VERSION", "0.0.0-dev" + `git rev-parse --short HEAD`) export LINKERD2_PROXY_VENDOR := env_var_or_default("LINKERD2_PROXY_VENDOR", `whoami` + "@" + `hostname`) +# TODO: these variables will be included in dev v48 +export AWS_LC_SYS_CFLAGS_aarch64_unknown_linux_gnu := env_var_or_default("AWS_LC_SYS_CFLAGS_aarch64_unknown_linux_gnu", "-fuse-ld=/usr/aarch64-linux-gnu/bin/ld") +export AWS_LC_SYS_CFLAGS_aarch64_unknown_linux_musl := env_var_or_default("AWS_LC_SYS_CFLAGS_aarch64_unknown_linux_musl", "-fuse-ld=/usr/aarch64-linux-gnu/bin/ld") + # The version name to use for packages. package_version := "v" + LINKERD2_PROXY_VERSION diff --git a/linkerd/meshtls/rustls/Cargo.toml b/linkerd/meshtls/rustls/Cargo.toml index 213afacb7a..f5b34dddc2 100644 --- a/linkerd/meshtls/rustls/Cargo.toml +++ b/linkerd/meshtls/rustls/Cargo.toml @@ -7,7 +7,7 @@ edition = "2018" publish = { workspace = true } [features] -default = ["ring"] +default = ["aws-lc"] ring = ["tokio-rustls/ring", "rustls-webpki/ring"] aws-lc = ["tokio-rustls/aws-lc-rs", "rustls-webpki/aws-lc-rs"] aws-lc-fips = ["aws-lc", "tokio-rustls/fips"] diff --git a/linkerd2-proxy/Cargo.toml b/linkerd2-proxy/Cargo.toml index 544147ab7f..429a494309 100644 --- a/linkerd2-proxy/Cargo.toml +++ b/linkerd2-proxy/Cargo.toml @@ -8,7 +8,7 @@ publish = { workspace = true } description = "The main proxy executable" [features] -default = ["meshtls-rustls-ring"] +default = ["meshtls-rustls-aws-lc"] meshtls-boring = ["linkerd-meshtls/boring"] meshtls-boring-fips = ["linkerd-meshtls/boring-fips"] meshtls-rustls-aws-lc = ["linkerd-meshtls/rustls-aws-lc"]