Skip to content

Commit

Permalink
Correct typos and update docs
Browse files Browse the repository at this point in the history
  • Loading branch information
Christopher Kormanyos committed Jan 30, 2024
1 parent 61ef1de commit 0372756
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 20 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/build-msys64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
strategy:
fail-fast: false
matrix:
gccversion: [ 12.3.0, 13.2.0 ]
gccversion: [ 13.2.0 ]
steps:
- uses: actions/checkout@v4
- name: get-nuwen-mingw
Expand All @@ -29,7 +29,7 @@ jobs:
shell: cmd
run: |
C:\msys64\usr\bin\echo.exe unpack-nuwen-mingw
start /b /wait ./mingw-19.0.exe -y -gm2 -InstallPath="D:\\a\\gcc-v850-unknown-elf-build\\gcc-v850-unknown-elf-build\\mingw"
start /b /wait ./mingw-19.0.exe -y -gm2 -InstallPath="D:\\a\\gcc-v850-unknown-elf\\gcc-v850-unknown-elf\\mingw"
- uses: msys2/setup-msys2@v2
with:
msystem: mingw64
Expand All @@ -48,7 +48,7 @@ jobs:
- uses: actions/upload-artifact@v4
with:
name: gcc-${{ matrix.gccversion }}-avr_x86_64-w64-mingw32
path: d:/a/gcc-v850-unknown-elf-build/gcc-v850-unknown-elf/local/gcc-${{ matrix.gccversion }}-v850-unknown-elf
path: d:/a/gcc-v850-unknown-elf/gcc-v850-unknown-elf/local/gcc-${{ matrix.gccversion }}-v850-unknown-elf
- name: gcc-v850-unknown-elf-test-with-real-time-cpp
run: |
echo "test gcc-v850-unknown-elf with real-time-cpp"
Expand Down
45 changes: 28 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,40 +3,51 @@ ckormanyos/gcc-v850-unknown-elf

<p align="center">
<a href="https://github.com/ckormanyos/gcc-v850-unknown-elf/actions">
<img src="https://github.com/ckormanyos/gcc-v850-unknown-elf/actions/workflows/gcc-v850-unknown-elf-build-msys2.yml/badge.svg" alt="build-msys2"></a>
<img src="https://github.com/ckormanyos/gcc-v850-unknown-elf/actions/workflows/build-ubuntu.yml/badge.svg" alt="build-ubuntu"></a>
<a href="https://github.com/ckormanyos/gcc-v850-unknown-elf/actions">
<img src="https://github.com/ckormanyos/gcc-v850-unknown-elf/actions/workflows/build-msys64.yml/badge.svg" alt="build-msys64"></a>
<a href="https://github.com/ckormanyos/gcc-v850-unknown-elf/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc">
<img src="https://custom-icon-badges.herokuapp.com/github/issues-raw/ckormanyos/gcc-v850-unknown-elf?logo=github" alt="Issues" /></a>
<a href="https://github.com/ckormanyos/gcc-v850-unknown-elf/blob/main/UNLICENSE">
<img src="https://img.shields.io/badge/license-The Unlicense-blue.svg" alt="The Unlicense"></a>
</p>

`ckormanyos/gcc-v850-unknown-elf` provides shell and YAML scripts to build a modern `gcc-v850-unknown-elf`
on GHA native runner(s). Built toolchains are distributed as ZIP-archive(s)
directly from the Workflow-Run(s) on GHA.
`ckormanyos/gcc-v850-unknown-elf` provides shell and YAML scripts to build a modern `gcc-v850-unknown-elf`.

