Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
srcbuild srcbuild
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Labels
    • Labels
  • Merge requests 2
    • Merge requests 2
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Members
    • Members
  • Activity
  • Graph
  • Jobs
  • Commits
Collapse sidebar
  • RiscOS
    • UUtilities
  • Release
  • srcbuildsrcbuild
  • Merge requests
  • !4

Open
Created Nov 17, 2019 by Timothy E Baldwin@tbaldwinDeveloper
  • Report abuse
Report abuse

WIP: Parallel builds

  • Overview 0
  • Commits 3
  • Changes 5

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 a SharedRISC_OSLib_Headers pseudo-component to output the headers at the end of export_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.
Assignee
Assign to
Reviewer
Request review from
None
Milestone
None
Assign milestone
Time tracking
Source branch: srcbuild-parallel