FreeBSD 合成器——构建 llvm 崩溃——强制合成器使用官方包?

FreeBSD synth – build llvm crashes – force synth to use official package?

现场:

问题:

我正在尝试使用合成器构建 vips(一种图形工具)。 vips 的依赖之一是 LLVM。出于某种原因,LLVM (llvm40) 未从官方季度回购中获取,而其他配置未更改的软件包是。

我不介意有一个新的 llvm40 构建,但是 llvm40 的构建总是在编译大约一个小时后崩溃。

所以被这个问题困扰了一整天,我真的很想能够强制 synth 只使用官方 repo 中的版本。

没有任何地方提到的选项,但也许有人 运行 遇到过类似的问题并且知道解决方案或解决方法。

要从源代码编译,我建议使用 portmaster

例如,这是我在空监狱中从端口 graphics/vips(默认选项)

安装的步骤

首先,install/update端口:

# portsnatp fetch extract

下一步,安装portmaster:

# cd /usr/ports/ports-mgmt/portmaster
# make install clean

如果您已经有了端口,您可能希望在使用安装包之前更新它们?

# portsnap fetch update

用于安装 vips:

# cd /usr/ports
# portmaster graphics/vips 

它会提示很多选项,包括与LLVM相关的选项,但最后应该编译端口,例如,这是我编译的版本:

root@xxx:/usr/ports # vips --vips-version
libvips 8.4.5-Sat Oct 28 09:19:20 UTC 2017

万一以后您想更新所有端口并避免多次按下 Y(是),您可以执行以下操作:

# yes | portmaster -da

这只会安装 vips,但会在您的系统上安装所有依赖项(llvm-* 等),因此稍后您可能只需使用您的自定义 patch/port 来包含您的自定义依赖项,可能 synth (我不知道它到底是什么)但至少希望这能帮助你成功编译 vips.

我很抱歉发布了我的问题的解决方案,但我现在有合成器来构建 llvm40。

第 1 步:首先构建 gcc6。 gcc6 以某种方式与 LLVM 一起构建,后者占用大量交换 space.

第 2 步:构建 llvm40,但没有调试器。所以 运行 进行配置并禁用 llbd

此后不再发生交换 space 问题。