On Mon, 5 May 2025, Jeremy Drake via Cygwin-apps wrote:

> On Mon, 5 May 2025, Jeremy Drake via Cygwin-apps wrote:
>
> > I've pushed to both clang and llvm, allowing clang's tests to run.  I get
> > Total Discovered Tests: 46304
> >   Skipped          :     8 (0.02%)
> >   Unsupported      :   194 (0.42%)
> >   Passed           : 46042 (99.43%)
> >   Expectedly Failed:    31 (0.07%)
> >   Failed           :    29 (0.06%)
> >
> >
> > I plan to try lld next - I should push that to a new branch on the
> > playground repository because there is no lld repository to which I can
> > push a playground branch?
>
> I confirmed that I could not push to a playground branch of non-existing
> lld repo, so I pushed to an lld branch of the playground repo:
> https://cygwin.com/cgit/cygwin-packages/playground/tree/?h=lld
>
> all tests pass.

(well, except for the unsupported ones).

I've gone through fresh bootstrapping a couple of times, and have just
pushed again (adding libxml2-devel zlib-devel and libzstd-devel to
BUILD_REQUIRES and dependencies of libllvm-devel).

I'm planning to give it a rest for a while.  I think you may want to give
some thought to the pros and cons of how to split up the source packages.

A lot of llvm seems to largely expect being in the "monorepo" layout, and
the cmake system has the ability to take care of a lot of the hassles of
bootstrapping things (building clang, and then using the freshly built
clang to build runtimes, in a couple of phases).  This is a pro for one
'llvm' source package building everything.

A downside of this is the compute resources necessary to build everything
all in one go.  That was an issue for MSYS2 (the mingw-w64 side), and the
outcome was that a few core projects that result in chicken-and-egg
bootstrapping problems (llvm/clang/lld/compiler-rt) were in an "llvm"
source package, and then other llvm packages were separate.  The "libc++"
source package ends up building libc++, libc++abi, and libunwind, and
statically links libc++abi into libc++.  That might be a good way to go
for Cygwin also.

(I don't know if libc++ or compiler-rt can actually be used yet for Cygwin
- the new toolchain driver class might need more work, because it still
calls out to gcc to do the link.  I couldn't get it to respect
-rtlib=compiler-rt, anyway.)

Another downside is that the llvm cmake files will complain if projects
that were built at the same time as llvm are missing.  This is the case
currently with libpolly-devel - you have to install it for clang or lld to
build successfully even though they don't directly use polly, because
llvm's cmake files will error out if it's not.  MSYS2 builds polly as a
separate package.  I don't know the implications of this, if polly would
get linked into llvm in this case and not if built separately, but keeping
it separate allows us to not have to install the development files for any
package using llvm.


Reply via email to