{"id":18627517,"url":"https://github.com/yugr/ld-limiter","last_synced_at":"2025-11-04T01:30:38.219Z","repository":{"id":129418975,"uuid":"121992067","full_name":"yugr/ld-limiter","owner":"yugr","description":"Limit number of parallel link jobs","archived":false,"fork":false,"pushed_at":"2021-01-09T07:14:39.000Z","size":3,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-27T06:27:20.022Z","etag":null,"topics":["linker","performance"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yugr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-18T21:24:32.000Z","updated_at":"2022-12-08T02:50:03.000Z","dependencies_parsed_at":"2023-04-08T05:31:59.134Z","dependency_job_id":null,"html_url":"https://github.com/yugr/ld-limiter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yugr%2Fld-limiter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yugr%2Fld-limiter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yugr%2Fld-limiter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yugr%2Fld-limiter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yugr","download_url":"https://codeload.github.com/yugr/ld-limiter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239425312,"owners_count":19636346,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["linker","performance"],"created_at":"2024-11-07T04:42:39.740Z","updated_at":"2025-11-04T01:30:38.174Z","avatar_url":"https://github.com/yugr.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Motivation\n\nOne frequent problem when building large applications is limiting number of link jobs that are run in parallel. Linkers tend to consume too much memory and cause OS to become unresponsive or even OOM. Traditional `make` does not allow you to do this (`-j` or `-l` will also limit parallel compiler runs).\n\nYou can switch to more modern build systems (e.g. Ninja) or use `ld-limit`.\n\n`Ld-limit` provides an easy workaround - it wraps linker executables (`ld`, etc.) into scripts which check how many jobs were already started and wait until number of jobs is sufficiently small.\n\n# Usage\n\nSimply run\n\n```\n$ ld-limit make ...\n```\nThis will run at most _one_ linker at any moment in time.\n\nTo allow more than one linker do\n```\n$ ld-limit -n 2 make ...\n```\n\nWhen two (or more) `ld-limit`ed jobs are run in parallel, they will have independent job limits. So e.g. in the following case\n\n```\n$ ld-limit -n 1 make ... \u0026\n$ ld-limit -n 1 make ...\n```\n\nmay cumulatively run up to 2 parallel link jobs.\n\n# Limitations\n\n`Ld-limit` is only lightly tested atm (please send bug reports).\n\nThe tool is implemented in pure shell to achieve maximum portability (e.g. with Cygwin). This makes it less efficient than necessary (e.g. instead of blocking on a true mutex stopped processes busy wait).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyugr%2Fld-limiter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyugr%2Fld-limiter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyugr%2Fld-limiter/lists"}