aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Greene <greened@obbligato.org>2011-03-04 23:02:52 +0000
committerDavid Greene <greened@obbligato.org>2011-03-04 23:02:52 +0000
commitb1939d5db6f95f18c9898861c58d2eac6456f06b (patch)
tree9b5d5cd8daa86c1d10898fc2e25d8089f190cce4
parent0795abd0d44d3e299978c273f52c2dbf4924a6e9 (diff)
Fix the case where the number of jobs is less than the
number of threads. In that case make the number of threads equal to the number of jobs and launch one jobs on each thread. This makes things work like make -j. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127045 91177308-0d34-0410-b5e6-96231b3b80d8
-rwxr-xr-xutils/llvmbuild15
1 files changed, 12 insertions, 3 deletions
diff --git a/utils/llvmbuild b/utils/llvmbuild
index fb8500d38e..5912c50ddf 100755
--- a/utils/llvmbuild
+++ b/utils/llvmbuild
@@ -650,7 +650,8 @@ class Builder(threading.Thread):
def configure(self, component, srcdir, builddir, flags, env):
- self.logger.debug("Configure " + str(flags))
+ self.logger.debug("Configure " + str(flags) + " " + str(srcdir) + " -> "
+ + str(builddir))
configure_files = dict(
llvm=[(srcdir + "/configure", builddir + "/Makefile")],
@@ -721,8 +722,16 @@ branch_abbrev = get_path_abbrevs(set(options.branch))
work_queue = queue.Queue()
-for t in range(options.threads):
- jobs = options.jobs // options.threads
+jobs = options.jobs // options.threads
+if jobs == 0:
+ jobs = 1
+
+numthreads = options.threads
+if jobs < numthreads:
+ numthreads = jobs
+ jobs = 1
+
+for t in range(numthreads):
builder = Builder(work_queue, jobs,
build_abbrev, source_abbrev, branch_abbrev,
options)