Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Apr 2024 14:47:04 -0400
From:      "Kevin P. Neal" <kpn@neutralgood.org>
To:        Dimitry Andric <dim@freebsd.org>
Cc:        FreeBSD Hackers <freebsd-hackers@freebsd.org>
Subject:   Re:  clang fails libc++experimental test case...
Message-ID:  <ZiawqDWYfLqjYJtb@neutralgood.org>
In-Reply-To: <A80CE46A-E7FC-460A-A36C-54F48B19608C@FreeBSD.org>
References:  <ZiaZIe9s76FsOp4W@neutralgood.org> <A80CE46A-E7FC-460A-A36C-54F48B19608C@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Apr 22, 2024 at 07:16:18PM +0200, Dimitry Andric wrote:
> On 22 Apr 2024, at 19:06, Kevin P. Neal <kpn@neutralgood.org> wrote:
> > 
> > I'm looking at failing test cases with clang+llvm and I'm developing
> > on FreeBSD. There are multiple failing test cases, but at the moment
> > I'm looking at: clang/test/Driver/experimental-library-flag.cpp
> > 
> > This case tests to see if clang properly attempts to link against
> > either libc++ or libstdc++ depending on the flags given to clang.
> > Except FreeBSD's implementation in clang/lib/Driver/ToolChains/FreeBSD.cpp
> > doesn't support libstdc++ at all and just links against libc++. The
> > result is a failing test.
> > 
> > Is this intentional? If it is we can mark the test as unsupported on
> > FreeBSD. If not intentional then we need to fix the clang driver.
> 
> I think we ripped out libstdc++ support many years ago now. If somebody
> is really interested in that use case, they could spend the time to make
> it work again, although it would be tricky to do, since there is no
> standard location for those headers in FreeBSD anymore. :)
> 
> So short-term it is probably best to avoid running any of those tests
> with -stdlib=libstdc++.

That sounds like an argument for disabling this particular test. 

> > I'd really, really like to be able to do a 'make check' on a build of
> > clang+llvm on FreeBSD and have all tests pass. This is part of that effort.
> 
> How exactly are you running "make check"? Use the CMake-generated
> Makefile from the upstream build system?

I work full time developing LLVM and only build it from a tree checked
out from the official LLVM repo at GitHub. Yes, I run cmake from my
build directory and have it create all the files needed by make or by
ninja. I actually run 'ninja check' but 'make check' is easier to
talk about since everyone here already knows about make.

I only build clang. LLVM's cmake configuration allows one to build only
the parts of the project that you need. I only need clang+llvm, and it
still takes nearly two hours to run the tests on a 12-way login server.

>From the shell script to I use to run cmake:

exec cmake -G Ninja \
   -DLLVM_PARALLEL_LINK_JOBS=10 \
   -DCMAKE_BUILD_TYPE=Debug \
   -DLLVM_ENABLE_ASSERTIONS=On \
   -DLLVM_ENABLE_EXPENSIVE_CHECKS=On \
   -DLLVM_ENABLE_PROJECTS="clang" \


-- 
Kevin P. Neal                                http://www.pobox.com/~kpn/

 "Good grief, I've just noticed I've typed in a rant. Sorry chaps!"
                            Keir Finlow Bates, circa 1998



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ZiawqDWYfLqjYJtb>