Blog | About

HelenOS coastline updates & status matrix

08 Dec 2013

Tags: HelenOS, porting and coastline

This is just a short update on what is new in HelenOS coastline. Briefly the following: parallel builds, archiving, binutils and status matrix of what is buildable on different platforms.

So far, building some package in Coastline meant that you needed to keep the corresponding HelenOS source tree built and configured for the correct architecture. Effectively, this makes building for different architectures a nightmare. Thus I rewrote a great part of the script and all the needed files (that is header files and libraries) and compiler settings are cached into the build directory and once the directory is initialized, the source HelenOS tree is not needed at all. That means that after the initialization of the build directory, building for different architectures is possible and can be done even in parallel.

Part of this change was addition of the init command to that helps you initialize the build directory.

Some time ago I created scripts for MSIM in Coastline and last month I created scripts for binutils as well, thus duplicating the scripts in the mainline. Eventually, I think we shall remove such software from the main HelenOS tree and keep it elsewhere.

It is now possible to run make in parallel inside the scripts. You can specify a maximum parallelisation level for each directory and for each package. The variable is then updated to the minimum to these two before it is used inside the build() function.

Last update of the Coastline script was addition of archive command that packs built files into a tarball. This tarball contains only the files that would be copied to the HelenOS image and are a convenient way to move the files between different configurations. This new command was actually a side product of reorganization of the way the packages are built. Now, less functions in the HARBOURs are needed and I believe the new system is much simpler.

Last and probably the most important thing is a status matrix. There is a short shell script in the Coastline called that tries to build all packages for all architectures and produces a matrix with results. I uploaded the last run to the following address.

Apart from the status itself, it also contains links for downloading the built files or viewing the log for the failed packages.

I think the overall status is rather good however I am not able to verify all packages on all architectures. If you have some time, please, either build the package yourself or use the prepared tarball and try to run it. A lot of the libraries are accompanied by self-tests that are part of the archive.

I would recommend testing on my GCC port repository as there is a special overlay/ directory in uspace/ to which you can unpack the tarball. The contents of this directory is then copied to dist/ just before the final image is created. Without such directory, it is impossible to add your own application directly into app/ as this directory (uspace/dist/app) is always cleaned prior building.

I hope I will be able to merge these last updates to mainline soon. Will report.

Thanks for reading.


Watch comments through RSS

Add a comment

The e-mail will be used to get a Gravatar picture and will not be directly displayed.

Please, show me you are not a robot.

You can use basic HTML formatting (following tags are allowed: A, CODE, PRE, B, I, STRONG, P and BLOCKQUOTE). For replies, I recommend using the Quote button next to a post.