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
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
Last update of the Coastline script was addition of
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
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
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
app/ as this directory (
uspace/dist/app) is always cleaned prior
I hope I will be able to merge these last updates to mainline soon. Will report.
Thanks for reading.