Minor: Configuring with multiple RTEMS targets

Open
#95 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
42/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
github-actions, python
Domain
ci-cd

Research direction

Start by tracing the cue.py prepare handling of CI_CROSS_TARGETS and RTEMS compiler setup; the issue provides no file or test names. Check how multiple targets trigger compiler version commands and where their RTEMS versions are parsed. Done means compiler checks run as intended and mixed RTEMS versions are rejected for a single Base build tree, with coverage for multiple targets.

Written by the indexing model from the issue text.

Description

A GHA build configured with

CI_CROSS_TARGETS="RTEMS-beatnik@5:RTEMS-xilinx_zynq_a9_qemu@5:RTEMS-uC5282@5"

Seems to have built all 3 targets as I hoped it would, but during the cue.py prepare step it output this:

Configuring EPICS build system
  EPICS Base build system set up for optimized build with shared (DLL) linking
  Cross compiler RTEMS5 @ RTEMS-beatnik
  Downloading RTEMS 5 cross compiler: beatnik-rtems5.tar.xz
  /opt/rtems/5/bin/powerpc-rtems5-gcc --version
  powerpc-rtems5-gcc (GCC) 7.5.0 20191114 (RTEMS 5, RSB 5 (3911854[46](https://github.com/anjohnson/pvDataCPP/actions/runs/10337027940/job/28613430850#step:5:49)2e7 modified), Newlib 7947581)
  Copyright (C) 2017 Free Software Foundation, Inc.
  This is free software; see the source for copying conditions.  There is NO
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  
  Cross compiler RTEMS5 @ RTEMS-xilinx_zynq_a9_qemu
  Downloading RTEMS 5 cross compiler: xilinx_zynq_a9_qemu-rtems5.tar.xz
  /opt/rtems/5/bin/arm-rtems5-gcc --version
  arm-rtems5-gcc (GCC) 7.5.0 20191114 (RTEMS 5, RSB 5 (3911854462e7 modified), Newlib 7947581)
  Copyright (C) 2017 Free Software Foundation, Inc.
  This is free software; see the source for copying conditions.  There is NO
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  
  /opt/rtems/5/bin/powerpc-rtems5-gcc --version
  powerpc-rtems5-gcc (GCC) 7.5.0 20191114 (RTEMS 5, RSB 5 (3911854462e7 modified), Newlib 7947581)
  Copyright (C) 2017 Free Software Foundation, Inc.
  This is free software; see the source for copying conditions.  There is NO
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  
  Cross compiler RTEMS5 @ RTEMS-uC[52](https://github.com/anjohnson/pvDataCPP/actions/runs/10337027940/job/28613430850#step:5:55)82
  Downloading RTEMS 5 cross compiler: uC5282-rtems5.tar.xz
  /opt/rtems/5/bin/m68k-rtems5-gcc --version
  m68k-rtems5-gcc (GCC) 7.5.0 20191114 (RTEMS 5, RSB 5 (39118[54](https://github.com/anjohnson/pvDataCPP/actions/runs/10337027940/job/28613430850#step:5:57)462e7 modified), Newlib 7947581)
  Copyright (C) 2017 Free Software Foundation, Inc.
  This is free software; see the source for copying conditions.  There is NO
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  
  /opt/rtems/5/bin/arm-rtems5-gcc --version
  arm-rtems5-gcc (GCC) 7.5.0 20191114 (RTEMS 5, RSB 5 (3911854462e7 modified), Newlib 7947[58](https://github.com/anjohnson/pvDataCPP/actions/runs/10337027940/job/28613430850#step:5:61)1)
  Copyright (C) 2017 Free Software Foundation, Inc.
  This is free software; see the source for copying conditions.  There is NO
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  
  /opt/rtems/5/bin/powerpc-rtems5-gcc --version
  powerpc-rtems5-gcc (GCC) 7.5.0 20191114 (RTEMS 5, RSB 5 (39118544[62](https://github.com/anjohnson/pvDataCPP/actions/runs/10337027940/job/28613430850#step:5:65)e7 modified), Newlib 7947581)
  Copyright (C) 2017 Free Software Foundation, Inc.
  This is free software; see the source for copying conditions.  There is NO
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

So it downloaded each compiler just once, but ran the gcc --version commands for all of the installed cross-compilers in reverse order after installing each one.

It might be worth putting a check in the code when multiple RTEMS targets are built to ensure that they all specify the same RTEMS version. It's not possible to mix RTEMS versions in a single Base build tree.

Dominant language
Python
Stars
8
Forks
21
Avg merge
13h 50m
Merged PRs (30d)
3

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from epics-base/ci-scripts

All issues in epics-base/ci-scripts

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.