Hi Takashi,

Using the test version of the relevant Clang/LLVM packages (21.1.4.2 for
*libc++1*, *libc++-devel* and *libcxx-debuginfo*; 21.1.4.1 for the rest) I
was able to compile a simple hello.cc and the 'unit_test_framework' library
from Boost (www.boost.org) based on these flags *-stdlib=libc++
-rtlib=compiler-rt -unwindlib=libunwind -fuse-ld=lld* and the resulted
binaries do not depend on *cyggcc_s-seh-1.dll*.

Thank you for such a great and rapid fix.
Please email me if there are other things I could check.

Kind regards,
Florin Tulba

On Fri, Jan 16, 2026 at 4:38 PM Takashi Yano <[email protected]>
wrote:

> On Fri, 16 Jan 2026 00:05:31 +0200
> Florin wrote:
> > On Thu, Jan 15, 2026 at 5:00 PM Takashi Yano via Cygwin <
> [email protected]>
> > wrote:
> >
> > > On Thu, 15 Jan 2026 21:53:21 +0900
> > > Takashi Yano wrote:
> > > > On Sun, 11 Jan 2026 23:11:00 +0200
> > > > Florin wrote:
> > > > > Hello Cygwin list,
> > > > >
> > > > > I’ve noticed that the Clang/LLVM stable packages in Cygwin are at
> > > version
> > > > > 20.1.x, while the libc++-devel, libc++1, libc++abi-devel,
> libc++abi1,
> > > > > libunwind-devel and libunwind1 packages are still at 8.0.1.
> According
> > > to
> > > > > the package summaries, they were last updated in 2019.
> > > > >
> > > > > This version mismatch can present issues using modern C++ features
> and
> > > > > makes it hard to use a complete LLVM toolchain with libc++ on
> Cygwin.
> > > > >
> > > > > I searched the Cygwin mailing list archives for prior posts about
> > > updating
> > > > > libc++, but I didn’t find a clear request or discussion about
> > > coordinating
> > > > > libc++ versions with newer Clang.
> > > > >
> > > > > Could you clarify if there is a plan to update libc++ to match more
> > > recent
> > > > > LLVM releases, or if the recommended C++ standard library for
> newer and
> > > > > future Clang versions on Cygwin should be libstdc++.
> > > > >
> > > > > Thank you for your time and I'm grateful for the effort you all put
> > > into
> > > > > this project.
> > > >
> > > > I have just uploaded libcxx, compiler-rt, and libunwind packages.
> > > > However, you cannot use them with -stdlib=libc++, -rtlib=compiler-rt,
> > > > and -unwindlib=libunwind. This is because clang package has
> incomplete
> > > > cygwin driver.
> > > >
> > > > You can link them to, for example hello.cc, with:
> > > > clang++ -stdlib=libc++ -isystem /usr/include/c++/v1 hello.cc -lc++
> > > $(clang --print-resource-dir)/lib/cygwin/libclang_rt.builtins-x86_64.a
> > > -lunwind
> > > >
> > > > The resulted a.exe will be free from libgcc_s. Please try.
> > >
> > > I also uploaded 21.1.4-1 (Test) which works with clang/llvm 21.1.4-1
> > > (Test).
> > > This test version does not have the problem above.
> > >
> > > --
> > > Takashi Yano <[email protected]>
> > >
> > > --
> > >
> > Problem reports:      https://cygwin.com/problems.html
> > > FAQ:                  https://cygwin.com/faq/
> > > Documentation:        https://cygwin.com/docs.html
> > > Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple
> >
> > Hi Takashi,
> >
> > I appreciate the short response time and the details you provided.
> >
> > The test with a simple Hello World source on clang-20 based on your
> compile
> > command succeeded and the result does not depend, indeed, on
> > *cyggcc_s-seh-1.dll*. I didn't test the *-fuse-ld=lld* flag.
> >
> > For the test versions (21.1.4-1) I kept getting link errors. The
> > command *clang++
> > -v -stdlib=libc++ -fuse-ld=lld hello.cc -lc++ -lunwind* produces a few
> > errors like this:
> >
> > > ld.lld: error: undefined symbol: std::__1::basic_ostream<char,
> > >
> std::__1::char_traits<char>>::sentry::sentry(std::__1::basic_ostream<char,
> > > std::__1::char_traits<char>>&)
> > > >>> referenced by /tmp/hello-a3d7ec.o:(std::__1::basic_ostream<char,
> > > std::__1::char_traits<char>>& std::__1::__put_character_sequence
> > > *[abi:ne210104]*<char,
> > > std::__1::char_traits<char>>(std::__1::basic_ostream<char,
> > > std::__1::char_traits<char>>&, char const*, unsigned long))
> >
> >
> > The default *ld* linker (*clang++ -v -stdlib=libc++ hello.cc -lc++
> -lunwind* )
> > behaves similarly:
> >
> > > /usr/bin/ld:
> > >
> /tmp/hello-e03638.o:hello.cc:(.text$_ZNSt3__124__put_character_sequenceB8ne210104IcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_m[_ZNSt3__124__put_character_sequenceB8ne210104IcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_m]+0x1ad):
> > > undefined reference to `std::__1::basic_ostream<char,
> > > std::__1::char_traits<char> >::sentry::~sentry()'
> > >
> >
> > I've tried different workarounds but couldn't make it work for clang-21
> > (-std=c++14, -D_LIBCPP_ABI_VERSION=1, -fno-exceptions, -fno-rtti).
> >
> > Do you have a working compile command I could try?
> >
> > The symbols demanded by compiler require *[abi:ne210104]* while the
> libc++
> > contains symbols with different ABI.
> > The command *nm /usr/lib/libc++.dll.a | grep "basic_ostream" *produces
> > lines like "*0000000000000000 T
> > _ZTv0_n24_NSt3__113basic_ostreamIcNS_11char_traitsIcEEED1Ev*", which
> lacks
> > the expected ABI tag.
> >
> > Is libc++ compiled with the correct flags?
> > Has the compiler some defaults not matching what current libc++ provides?
> >
> > Thank you for your time and we love your work,
>
> Thanks for testing and the report. That issue will be fixed in 21.1.4-2
> (Test).
> Please test 21.1.4-2 (Test) as well that will be uploaded shortly.
>
> --
> Takashi Yano <[email protected]>
>

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to