<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Oct 10, 2014 at 12:16 AM, Andrew Wilkins <span dir="ltr"><<a href="mailto:axwalk@gmail.com" target="_blank">axwalk@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On Thu, Oct 9, 2014 at 9:40 PM, Peter Collingbourne <<a href="mailto:peter@pcc.me.uk">peter@pcc.me.uk</a>> wrote:<br>
> On Thu, Oct 09, 2014 at 09:17:01AM +0200, Andrew Wilkins wrote:<br>
>> > Importing this path would cause 'go get' to check out LLVM plus the bindings<br>
>> > from SVN using the mechanism described in [3]. We would check index.html<br>
>> > files into the www repository to support this.<br>
>> ><br>
>> > There doesn't seem to be a good way to build complex C++ projects such as LLVM<br>
>> > using 'go get', so there is a script (update_llvm.sh) that builds LLVM and<br>
>> > configures the package tree with the appropriate compiler/linker flags. This<br>
>> > is essentially the approach that I've taken with the existing gollvm project,<br>
>> > but now the script uses the copy of LLVM in the parent directory instead of<br>
>> > checking one out.<br>
>><br>
>> Some users will want to build/install the bindings against existing<br>
>> LLVM libraries [0]. For example, if the vNN URL were used, then I<br>
>> think it would be nice to be able to fetch and build the bindings<br>
>> against a released vNN LLVM without also fetching the LLVM tree via<br>
>> "go get".<br>
><br>
> I think the best way to solve that problem is to rely on distro-specific<br>
> packaging. For example, on Debian derived distributions we could arrange so<br>
> you could add /usr/share/gocode to your $GOPATH and get the packaged version<br>
> of LLVM that way.</div></blockquote></div><br>The other thing to keep in mind is that due to the instability of LLVM's C++ APIs, you would want to use the bindings from the exact version of the existing LLVM libraries on the system if you wanted to use those libraries. If the bindings are being pulled from top-of-tree, top-of-tree LLVM will be necessary as well.</div></div>