On 04/15/18 04:01, Stuart Henderson wrote:
On 2018/04/15 02:27, Brian Callahan wrote:Works well on amd64 following the user guide on the HOMEPAGE. Note that this links libLLVM-6.0.so from devel/llvm, though that does not get reflected in WANTLIB (I left a comment saying such in the Makefile).You need to have a WANTLIB entry associated with the LIB_DEPENDS otherwise the LIB_DEPENDS is stripped.One way around it might be to use RUN_DEPENDS only and set PKGSPEC in devel/llvm to force a tight dependency on the version but it's not correct use of the infrastructure. This is exactly what I was worried about here: ----- Forwarded message from Stuart Henderson <s...@spacehopper.org> ----- From: Stuart Henderson <s...@spacehopper.org> Date: Tue, 6 Mar 2018 12:47:07 +0000 To: Jonathan Gray <j...@jsg.id.au> Cc: Brian Callahan <bcal...@devio.us>, ports@openbsd.org, b...@comstyle.com User-Agent: Mutt/1.9.3 (2018-01-21) Subject: Re: build libLLVM.so in devel/llvm Mail-Followup-To: Jonathan Gray <j...@jsg.id.au>, Brian Callahan <bcal...@devio.us>, ports@openbsd.org, b...@comstyle.com On 2018/03/06 21:32, Jonathan Gray wrote:On Sat, Feb 17, 2018 at 11:12:44PM +1100, Jonathan Gray wrote:On Thu, Feb 15, 2018 at 05:08:56PM +0000, Stuart Henderson wrote:On 2018/02/15 11:19, Brian Callahan wrote:On 02/15/18 10:02, Jonathan Gray wrote:Build libLLVM.so and link tools with it. This seems to be the way almost all Linux distributions and BSDs ship LLVM and is what Mesa expects. Use the documented cmake var for RTTI while here.Any reason not to use the SHARED_LIBS facility of ports for libLLVM, like libclang and libLTO already do in the LLVM port?agreed, it's a bit non-obvious that it might be needed because unlike other build systems (which normally use a default value if not passed via SHARED_LIBS) the way we've got cmake setup it just skips the library version in that case..Trying to use SHARED_LIBS breaks and isn't so useful as the name of the library includes the major/minor llvm version with the abi unlikely to change on new release based from the same branch. The intent seems to be to allow multiple versions to be installed concurrently as llvm breaks abi/api between most releases. Warning: symlink(s) point to non-existent /usr/ports/pobj/llvm-5.0.1/fake-amd64/usr/local/lib/libLLVM-5.0.so /usr/ports/pobj/llvm-5.0.1/fake-amd64/usr/local/lib/libLLVM-5.0.1.so /usr/ports/pobj/llvm-5.0.1/fake-amd64/usr/local/lib/libLLVM.so $ ls -l /usr/local/lib/libLLVM*.so* lrwxr-xr-x 1 root wheel 14 Feb 17 22:55 /usr/local/lib/libLLVM-5.0.1.so -> libLLVM-5.0.so -rw-r--r-- 1 root bin 61453686 Feb 17 22:47 /usr/local/lib/libLLVM-5.0.so.0.0 lrwxr-xr-x 1 root wheel 14 Feb 17 22:55 /usr/local/lib/libLLVM.so -> libLLVM-5.0.so $ llvm-config --link-shared llvm-config: error: libLLVM-5.0.so is missing $ llvm-config --shared-mode staticSo would anyone be opposed to the first diff in this thread going in?The potential issue with this is that if things in ports start linking to it, we'll run into problems with updates. That said I don't really have a better idea and I don't want to get in the way of your work on Mesa, so OK sthen@ but think we will need to keep an eye on it. ----- End forwarded message -----
Tarball reattached with some tweaks. Now this will break immediately on a version update of devel/llvm, but that's ok for me; it'll force me to check to make sure everything still works. ~Brian
creduce.tgz
Description: Binary data