简体   繁体   中英

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

The scene:

  • FreeBSD 11.1
  • synth package builder
  • pkg repo set quarterly Fetch Build
  • Packages set to true

The problem:

I am trying to build vips (a graphics tool) with synth. One of the dependencies of vips is LLVM. For some reason LLVM (llvm40) is not fetched from the officia quarterly repo while other packages with unchanged configs are.

I wouldn't mind having a fresh llvm40 build, but the build of llvm40 always crashes, after it has compiled for about an hour or so.

So being stuck with this problem for a whole day, I would really like to be able to force synth to just use the version from the official repo.

There's no option like that mentioned anywhere, but maybe sommeone has run into similar problems and knows a solution or workaround.

To compile from source I would recommend using portmaster

For example, this are the steps I did in an empty jail to install from the ports graphics/vips (default options)

First, install/update the ports:

# portsnatp fetch extract

Next, install portmaster :

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

In case you already have the ports you may want to update them before installing the package by using?

# portsnap fetch update

For installing vips :

# cd /usr/ports
# portmaster graphics/vips 

It will prompt for many options including the ones related to LLVM but at the end, it should compile the port, for example, this is the version I compiled:

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

In case later you would like to update all your ports and avoid pressing many times Y (yes), you could do something like:

# yes | portmaster -da

This will just install vips but will put on your system all the dependencies ( llvm-* etc), so later probably you could just use your custom patch/port to include your custom dependencies, probably synth (I have no idea what exactly it is) but at least hope this helps you to compile successfully vips .

I apologize for posting a solution to my problem, but I've got synth to build llvm40 now.

Step 1: Building gcc6 first. Somehow gcc6 is built together with LLVM which takes up tons of swap space.

Step 2: Build llvm40 but without the debugger . So run make config and disable llbd

After that no more swap space problems occured.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM