FreeBSD synth - build llvm崩溃 - 强制合成器使用官方包?

时间:2017-10-27 13:22:43

标签: build freebsd

场景:

  • FreeBSD 11.1
  • synth package builder
  • pkg repo set quarterly Fetch Build
  • 包设置为true

问题:

我正在尝试使用synth构建vips(图形工具)。 vips的依赖之一是LLVM。出于某种原因,LLVM(llvm40)不是从官方的季度回购中提取的,而其他包装没有配置。

我不介意拥有一个新的llvm40版本,但llvm40的版本在编译了大约一个小时之后总是崩溃。

因此一直坚持这个问题,我真的希望能够强制使用合成器来使用官方回购中的版本。

没有像任何地方那样的选项,但也许sommeone遇到了类似的问题,并且知道解决方案或解决方法。

2 个答案:

答案 0 :(得分:0)

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

例如,这是我在一个空的jail中从端口graphics/vips安装的步骤(默认选项)

首先,安装/更新端口:

# 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-*等),所以稍后您可能只需使用自定义修补程序/端口来包含自定义依赖项,可能{ {1}}(我不知道究竟是什么),但至少希望这有助于您成功编译synth

答案 1 :(得分:0)

我为发布我的问题的解决方案而道歉,但我现在已经有了合成器来构建llvm40。

第1步:首先构建gcc6。不知何故,gcc6与LLVM一起构建,占用了大量的交换空间。

步骤2:构建llvm40但不使用调试器。所以运行make config并禁用llbd

之后不再发生交换空间问题。