aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/c
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2024-02-26 09:21:47 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2024-02-26 09:21:47 +0200
commit82ff2e7df2243b679aadbc6cc120a2b5f7ee73b3 (patch)
tree616e33051cf012f9790641f0127901f0c7d6ed38 /libbuild2/c
parent4a2a3bd5033744c31377d31ca54be00622280a1b (diff)
Add ability to serialize compilation/linking in cc rules
Specifically, both the C/C++ compiler and link rules now recognize the cc.serialize boolean variable which instructs them to compiler/link serially with regards to any other recipe. This is primarily useful when compiling large translation units or linking large binaries that require so much memory that doing that in parallel with other compilation/linking jobs is likely to summon the OOM killer. For example: obj{memory-hog}: cc.serialize = true
Diffstat (limited to 'libbuild2/c')
-rw-r--r--libbuild2/c/init.cxx1
1 files changed, 1 insertions, 0 deletions
diff --git a/libbuild2/c/init.cxx b/libbuild2/c/init.cxx
index 10b3d6a..8bc2f7d 100644
--- a/libbuild2/c/init.cxx
+++ b/libbuild2/c/init.cxx
@@ -345,6 +345,7 @@ namespace build2
vp["cc.module_name"],
vp["cc.importable"],
vp["cc.reprocess"],
+ vp["cc.serialize"],
vp.insert<string> ("c.preprocessed"), // See cxx.preprocessed.
nullptr, // No __symexport (no modules).