Дано: сборка
make -j8
даёт существенный прирост скорости при компиляции, но при работе линковщика ld память отъедается до того, что swap заполняется почти полностью.
Требуется: найти способ вызывать линковщики не параллельно, а последовательно, сохранив параллельный запуск компиляторов.
Может есть готовые решения или самому придётся делать диспетчер очереди запросов к линковщику?
ОС: Linux (CentOS 7)
UPD:
Решение в комментариях, использовать flock
Родился такой скрипт:
neck#!/bin/bash
NAME=`basename $0`
DIR=`dirname $0`
ARGS=$@
PATH=${PATH//$DIR/''}
if [ $NAME == 'neck' ]
then
exit 0
fi
function get_origin {
ORIGIN=`which --skip-alias --skip-functions $NAME 2>&1`
local res=$?
if [ $res -ne 0 ]
then
echo $res
echo "Origin file $NAME not found"
exit 1
fi
}
function get_lock_file {
LOCK_FILE="/tmp/${ORIGIN//\//_}.lock"
}
get_origin
get_lock_file
flock $LOCK_FILE $NAME $ARGS
exit $?