Removing preinstall from the build process

Gedare Bloom gedare at rtems.org
Wed Dec 13 14:24:41 UTC 2017


Tremendous effort by both of you, thank you for spear-heading this
now. Will there be user-visible changes resulting from this process?

On Tue, Dec 12, 2017 at 4:41 PM, Chris Johns <chrisj at rtems.org> wrote:
> Hello,
>
> Over the past few weeks there has been work to remove the preinstall process
> from the build system. The catalyst for this is ticket #3083 [1] Joel and others
> reported on Linux systems. What started as an investigation has turned into
> something concrete.
>
> The recent changes I made to the build system to improve the build speed on
> multi-core hardware has exposed an issue on Linux where parallel preinstalling
> of a header file is detected by Linux's `install` tool and reported as an error.
> This does not happen on FreeBSD so I did not and do not see the issue. The fix
> for this is complex and fragile and so it was decided to remove the preinstall
> phase from the build system.
>
> It has been our intention to remove preinstall with the change to a waf build
> system. We have brought this forward to happen before the 5.1 release to aid
> back porting of fixes post this release.
>
> Removing preinstall requires moving header files that are preinstalled to a
> location in the repo that matches the preinstall structure. The exported API
> headers become "what you see is what you get" and this benefits those auditing
> RTEMS and how it is built. The include paths in the repo will be:
>
>  cpukit/include
>  cpukit/score/cpu/@RTEMS_CPU@/include
>  bsps/include
>  bsps/@RTEMS_CPU@/include
>  bsps/@RTEMS_CPU@/@RTEMS_BSP@/include
>
> and in the build tree:
>
>  cpukit/include
>  bsp/include
>
> The work is happening in 3 separate parts:
>
>  1. Moving the headers in the repo.
>  2. Updating the build system.
>  3. Fixing the existing source.
>
> I have the header move ready, there are 1747 git moves. This work required
> capturing the preinstall data from ampolish3 and processing it to create a shell
> script to do the move. There will be a commit for each include path in the repo.
>
> Updating the build system currently touches around 300 files without removing
> the preinstall.am files or adding new automake support to install the API
> headers when running `make install`.
>
> Fixing the source has been active and visible with Sebastian (thank you) working
> to clean up the issues found. This work is on going as we uncover problems
> masked by preinstalling. Once this task is complete we will push the build
> system and move changes.
>
> This is a substantial change and churn within the repo and I ask for your
> patience and understanding as we complete this task. I should highlight the
> changes within the actual code base are relatively small.
>
> Thanks
> Chris
>
> [1] https://devel.rtems.org/ticket/3083
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel


More information about the devel mailing list