Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ckormanyos/gcc-rx-elf
gcc-rx-elf built with shell and YAML
https://github.com/ckormanyos/gcc-rx-elf
cross-compiler gcc gcc-cross-compiler gcc-rx-elf rx600
Last synced: about 1 month ago
JSON representation
gcc-rx-elf built with shell and YAML
- Host: GitHub
- URL: https://github.com/ckormanyos/gcc-rx-elf
- Owner: ckormanyos
- License: unlicense
- Created: 2024-02-10T16:54:04.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-02-11T00:14:20.000Z (11 months ago)
- Last Synced: 2024-10-13T16:27:26.549Z (2 months ago)
- Topics: cross-compiler, gcc, gcc-cross-compiler, gcc-rx-elf, rx600
- Language: Shell
- Homepage:
- Size: 6.84 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
ckormanyos/gcc-rx-elf
==================`ckormanyos/gcc-rx-elf` provides shell and YAML scripts to build a modern `gcc-rx-elf`.
Design goals:
- Use shell and YAML scripts to build modern `gcc-rx-elf` on-the-fly.
- Build `gcc-rx-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 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-rx-elf` toolchain.Releases and build artifacts consisting of the
fully-built `gcc-rx-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:
- Use the shell script [gcc-rx-elf-100.sh](./gcc-rx-elf-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-rx-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-rx-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.## Additional Notes
Notes:
- This project is distributed under [The Unlicense](./UNLICENSE).
- This work is similar to the related project [`ckormanyos/avr-gcc-build`](https://github.com/ckormanyos/avr-gcc-build).
- The pre-built, dependency-free, statically linked `mingw` and host-compiler system originate from Steven T. Lavavej's [`MinGW Distro`](https://nuwen.net/mingw.html).