Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement GNU Make 4.4+ jobserver fifo / semaphore client support #2450

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Commits on Jun 17, 2024

  1. Implement GNU Make 4.4+ jobserver fifo / semaphore client support

    The principle of such a job server is rather simple: Before starting a
    new job (edge in ninja-speak), a token must be acquired from an external
    entity. On posix systems, that entity is simply a fifo filled with N
    characters. On win32 systems it is a semaphore initialized to N.  Once a
    job is finished, the token must be returned to the external entity.
    
    This functionality is desired when ninja is used as part of a bigger
    build, such as builds with Yocto/OpenEmbedded, Buildroot and Android.
    Here, multiple compile jobs are executed in parallel to maximize cpu
    utilization, but if each compile job uses all available cores, the
    system is over loaded.
    hundeboll committed Jun 17, 2024
    Configuration menu
    Copy the full SHA
    f57dd71 View commit details
    Browse the repository at this point in the history
  2. jobserver: add unit tests

    Implement proper testing of the MAKEFLAGS parsing, and the token
    acquire/release logic in the jobserver class.
    hundeboll committed Jun 17, 2024
    Configuration menu
    Copy the full SHA
    8223097 View commit details
    Browse the repository at this point in the history