Switch RSB to Couverture-Qemu
First thing I did is read the RSB-docs. From this I learned the global macros are defined in defaults.mc and the config file syntax is loosely based on the RPM spec file. There are macros for common build commands like ‘make’ that will pick the correct make for your host, so use ‘%(_make}’ for universality. Most importantly I learned there are usually 3 main files controlling the build:
-
A general config file in source-builder/config. This contains the general configure and build instructions (for say version 2.x.x release).
-
More specific version config file in bare/config/devel which contains the source location and any patches that need to be applied before configuring (for say version 2.4.1)
-
A .bset in bare/config/devel which specifies all the dependencies and the order in which to build them.
So following the pattern already laid out by the current qemu build, I created
- source-builder/config/couverture-qemu-2-1.cfg
- bare/config/devel/couverture-qemu-git-1.cfg
- bare/config/devel/couverture-qemu.bset
The -1 at the end of the file keeps track of the version of the config file.
The main changes to the original qemu files were:
source-builder/config/couverture-qemu-2-1.cfg
bare/config/devel/couverture-qemu-git-1.cfg
bare/config/devel/couverture-qemu.bset
I tested the build and the testsuite produced the same results as before.
There were also some patches that were being applied to the current qemu build. Two of which were still usable and another 3 set of Gaisler patches for Leon 3 no longer applied cleanly. So I went through the rejected files and moved the sections that couldn’t find a correct place automatically and created a new clean set of pathches. However there are some sections that have been completely implemented and some that haven’t. Also the Couverture-Qemu dev I had been talking to Fabien Choteau had signed off on the original set of Gaisler patches so this indicates they were aware of these and possibly have already used the solution and just rewritten some of the sections. For instance, here is one section that is the basically the same memory allocation but the Gaisler patches combine the allocation while couverture have seperated it.
After this Couverture-Qemu compiled successfully and the RTEMS testsuite results were unaffected. So it seems successful, although i’m not sure how to actually test the USB issue it was addressing so I could be wrong. I collected the above information and forwarded it to Fabien with the new patches, I’m hoping he can clear this up if the problem has already been solved.
Next up I’m going to do some mockups of XML coverage report and leave it on the rtems devel list to gather feedback for phase 3 of my project. I’ll submit the RSB patches when I hear back from Fabien and then I’ll get back to the RTEMS Tester work.