New Build System Status

Chris Johns chrisj at rtems.org
Fri Nov 22 22:31:38 UTC 2019


On 23/11/19 1:49 am, Sebastian Huber wrote:
> Hello,
> 
> I converted all BSPs to the new build system. I was able to build the tests for
> all BSPs without POSIX and networking (my system was busy for approx. 8h). I
> will do build runs with POSIX and networking enabled next week.

Nice and well done.

> I think the build system structure is quite good. With the script items you can
> also do complicated special case build steps, e.g.
> 
> https://git.rtems.org/sebh/rtems.git/tree/spec/build/bsps/powerpc/motorola_powerpc/RTEMS-BUILD-BSP-POWERPC-MOTOROLAPOWERPC-BOOT.yml?h=build

Interesting and useful.

In relation to the `cflags` as shown in this fragment are the flags ever
separated into types, that is debug, optimise, machine, warnings etc?

I think it is important to have the separation so we can export the flags as
types in a pkgconfig file. A user can combine them in ways that suite them, for
example some 3rd party packages cannot be built with the warning flags RTEMS has.

> For 99% of the jobs the standard items are fine.
> 
> Open issues:
> 
> * Convert tests which use pax, see latest patches sent to mailing list:
> 
> https://lists.rtems.org/pipermail/devel/2019-November/056197.html

I reviewed the patch but I must have missed how this resolves the pax issue. How
is that done?

> With these patches I think I am able to convert all C/C++ tests.
> 
> * Ada tests
> 
> * User manual documentation
> 
> * Licensing of *.yml files
> 
> * Generation of the old Makefile support
> 
> * Generation of pkg-config files
>> https://lists.rtems.org/pipermail/devel/2019-November/056209.html
> 
> For the latest documentation proposals see:
> 
> https://ftp.rtems.org/pub/rtems/people/sebh/eng.pdf
> 
> https://ftp.rtems.org/pub/rtems/people/sebh/user.pdf

I would like to see if we can fix the latex generation on your machine if that
is OK?

> The RTEMS Software Engineering parts are ready to commit from my point of view.

I have not reviewed these, I hope someone else does.
> In the User Manual the quick start chapter is ready to commit (there was not
> much to do). I added a new chapter "Build System". Please check if the chapter
> placement is all right. I will add the content in the next week or so.

Looks good, so much simpler.

Should there be a note or something about waf needing python and we recommend
python3? Plus waf needs a `python` installed and not just `python2` or `python3`?

How would a user adjust a BSP setting, for example the optimisation to -O1 to
debug? A simple example would be nice. I see cannot see how as there is nothing
in the INI file except building the tests.

> We have to decide how we continue with the integration. I would merge everything
> in one patch into the RTEMS sources. This patch is too big to review.

Does this mean all the specs are added in that same patch?

> Then I
> would add a configuration option to the old configure script (e.g.
> "--I-only-want-to-compare-results-with-the-new-build-system"). This basically
> disables the normal use. The new build system should be used, fixed and
> improved. In a three month period we keep the old build system in the sources.
> Afterwards we remove it completely.

I am fine with this. We could also remove the autotools building from the RSB
(yippy) when the old build system is removed.

Chris


More information about the devel mailing list