WIP: Parallel builds
These changes run the export_libs
, resources
, and rom
phases in parallel, producing a 2.4 times speed-up on a quad core system. They currently only work on the Linux Port of RISC OS, and not in the desktop which will result in sharing an AMB.
It relies on an external routine on WriteV to group output by component to make it readable.
My first attempt by just modifying sb_system
as suggested by comment was unreliable in various ways.
Todo:
- Sort out the problem of the SharedCLibrary headers being export during the
export_libs
phase and therefore potentially to late for building C libraries. I have created aSharedRISC_OSLib_Headers
pseudo-component to output the headers at the end ofexport_hdrs
phase, but there may be a better solution. - Support plain Unix builds, mostly fixing
sb_parallel_lock_csd
. - Use a constant for
IXSupport_LinuxSyscall
, or perhaps the HAL interface directly. - Use the Linux system calls header, rather than it's private implementation of the Linux system call veneers.
- Parallelise the remaining phases.