wiki:Developer/Removing_a_Port

Version 2 (modified by Joel Sherrill, on 11/03/15 at 00:10:22) (diff)

Add first steps

Removing an Architectural Port

This page describes the process of removing an architectural port from the RTEMS source repository. This is normally a fairly infrequent occurrence and happens after some combination of the following:

  • the architecture is no longer available for purchase
  • GCC has dropped support for the architecture
  • there are no RTEMS users
  • the port is incomplete and tools are unstable

Before an architecture can be removed, an announcement must be made to the community in order to allow for feedback that it can be removed or is still in use. In some cases, still being in use is not a sufficient condition if current tool versions do not support the architecture and users have no plans to upgrade to a newer RTEMS version.

In these instructions, it is assumed that ALL BSPs for this architecture have been removed. Each BSP should be removed per the procedures in Removing a BSP.

Removing an Architecture from the Source

Unlike the instructions for Removing a BSP, these instructions assume the reader is familiar with RTEMS Developer Practices and provides a checklist as opposed to detailed instructions. An important facet of removing an architecture is that it will require changes to multiple areas of the RTEMS Project spread across multiple repositories. This makes it more complicated and the developer removing the architecture should be careful, use grep, and update this page as other areas to update are identified:

  • File a Trac ticket - This should list all tickets associated with removing BSPs within this architecture. All commit messages associated with removing the architecture should reference this ticket number. See ticket 2443 for a simple example.
  • bootstrap -c - From the top of the RTEMS source tree.
  • Make a local development branch in git
  • Remove cpukit/score/cpu/@ARCHITECTURE@ - Commit as a single patch updating ticket.
  • Remove @ARCHITECTURE@ from cpukit/libnetworking - If the architecture has optimized in_cksum code, then this will require editing the files machine/in_cksum.h, netinet/in_cksum.c, and Makefile.am. There may also be files referencing the architecture which need updating. Commit as a single patch updating ticket.
  • Remove c/src/lib/libcpu/@ARCHITECTURE@ - Commit as a single patch updating ticket.
  • Remove c/src/lib/libbsp/@ARCHITECTURE@ including shared - Commit as a single patch updating ticket.
  • Remove @ARCHITECTURE@ from doc/cpu_supplement - This requires removing a file and updating the top level cpu_supplement.t file. There may also be examples using the architecture. Commit as a single patch updating ticket.
  • Remove @ARCHITECTURE@ from doc/user/preface.texi - This requires a manual edit. Commit as a single patch updating ticket.

XXX tables, RPC, promotional material, architecture table in wiki