ckormanyos/gcc-rl78-unknown-elf
provides shell and YAML scripts to build a modern gcc-rl78-unknown-elf
.
Design goals:
- Use shell and YAML scripts to build modern
gcc-rl78-unknown-elf
on-the-fly. - Build
gcc-rl78-unknown-elf
from up-to-date gcc-releases. - Provide a non-trivial test of the newly-built toolchain(s) based on a real-world project.
- Publish the build artifacts directly from the GHA Workflow-Run(s).
- Occasionally create and publish versioned releases.
Using released or CI-built artifacts can be convenient when you
do not actually want to nor need to manually build
gcc-rl78-unknown-elf
toolchain.
Releases and build artifacts consisting of the
fully-built gcc-rl78-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:
- Use the shell script gcc-rl78-unknown-elf-100.sh consistently in each of the Workflow-Run(s).
- The Workflow-Run build-ubuntu.yml builds
avr-gcc
for the hostx86_64-linux-gnu
. The script is executed on a GHAubuntu-latest
runner. - The Workflow-Run build-msys64.yml builds
avr-gcc
for the hostx86_64-w64-mingw32
. The script is executed on a GHAwindows-latest
runner usingmsys64
. - When building for
x86_64-w64-mingw32
onmsys64
, use a pre-built, dependency-free, statically linkedmingw
and host-compiler (see notes below). This separatemingw
package is unpacked in a directory parallel to the runner workspace and itsbin
directory is added to thePATH
variable. - GCC prerequisites including GMP, MPFR, MPC, etc. are built on-the-fly in the Workflow-Run.
- Build
binutils
and partially verify the build artifacts. - Then build
gcc-rl78-unknown-elf
and partially verify the build artifacts. Use newlib and the--with-newlib
configuration flag. - Test the complete, newly built
gcc-rl78-unknown-elf
toolchain with a non-trivial compiler test. In the compiler test, we buildref_app
(the reference application) fromckormanyos/real-time-cpp
. Verify the creation of key build results fromref_app
including ELF-file, HEX-file, map files, etc.
Notes:
- This project is distributed under The Unlicense.
- This work is similar to the related project
ckormanyos/avr-gcc-build
. - The pre-built, dependency-free, statically linked
mingw
and host-compiler system originate from Steven T. Lavavej'sMinGW Distro
.