Build clang in stages? And how to run "make check-all"

Ken Cunningham ken.cunningham.webuse at gmail.com
Tue Aug 4 15:13:30 UTC 2020


> I know there's a supposedly officially supported multistage build in LLVM
> (see https://llvm.org/docs/AdvancedBuilds.html <https://llvm.org/docs/AdvancedBuilds.html>). I've never used it (mainly
> because LLVM is usually a bit lagging in terms of documentation: before the
> monorepo you even had to guess where each subproject was supposed to be
> downloaded in the tree).
> 
> Anyway, despite not using this official multistaging, I've always built
> LLVM in manual stages (at least two: first stage with my current compiler,
> second stage with the first stage compiler). At the end I issued a "make
> check-all" for checking how the result looks in terms of tests
> passes/failures.
> 
> Now, looking at the portfile, it seems like LLVM/clang is built with one
> stage only in MacPorts and no checks are performed (unless I'm missing some
> bits, because I'm still no expert at portfile syntax).


There are two issues at present (that I know of..) with moving to this method of building the llvm tree.
The biggest one is that we have separated llvm from clang, as we use llvm standalong with other tools like cctools and ld64 (they use it to support link-time optimization etc).

1. building the monorepo and then only installing llvm, or everything except llvm, which we’d have to do to keep our current style, is a rather big PITA.

I was considering just installing the entire llvm/clang monorepo when we install “llvm” and leaving clang/lldb etc for now at least as empty ports that depend on llvm, but that is unlikely to fly very well in an environment where specifying a python27 for llvm-3.3 on Tiger generates tremendous discussion. SO — I have not bothered to do to that, and left it the way Jeremy had it.


2. We cannot do the llvm Advanced Build in MacPorts until this ticket is resolved:

https://trac.macports.org/ticket/59992

and there seems to be no resolution available to that ticket that is acceptable. SO we are stuck there.

I have a Portfile that does the MultiStage Advanced build for llvm/clang/lldb/flang etc that I use myself, pending some resolution of the above two issues.


Best,


Ken
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macports.org/pipermail/macports-users/attachments/20200804/0eded8ad/attachment.htm>


More information about the macports-users mailing list