env描述
操作系统:Ubuntu 20.04 distcc:3.4(从源代码编译)与下面的方法共同:
sudo apt-get install gcc make python3 python3-dev libiberty-dev autoconf -y
wget https://github.com/distcc/distcc/releases/download/v3.4/distcc-3.4.tar.gz -O /tmp/distcc.tar.gz
tar xvf /tmp/distcc.tar.gz -C /tmp/
cd /tmp/distcc-*; ./configure && make && sudo make install; sudo update-distcc-symlinks
构建项目:
sudo apt-get build-dep python3 -y
sudo apt-get install pkg-config -y
# for building all modules
sudo apt-get install build-essential gdb lcov pkg-config \
libbz2-dev libffi-dev libgdbm-dev libgdbm-compat-dev liblzma-dev \
libncurses5-dev libreadline6-dev libsqlite3-dev libssl-dev \
lzma lzma-dev tk-dev uuid-dev zlib1g-dev -y
cd /tmp/
wget https://www.python.org/ftp/python/3.11.2/Python-3.11.2.tgz
tar xzf Python-3.11.2.tgz
cd Python-3.11.2
问题描述
我试图在以下环境中构建项目
export DISTCC_VERBOSE=1
export PATH=/usr/lib/distcc/:$PATH
export DISTCC_HOSTS="Test-7F-BR10-1-f1-1 Test-7F-SR4-11-14"
export DISTCC_POTENTIAL_HOSTS="Test-7F-BR10-1-f1-1 Test-7F-SR4-11-14"
我期待distcc将使用远程服务器来构建,但它未能使用localhost来构建以下内容的代码。我google了很多,但没有找到有用的信息。
distcc[13888] (dcc_trace_version) distcc 3.4 aarch64-unknown-linux-gnu; built Mar 22 2023 13:43:26
distcc[13888] (dcc_recursion_safeguard) safeguard level=0
distcc[13888] (main) compiler name is "gcc"
distcc[13888] (dcc_set_path) setting PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
distcc[13888] (dcc_scan_args) scanning arguments: gcc
distcc[13888] (dcc_scan_args) LTO cc invocations are not worth distributing
distcc[13888] (dcc_get_hostlist) read hosts from environment
distcc[13888] (dcc_parse_hosts) found tcp token "Test-7F-BR10-1-f1-1"
distcc[13888] (dcc_parse_hosts) found tcp token "Test-7F-SR4-11-14"
distcc[13888] (dcc_lock_host) got cpu lock on localhost slot 0 as fd3
distcc[13888] exec on localhost: gcc -pthread -fno-semantic-interposition
更重要的是,服务器端是OK的。我运行下面的代码来启动服务器,我发现线程与命令ps -ef --forest
DISTCC_VERBOSE=1 distccd --jobs $(nproc) --log-stderr --no-detach --daemon --allow 0.0.0.0/0
1条答案
按热度按时间1cklez4t1#
被调用的命令包含
-flto
,它告诉gcc
启用link-time optimization,但在2021年2月,distcc
的开发人员决定在启用这种优化时不分发编译(参见commit)。很可能您正在尝试使用相同的选项(包括
-flto
)编译所有源文件,因此没有任何编译是分布式的,所有操作都在本地机器上完成。请注意,这似乎已在2021年7月在this commit中恢复,但最新版本是cut in May 2021。
简而言之,要么:
distcc