Signed-off-by: Troy Dawson <tdawson@redhat.com>epel9
parent
7353e5ae80
commit
34c5276fa0
@ -1,42 +0,0 @@
|
|||||||
# Macros to constrain resource use during the build process
|
|
||||||
|
|
||||||
# outputs build flag overrides to be used in conjunction with
|
|
||||||
# %%make_build, %%cmake_build etc.
|
|
||||||
#
|
|
||||||
# if no override is needed, this macro outputs nothing
|
|
||||||
#
|
|
||||||
# - m memory limit in MBs per core; default is 1024
|
|
||||||
#
|
|
||||||
# Usage:
|
|
||||||
# e.g. %make_build %{limit_build -m 2048}
|
|
||||||
# => /usr/bin/make -O -j16 V=1 VERBOSE=1
|
|
||||||
# %make_build %{limit_build -m 40960}
|
|
||||||
# => /usr/bin/make -O -j16 V=1 VERBOSE=1 -j1
|
|
||||||
#
|
|
||||||
%limit_build(m:) %{lua:
|
|
||||||
local mem_per_process=rpm.expand("%{-m*}")
|
|
||||||
if mem_per_process == "" then
|
|
||||||
mem_per_process = 1024
|
|
||||||
else
|
|
||||||
mem_per_process = tonumber(mem_per_process)
|
|
||||||
end
|
|
||||||
local mem_total = 0
|
|
||||||
for line in io.lines('/proc/meminfo') do
|
|
||||||
if line:sub(1, 9) == "MemTotal:" then
|
|
||||||
local tokens = {}
|
|
||||||
for token in line:gmatch("%w+") do
|
|
||||||
tokens[#tokens + 1] = token
|
|
||||||
end
|
|
||||||
mem_total = tonumber(tokens[2])
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
local max_jobs = mem_total // (mem_per_process * 1024)
|
|
||||||
if max_jobs < 1 then
|
|
||||||
max_jobs = 1
|
|
||||||
end
|
|
||||||
cur_max_jobs=tonumber(rpm.expand("%{_smp_build_ncpus}"))
|
|
||||||
if cur_max_jobs > max_jobs then
|
|
||||||
print("-j" .. max_jobs)
|
|
||||||
end
|
|
||||||
}
|
|
Loading…
Reference in new issue