On 23/11/19 9:15 pm, Sebastian Huber wrote: > ----- Am 22. Nov 2019 um 23:31 schrieb Chris Johns chr...@rtems.org: > >> 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? > > Yes: > > ./waf bsp_defaults --rtems-bsps=sparc/erc32 | grep FLAGS > ARFLAGS = crD > CC_WARNING_FLAGS = -Wmissing-prototypes -Wimplicit-function-declaration > -Wstrict-prototypes -Wnested-externs > CXX_WARNING_FLAGS = > LDFLAGS = -Wl,--gc-sections > WARNING_FLAGS = -Wall > OPTIMIZATION_FLAGS = -O2 -g -fdata-sections -ffunction-sections > ABI_FLAGS = -mcpu=cypress >
Ah OK. The spec file in the link has only a single cflags and that confused me. >> 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. > > Yes, it is important to have the flags available in useful groups and not as > one big chunk. For the pkg-config support see: > > https://git.rtems.org/sebh/rtems.git/tree/spec/build/bsps/RTEMS-BUILD-BSP-PKGCONFIG.yml?h=build Excellent and thanks. >>> 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? > > The pax issue with waf was that waf doesn't like directories as nodes. This > is understandable from a dependency tracking point of view. The IMFS untar > support lacked the ability to create parent directories. So I unified the > untar support. Having two untar implementations in RTEMS makes little sense. Oh OK I see. >>> 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? > > I have too much to do before my holidays. The document content is fine, only > the branding is missing. When you are ready please ping me. >>> 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`? > > I think this belongs to the Host Computer section. The quick start uses the > RSB, so if you managed to build the tools, you must have a working Python. > The RSB uses Python and the RTEMS Tools use waf. The RSB can use python2 or python3 without a python. What about a note to say ... "Waf uses python and you need to make this command available on your system". >> 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. > > This is too detailed for the quick start from my point of view. This is why I > would like to add a Build System chapter. Sure this makes sense however as a new user working through the Quick Start a link to how configuration is handled is important, it provides a clear hint at a possible next step and a new user does not have to had read the entire document. >>> 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. > > Yes, after the three months we should remove everything related to the old > build system. For a git bisect, you just have to build the corresponding > tools with the RSB. OK. Chris _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel