New Build System Ready for Integration

Chris Johns chrisj at rtems.org
Mon Dec 2 00:00:16 UTC 2019



On 28/11/19 7:10 pm, Sebastian Huber wrote:
> Hello,
> 
> the new build system is now ready for integration. You find the latest
> documentation here:
> 
> https://ftp.rtems.org/pub/rtems/people/sebh/user.pdf
> 
> https://ftp.rtems.org/pub/rtems/people/sebh/eng.pdf
> 
> You can review the new build system for RTEMS BSPs here:
> 
> git clone git://git.rtems.org/sebh/rtems.git
> cd rtems
> git checkout --track origin/build
> 
> The new build system builds all BSPs and all tests (including the Ada tests). I
> tested the build on OpenSUSE 15.1, MinGW64, MSYS2, and FreeBSD 12.1.
> 
> The build specification consists of
> 
> find spec -name '*.yml' -and -not -name .doorstop.yml | wc
>    2011    2011  136959
> 
> YAML files. From these only 18 have hand-crafted content:
> 
> grep -r 'build-type: script' spec/ | sort
> spec/build/bsps/powerpc/motorola_powerpc/RTEMS-BUILD-BSP-POWERPC-MOTOROLAPOWERPC-BOOT.yml:build-type:
> script
> spec/build/bsps/powerpc/motorola_powerpc/RTEMS-BUILD-BSP-POWERPC-MOTOROLAPOWERPC-QEMUFAKEROM.yml:build-type:
> script
> spec/build/bsps/powerpc/mvme5500/RTEMS-BUILD-BSP-POWERPC-MVME5500-START.yml:build-type:
> script
> spec/build/bsps/powerpc/RTEMS-BUILD-BSP-POWERPC-MOTLD.yml:build-type: script
> spec/build/bsps/RTEMS-BUILD-BSP-LINKCMDS.yml:build-type: script
> spec/build/cpukit/RTEMS-BUILD-CPUKIT-VCKEY.yml:build-type: script
> spec/build/testsuites/libtests/RTEMS-BUILD-TEST-LIB-DL01.yml:build-type: script
> spec/build/testsuites/libtests/RTEMS-BUILD-TEST-LIB-DL02.yml:build-type: script
> spec/build/testsuites/libtests/RTEMS-BUILD-TEST-LIB-DL04.yml:build-type: script
> spec/build/testsuites/libtests/RTEMS-BUILD-TEST-LIB-DL05.yml:build-type: script
> spec/build/testsuites/libtests/RTEMS-BUILD-TEST-LIB-DL06.yml:build-type: script
> spec/build/testsuites/libtests/RTEMS-BUILD-TEST-LIB-DL07.yml:build-type: script
> spec/build/testsuites/libtests/RTEMS-BUILD-TEST-LIB-DL08.yml:build-type: script
> spec/build/testsuites/libtests/RTEMS-BUILD-TEST-LIB-DL09.yml:build-type: script
> spec/build/testsuites/libtests/RTEMS-BUILD-TEST-LIB-DL10.yml:build-type: script
> spec/build/testsuites/libtests/RTEMS-BUILD-TEST-LIB-MGHTTPD01.yml:build-type:
> script
> spec/build/testsuites/libtests/RTEMS-BUILD-TEST-LIB-TAR01.yml:build-type: script
> spec/build/testsuites/libtests/RTEMS-BUILD-TEST-LIB-TAR02.yml:build-type: script
> 
> So, more than 99% of the build specification is done through standard items. The
> attached script can be used to load the content of all items into a standard
> Python data structure (dictionaries, lists, strings, integers). The next person
> doing a new build system will have a much easier task, no more parsing of
> Makefile.am, configure.ac, *.cfg, and *.tcfg files.
> 
> My proposed next steps are:
> 
> 1. I push the source and documentation patches next Monday to the main
> repositories.

What is reason for this needing to happen right now?

Has the other thread between you and Joel been resolved? I am not sure if it
has. I saw you posted somethings we need to make lists of or document. Has these
been made and agreed too?

I would like to see these things resolved before we make any permanent changes
by pushing this code. I would also like to have the Windows gccdeps issue
resolved. I am attempting to look into this now.

> 2. I make it harder to use the existing build system. I add a
> --I-only-want-to-compare-results-with-the-new-build-system" to the top-level
> configure script. If this option is not present, then the build stops with an
> error. This basically disables the normal use.
> 
> 3. I create a new ticket with a build system conversion checklist.

Would it be better if this is done before pushing any code.

> 4. We announce a four month period in which we keep the old build system in the
> sources. Everyone is encouraged to test the new build system with the help of
> the checklist. The new build system should be used, fixed and improved.

I will try and push a new release snapshot this week. I have been away and it is
not yet automated.

> 5. If the new build system shows satisfactory results after the testing period,
> we remove the old one.

What does satisfactory mean?

Chris


More information about the devel mailing list