Waf branch - Overview [2/6]

Sebastian Huber sebastian.huber at embedded-brains.de
Sun Feb 8 08:40:50 UTC 2015

On 06/02/15 08:03, Amar Takhar wrote:
> This email covers a brief overview of how to build the branch and some details.
> It handy for 'trying it out' without getting too far into the details.

Thanks for your great work in the background.

> Here is the timing for the build at the moment:
> verm at peach# waf config --bsp sparc/sis --prefix /mnt/devel/rtems/prefix/rtems
> --path-tools /mnt/devel/rtems/tools/bin/
> 'config' finished successfully (0.026s)
> verm at peach# waf configure
> 'configure' finished successfully (4.034s)
> verm at peach# waf -j 14
> 'build' finished successfully (16.204s)
>    note: the above is 1,337 objects.
> verm at peach# waf -j 14 --enable-tests
> 'build' finished successfully (13.414s)
>    note: the above is 881 targets.
> >From a clone we have: 0.026 + 4.034 + 16.204 + 13.414 = 33.678s.
> That is 2,218 targets including all test binaries.
> There is a simple sanity check I hacked in if you want to try it:
> verm at peach# waf hello
> BUILDING: sparc/sis
> /mnt/devel/rtems/tools/bin/sparc-rtems4.11-gcc -I/mnt/devel/rtems/commit/include
> -I/mnt/devel/rtems/commit/build/sparc/sis/include
> -I/mnt/devel/rtems/commit/build/sparc/sis/include/rtems -DHAVE_CONFIG_H
> -D__rtems_sparc_sis__ -mcpu=cypress -o /tmp/hello
> testsuites/samples/hello/init.c -specs
> /mnt/devel/rtems/commit/build/sparc/sis/gcc_spec
> -L/mnt/devel/rtems/commit/build/sparc/sis/cpukit/
> -L/mnt/devel/rtems/commit/build/sparc/sis/c/ -Wl,-start-group -lrtemscpu
> -lrtemsbsp -lc -lgcc -Wl,-end-group
> 'hello' finished successfully (0.183s)
> This actually uses another tool called rtems-config which I will get into below.

I tested it on a five year old low budget laptop with an up to date 
openSUSE and it worked out of the box.

I updated the timing page (2m with waf and 14m with the current build 


> There are three branches on the repository:
>    waf     - main waf branch (use this!)
>    fix     - fixes to source code.
>    include - the mega include change.
> You can get the source via:
>    git clone git://git.rtems.org/amar/waf.git
> The tools used are the standard ones built using the RSB.  This means you can
> test the waf branch without needing to rebuild your tools.  This will only get
> better with your help and feedback.
> This is a big change to how we will all develop and use RTEMS.  We have outgrown
> the current build system, there is a huge amount for the community to digest
> with this and other changes coming down the line.
> I hope you are all willing to work with me to make this a reality for RTEMS.

I would like to work with this build system as soon as possible. There 
are some open issues, but I am sure we can fix them on the fly. I guess 
the first step is to do the RTEMS 4.11 branch.

One issue I found is that the test are not re-built in case the 
librtemscpu.a changes, e.g.

sh at linux-p471:~/git-rtems-waf (waf) > touch 
sh at linux-p471:~/git-rtems-waf (waf) > ~/Downloads/waf-1.8.5/waf -j 2 
--- building host ---
Waf: Entering directory `/home/sh/git-rtems-waf/build/host'
Waf: Leaving directory `/home/sh/git-rtems-waf/build/host'
--- building sparc/sis ---
Waf: Entering directory `/home/sh/git-rtems-waf/build/sparc/sis'
--- building sparc/sis tests ---
Waf: Leaving directory `/home/sh/git-rtems-waf/build/sparc/sis'
'build' finished successfully (1.338s)

This feature is also present in the current build system and is a great 
annoyance while developing RTEMS.

Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.

More information about the devel mailing list