From 49c8068ef0d8cfad84fec964658cba18ca8f4e95 Mon Sep 17 00:00:00 2001 From: Stephan Boyer Date: Fri, 2 Jun 2023 08:56:51 -0400 Subject: [PATCH] Add support for AArch64 musl Linux --- .github/workflows/ci.yml | 16 ++++++++++++++++ CHANGELOG.md | 5 +++++ Cargo.lock | 2 +- Cargo.toml | 2 +- toast.yml | 6 ++++++ 5 files changed, 29 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a089780..68f6922 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,6 +44,7 @@ jobs: - run: | # Make Bash not silently ignore errors. set -euo pipefail + # The artifact name will contain the target triple, so the file name doesn't need to. mv artifacts/gram-aarch64-unknown-linux-gnu artifacts/gram - uses: actions/upload-artifact@v2 @@ -51,6 +52,17 @@ jobs: name: aarch64-unknown-linux-gnu path: artifacts/gram if-no-files-found: error + - run: | + # Make Bash not silently ignore errors. + set -euo pipefail + + # The artifact name will contain the target triple, so the file name doesn't need to. + mv artifacts/gram-aarch64-unknown-linux-musl artifacts/gram + - uses: actions/upload-artifact@v2 + with: + name: aarch64-unknown-linux-musl + path: artifacts/gram + if-no-files-found: error ci-windows: name: Build for Windows runs-on: windows-latest @@ -175,6 +187,9 @@ jobs: mv \ artifacts/aarch64-unknown-linux-gnu/gram \ artifacts/gram-aarch64-unknown-linux-gnu + mv \ + artifacts/aarch64-unknown-linux-musl/gram \ + artifacts/gram-aarch64-unknown-linux-musl mv \ artifacts/x86_64-apple-darwin/gram \ artifacts/gram-x86_64-apple-darwin @@ -192,6 +207,7 @@ jobs: --attach 'artifacts/gram-x86_64-unknown-linux-gnu' \ --attach 'artifacts/gram-x86_64-unknown-linux-musl' \ --attach 'artifacts/gram-aarch64-unknown-linux-gnu' \ + --attach 'artifacts/gram-aarch64-unknown-linux-musl' \ --attach 'artifacts/gram-x86_64-apple-darwin' \ --attach 'artifacts/gram-aarch64-apple-darwin' \ --attach 'artifacts/gram-x86_64-pc-windows-msvc.exe' \ diff --git a/CHANGELOG.md b/CHANGELOG.md index 626ce63..998df9b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.0.3] - 2023-06-02 + +### Added +- Gram supports a new platform: AArch64 musl Linux. + ## [0.0.2] - 2023-05-23 ### Added diff --git a/Cargo.lock b/Cargo.lock index 231ff11..faa5d13 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -63,7 +63,7 @@ dependencies = [ [[package]] name = "gram" -version = "0.0.2" +version = "0.0.3" dependencies = [ "clap", "colored", diff --git a/Cargo.toml b/Cargo.toml index 5545ab6..7e70aeb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "gram" -version = "0.0.2" +version = "0.0.3" authors = ["Stephan Boyer "] edition = "2021" description = "A programming language for distributed systems." diff --git a/toast.yml b/toast.yml index 1f00ebe..5148a55 100644 --- a/toast.yml +++ b/toast.yml @@ -240,16 +240,19 @@ tasks: rustup target add x86_64-unknown-linux-gnu rustup target add x86_64-unknown-linux-musl rustup target add aarch64-unknown-linux-gnu + rustup target add aarch64-unknown-linux-musl # Set the linkers. export CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER=x86_64-linux-gnu-gcc export CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER=x86_64-linux-gnu-gcc export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc + export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=aarch64-linux-gnu-gcc # Build the project with Cargo for each Linux target. cargo-online build --release --target x86_64-unknown-linux-gnu cargo-online build --release --target x86_64-unknown-linux-musl cargo-online build --release --target aarch64-unknown-linux-gnu + cargo-online build --release --target aarch64-unknown-linux-musl # Move the binaries to a more conveniennt location for exporting. mkdir artifacts @@ -262,6 +265,9 @@ tasks: cp \ target/aarch64-unknown-linux-gnu/release/gram \ artifacts/gram-aarch64-unknown-linux-gnu + cp \ + target/aarch64-unknown-linux-musl/release/gram \ + artifacts/gram-aarch64-unknown-linux-musl publish: description: Publish the crate to crates.io.