Design goals:
- Use shell and YAML scripts to build `gcc-v850-unknown-elf` from up-to-date [gcc-release(s)](https://gcc.gnu.org/pub/gcc/releases).
- Use shell and YAML scripts to build modern `gcc-v850-unknown-elf` on-the-fly.
- Build `gcc-v850-unknown-elf` from up-to-date [gcc-releases](https://ftp.gnu.org/gnu/gcc).
- Provide a non-trivial test of the newly-built toolchain(s) based on a real-world project.
- Publish the build artifacts directly from the Workflow-Run(s) on GHA.
- Support cyclic monthly build of modern, evolving [gcc-release(s)](https://gcc.gnu.org/pub/gcc/releases).
- Publish the build artifacts directly from the GHA Workflow-Run(s).
- Occasionally create and publish versioned releases.

## Releases and Build Artifacts

Using released or CI-built artifacts can be convenient when you
do not actually want to nor need to manually build
`gcc-v850-unknown-elf` toolchain.

Releases and build artifacts consisting of the
fully-built `gcc-v850-unknown-elf` toolchain are occasionally created
and published for `x86_64-linux-gnu` (Linux) and
`x86_64-w64-mingw32` (Windows). These can be readily found
on the repo front page and in CI workflow-run download-areas
for immediate client use. The releases are permanent, whereby
the built artifacts are limited to three days after the
Workflow-Run(s).

## Workflow-Run

Workflow:
- The Workflow-Run [gcc-v850-unknown-elf-build-msys2.yml](./.github/workflows/gcc-v850-unknown-elf-build-msys2.yml) and its associated shell script [gcc-v850-unknown-elf-100-my_ver_x86_64-w64-mingw32.sh](./gcc-v850-unknown-elf-100-my_ver_x86_64-w64-mingw32.sh) build `gcc-v850-unknown-elf` for the _host_ `x86_64-w64-mingw32`. These run on a GHA `windows-latest` runner using `msys2`.
- When building for `x86_64-w64-mingw32` on `msys2`, use a pre-built, dependency-free, statically linked `mingw` and host-compiler (see notes below). This separate `mingw` package is unpacked in a directory parallel to the runner workspace and its `bin` directory is added to the `PATH` variable.
- Use the shell script [avr-gcc-100.sh](./avr-gcc-100.sh) consistently in each of the Workflow-Run(s).
- The Workflow-Run [build-ubuntu.yml](./.github/workflows/build-ubuntu.yml) builds `avr-gcc` for the _host_ `x86_64-linux-gnu`. The script is executed on a GHA `ubuntu-latest` runner.
- The Workflow-Run [build-msys64.yml](./.github/workflows/build-msys64.yml) builds `avr-gcc` for the _host_ `x86_64-w64-mingw32`. The script is executed on a GHA `windows-latest` runner using `msys64`.
- When building for `x86_64-w64-mingw32` on `msys64`, use a pre-built, dependency-free, statically linked `mingw` and host-compiler (see notes below). This separate `mingw` package is unpacked in a directory parallel to the runner workspace and its `bin` directory is added to the `PATH` variable.
- GCC prerequisites including [GMP](https://gmplib.org), [MPFR](https://www.mpfr.org), [MPC](https://www.multiprecision.org), etc. are built on-the-fly in the Workflow-Run.
- Build [`binutils`](https://www.gnu.org/software/binutils) and partially verify the build artifacts.
- Then build `gcc-v850-unknown-elf` (use [newlib](https://sourceware.org/newlib) and the `--with-newlib` configuration flag) and partially verify the build artifacts.
- Then build `gcc-v850-unknown-elf` and partially verify the build artifacts. Use [newlib](https://sourceware.org/newlib) and the `--with-newlib` configuration flag.
- Test the complete, newly built `gcc-v850-unknown-elf` toolchain with a non-trivial compiler test. In the compiler test, we build `ref_app` (the reference application) from [`ckormanyos/real-time-cpp`](https://github.com/ckormanyos). Verify the creation of key build results from `ref_app` including ELF-file, HEX-file, map files, etc.

## Distribution

Build artifacts are compressed and stored as ZIP-archive(s)
directly from the Workflow-Run on GHA.
The [`actions/upload-artifact`](https://github.com/actions/upload-artifact) action
is used for archiving build artifacts.

## Additional Notes

Notes:
Expand Down

0 comments on commit 0372756

Please sign in to comment.